冒泡排序 void bubble_sort(int arr[], int sz) { //1.确定排序趟数 int i = 0; for (i = 0; i < sz - 1; i++)//若n个数则排n-1趟 { int flag = 1;//有序 //2.确定交换次数 int j = 0; for (j= 0; j <sz-i-1 ; j++)//若n个数则交换n-1次 { //3.两两交换 if (arr[j] > arr[j + 1]) { int tmp = 0;//创建交换变量 tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; flag = 0;//无序 } } if (flag == 1) { break;//若有序,直接跳出(算法优化) } } } void printf_arr(int arr[], int sz) { int i = 0; for (i = 0; i < sz; i++) { printf("%d ", arr[i]); } } int main() { int arr[] = { 34,56,12,57,89,1 }; int sz = sizeof(arr) / sizeof(arr[0]); bubble_sort(arr, sz);//冒泡排序函数 printf_arr(arr, sz);//输出函数 return 0; }