冒泡排序函数
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
#define _CRT_SECURE_NO_WARNINGS #includevoid bubble_sort(char arr[], int sz) { int i = 0; int flag = 1; // int sz = sizeof(arr) / sizeof(arr[0]); //不能在函数内部求数组的值 for (i = 0; i <= sz - 1; i++) { for (int j = 0; j <= sz - 1 - i; j++) { if (arr[j] > arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j] = tmp; flag = 0; } } if (1 == flag) { break; } } } int main() { int arr[] = { 9,8,7,6,5,4,3,2,1,0 }; int sz = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz); for (int n = 0; n < sizeof(arr) / sizeof(arr[0]); n++) { printf("%d ", arr[n]); } return 0; }
在函数内部求数组的值的话,会导致求出来的值为1。
所以切记!!!!
不可在函数内部求数组的值。
#define _CRT_SECURE_NO_WARNINGS #includevoid bubble_sort(int arr[]) { int sz = sizeof(arr) / sizeof(arr[0]); printf("%dn", sz); } int main() { int arr[] = { 2,3,4,5,6,7 }; bubble_sort(arr); return 0; }



