基本思想:设所排序序列的记录个数为n。i取1,2,…,n-1,从所有n-i+1个记录(Ri,Ri+1,…,Rn)中找出排序码最小的记录,与第i个记录交换。执行n-1趟 后就完成了记录序列的排序。交换排序都不稳定。不稳定。
// // SelectSort.c // libin // // Created by 李宾 on 16/5/9. // Copyright © 2016年 李宾. All rights reserved. // #include <stdio.h> #define SWAP(a, b) {int temp; temp = a; a = b; b = temp; } void Select_Sort(int *p, int n) { for (int i = 0; i < n-1; i ++) { int min = i; for (int j = i + 1; j < n; j ++) { if(p[min] > p[j]) { min = j; } } if (min != i) { SWAP(p[i], p[min]); } } } int main() { int a[5] = { 5, 1, 13, 6, 24}; Select_Sort(a, 5); for (int i = 0; i < 5; i ++) { printf("%d ", a[i]); } printf(" "); }