用指针形式和非指针形式实现冒泡排序。
冒泡排序:
根据降序(升序)相邻的两个数互相比较,每比较完一轮就会选出一个最大值(最小值)。
非指针:
#include <stdio.h>
void bubble_sort(int arr[], int len) {
int i = 0;
for (i = 0; i < len - 1; i++) {
int j = 0;
for (j = 0; j < len - 1 - i; j++) {
if (arr[j]> arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1]= temp;
}
}
}
}
int main() {
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int len = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, len);
for (int i = 0; i < len; i++)
printf("%-4d", arr[i]);
return 0;
}
指针:
#include <stdio.h>
void bubble_sort(int* arr, int len) {
int i = 0;
for (i = 0; i < len - 1; i++) {
int j = 0;
for (j = 0; j < len - 1 - i; j++) {
if (*(arr+j) > *(arr + j+1)) {
int temp = *(arr + j);
*(arr + j) = *(arr + j+1);
*(arr + j+1) = temp;
}
}
}
}
int main() {
int arr[] = { 9,8,7,6,5,4,3,2,1,0 };
int len = sizeof(arr) / sizeof(arr[0]);
bubble_sort(arr, len);
for (int i = 0; i < len; i++)
printf("%-4d", arr[i]);
return 0;
}