Loading... 用于将一个数组的数据从低往高排序 ``` /* 冒泡排序,n个数 第一个for循环是第几次归为元素,每次只能归位一个数到末尾,,执行n-1次(只需要排这么多次就拍好了,最后一个不用排) 第二个for循环将数字两两比较找到最大数字放在最后,执行 n-1-已经归好位的元素个数 次 */ void bubble_sort(int arr[]) { int i, j, temp; int len = (int) sizeof(arr) / sizeof(*arr); for (i = 0; i < len - 1; i++)//第一轮,从0到len - 1有len - 1次,因为排len个数只用len-1次 for (j = 0; j < len - 1 - i; j++)//第二轮 ,减去排好的数 if (arr[j] > arr[j + 1]) {//如果 j号元素比下一个元素大 temp = arr[j];//设置临时变量为 j元素 arr[j] = arr[j + 1];//把j+1元素值赋给j号元素 arr[j + 1] = temp;//把刚刚j号元素值赋给j+1号元素 //即把 j号元素和下一个元素 换位 以此类推将把这个元素推到最后 } } ``` 选择排序 ``` void selection_sort(int a[], int len) { int i,j,temp; for (i = 0 ; i < len - 1 ; i++) {//从0到len - 1有len - 1次,因为排len个数只用len-1次 int min = i; // 记录最小值,第一个元素默认最小 for (j = i + 1; j < len; j++) // 访问未排序的元素 { if (a[j] < a[min]) // 找到目前最小值 { min = j; // 记录最小值 } } if(min != i) { temp=a[min]; // 交换两个变量 a[min]=a[i]; a[i]=temp; } //交换 } } ``` Last modification:December 6, 2022 © Allow specification reprint Like 0 如果觉得我的文章对你有用,请随意赞赏