选择排序的思想:
通过比较数组中的值,将最大(最小)的值放到第一个位置,之后再将次大(次小)的放在第二个位置,依次直到最后一个
即:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。
#include<stdio.h>
#include<Windows.h>
int main() {
int high[] = {175,167,180,178,162,165,174,173,170,182};
int len = sizeof(high) / sizeof(high[0]);
for (int i = 0;i < len - 1;i++) { //比较n-1次就行
int min = i; //将未排序的第一个位置设置为最小下标
for (int j = i + 1;j < len;j++) {
if (high[j] < high[min]) { //与后面的值进行比较
min = j; //如果后面的小于当前下标,那么将该值的下标设置为最小的
}
}
if (min != i) { //如果未排序的第一个不是最小,那么就让他与最小值下标进行交换
int temp = high[min];
high[min] = high[i];
high[i] = temp;
}
}
for (int i = 0;i < len;i++) {
printf("%d ",high[i]);
}
printf("\n");
system("pause");
return 0;
}