版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010095372/article/details/84259344
这个简单,在后面没有排好序的序列里,找一个里面最小的跟序列里最开始的那个元素交换
void SelectSort(int a[], int n){
int i, min, j, temp;
for (i = 0; i < n-1; i++) {
min = i; //标记当前的下标
//从后面的序列里找一个最小的出来
for (j = i+1; j < n; j++) {
if(a[j] < a[min])
min = j;
}
//如果这个找出来的不是i本身,那就只能换位置了
if(min != i) {
temp = a[min];
a[min] = a[i];
a[i] = temp;
}
}
}
5260391748
0 265391748
01 65392748
012 5396748
0123 596748
01234 96758
012345 6798
0123456 798
01234567 98
012345678 9