JUST DO IT

我之所以在这里,只是因为我想要在这里

选择排序(Windows+VC6.0环境编译)

选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
时间复杂度:O(n的平方)

下面是我的实现(代码仅供参考,各位有意见请指出):

 1#include <stdio.h>
 2#include <cstdlib>
 3
 4#define TOTAL_NUM 10000
 5#define MAX_NUM 1000
 6
 7int main(int argc,char* argv[])
 8{
 9    int Sort[TOTAL_NUM];
10    
11    int iPrintCount = 0;
12    int i = 0;
13    printf("::: old order ::: \n");    
14    for (i=0;i<TOTAL_NUM;i++)
15    {
16        Sort[i] = (rand()+MAX_NUM)%MAX_NUM;
17        printf("%5ld ",Sort[i]);    
18        if(++iPrintCount==10)
19        {
20            iPrintCount = 0;
21            printf("\n");
22        }

23    }

24
25    for (i=0;i<TOTAL_NUM;i++)
26    {
27        int min = Sort[i];
28        int index = i;
29        bool bSet = false;
30        for (int j=i;j<TOTAL_NUM;j++)
31        {
32            if (min>Sort[j])
33            {                
34                min = Sort[j];
35                index = j;
36                if (!bSet)bSet = true;
37            }

38        }

39        if (bSet)
40        {
41            Sort[index] = Sort[i];
42            Sort[i] = min;
43        }

44    }

45
46    iPrintCount = 0;
47    printf("\n::: new order ::: \n");    
48    for (i=0;i<TOTAL_NUM;i++)
49    {        
50        printf("%5ld ",Sort[i]);    
51        if(++iPrintCount==10)
52        {
53            iPrintCount = 0;
54            printf("\n");
55        }

56    }

57
58    getchar();
59    return 0;
60}

posted on 2009-07-20 23:46 xmoss 阅读(331) 评论(0)  编辑 收藏 引用 所属分类: 结构和算法


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理