void second(int a[], int len) {
int flag = 1;
while (flag) {
flag = 0;
for (int i = 0; i < len - 1; i++) {
if (a[i] > a[i + 1]) {
int temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
flag = 1;
}
}
len--;
}
}
递归冒泡
void third(int a[], int len) {
if (len == 1) {
return;
}
for (int i = 0; i < len - 1; i++) {
if (a[i] > a[i + 1]) {
int temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
third(a, len - 1);
}
额外提供一个指针的写法,用法都是一样的
思索半天感觉不对:哪位看官有想法的指点下
void point(int *a, int len) {
for (int i = 0; i < len - 1; i++) {
for (int j = i + 1; j < len; j++) {
int *fr=a;
int *se=a++;
if (*fr > *se) {
int temp =*fr;
*fr = *se;
*se = temp;
}
}
a++;
}
}
本人很懒,直接贴代码,提供三种排序的思路冒泡规则:首先拿第一个元素和后面的所有一个个比较,如果比后面的大就交换,所以始终会保证第一个元素是最小的,然后再从第二个第三个,以此类推(万变不离其中)常规排序思路void first(int a[], int len) { for (int i = 0; i &amp;amp;amp;lt; len - 1; i++) { for (int...