简单选择排序

 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 }

 

posted @ 2014-02-16 17:30  CrazyCode.  阅读(150)  评论(0编辑  收藏  举报