先要申明一个函数实现交换功能,见下一篇博客。
用交换功能实现 排序
void sort(int data[], int n) { // 数组data[]和参与排序的元素个数n int k = n - 1; // 数组下标从0开始的,所以最初的k值最大只取到k-1 while (k>=0) { int i, j; for (i = 1, j = -1; i <= k; i++) { //内循环,从[0]开始与[1]比较,把大的放到[1]位置;然后i++,[1]和[2]比较,大的放到[2];......;循环结果:最大的元素在下标[n-1]里 if (data[i-1] > data[i]) { j = i - 1; swap(&data[i], &data[j]); } } k = j; //循环范围缩小1位后,对n-1个元素再次排序;之后,再缩小1位后排序,一直到最后1个元素,自己跟自己无需再交换 } }
灵魂画手上线!
5分钟后。。。
灵魂画手放弃了~自己意会吧。