简单选择排序
1 #include "stdafx.h" 2 #include <iostream> 3 #include <exception> 4 using namespace std; 5 6 /*排序用到的结构*/ 7 const int maxSize = 10; 8 typedef struct 9 { 10 int r[maxSize+1]; 11 int length; 12 }SqList; 13 14 /*数组元素交换*/ 15 void swap(SqList *L,int i ,int j) 16 { 17 int temp = L->r[i]; 18 L->r[i] = L->r[j]; 19 L->r[j] = temp; 20 } 21 22 /*简单选择排序:就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录进行交换 23 第i趟排序需要进行n-i次关键字的比较,此时需要比较 n-1 + n-2 +...+ 1=n(n-1)/2次. 24 */ 25 void SelectSort(SqList *L) 26 { 27 int i,j,min; 28 for(i = 1;i!=L->length;i++) 29 { 30 min = i; 31 for(j = i+1;j<=L->length;j++) 32 { 33 if(L->r[min]>L->r[j]) 34 min = j; 35 } 36 if(i!=min) 37 { 38 swap(L,i,min); 39 } 40 } 41 } 42 int _tmain(int argc, _TCHAR* argv[]) 43 { 44 45 46 return 0 ; 47 }