冒泡排序
void sort1() {
int num[10] = {3, 2, 4, 1, 5, 5, 2, 4, 6, 8};
int len = 10;
for (int i = 0; i < len; i++) {
//每一次循环将最大的数移到数组最后面
for (int j = 0; j < len - i - 1; j++) {
if (num[j] > num[j + 1]) {
int tmp;
tmp = num[j];
num[j] = num[j + 1];
num[j + 1] = tmp;
}
}
}
for (int i = 0; i < len; i++) {
cout << num[i] << endl;
}
}
选择排序
int num[10] = {3, 2, 4, 1, 5, 5, 2, 4, 6, 8};
int len = 10;
int tmpIdx = 0;
//循环十次,从尾到头
for (int i = len - 1; i >= 0; i--) {
int max = num[i];
//循环开始的地方就是外面i的for循环 当前的i值
for (int j = i; j >= 0; j--) {
//这个等号非常巧妙,加上等号,自己会和自己比较一次,
//所以绝对会进到下面的if里面,这样j绝对会被赋值一次,就不会产生错误了
if (max <= num[j]) {
max = num[j];
//记录下标
tmpIdx = j;
}
}
//交换位置
num[tmpIdx] = num[i];
num[i] = max;
}
for (int i = 0; i < len; i++) {
cout << num[i] << endl;
}
}