简单选择排序是通过n-i次关键词之间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换,复杂度为O(n^2)。
#include#define N 9#define MAXSIZE 10000 /* 用于要排序数组个数最大值,可根据需要修改 */typedef struct { int r[MAXSIZE+1]; /* 用于存储要排序数组,r[0]用作哨兵或临时变量 */ int length; /* 用于记录顺序表的长度 */} SqList;void swap(SqList *L, int i, int j);void BubbleSort0(SqList *L);void print(SqList L);int main(void) { int i; int d[N]= {50,10,90,30,70,40,80,60,20}; SqList list; for(i=0; i r[i]; L->r[i] = L->r[j]; L->r[j] = temp;}void print(SqList L) { int i; for(i=1; i length; i++) { min = i; for(j = i + 1; j <= L->length; j++) { if(L->r[min] > L->r[j]) { min = j; } } if (i != min) { swap(L, i, min); } }}