JUST DO IT

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

插入排序(Windows+VC6.0环境编译)

插入排序:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。
时间复杂度:O(n的平方)
 1#include <stdio.h>
 2#include <cstdlib>
 3
 4#define TOTAL_NUM 1000
 5#define MAX_NUM 100
 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 iVal = Sort[i];                
28        if (iVal<Sort[0])
29        {
30            for(int k=i;k>0;k--)
31                Sort[k] = Sort[k-1];                                
32            Sort[0= iVal;
33        }
else
34        {
35            for (int j=0;j<i;j++)
36            {            
37                if (iVal>=Sort[j] && iVal<Sort[j+1])
38                {    
39                    for(int k=i;k>j+1;k--)
40                        Sort[k] = Sort[k-1];                
41                    Sort[j+1= iVal;
42                    break;
43                }

44            }

45        }
                
46    }

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

58    }

59    
60    getchar();
61    return 0;
62}


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


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