直接选择排序:
图解:
主要步骤:
我们就可以确定:两层循环,第一层循环代表正在调整顺序的位置,第二层代表无序的元素
实现代码:
//4.直接选择排序
int choose(int a[], int length) {
int i = 0;
for (i = 0; i < length; i++) { //确定调整色位置
int j = 0;
int min = i;
for (j = i + 1; j < length - i;j++) { //无序数找到最小的
if (a[min]>a[j]) { //最小的下标可能会变很多次,我们加一个变量min
min = j; //找到最小的下标
}
}
//找到之后最小的下标交换和正在调整的数据
Swap(a[min], a[i]);
}
}
void Swap(int a, int b) {
int arr = a;
a = b;
b = arr;
}