不晓得哪个

简单排序算法

 1 #include<stdio.h>
 2 #include<time.h>
 3 #define MAX 50000
 4 #define RANDOM(x) (rand()%x)
 5 
 6 swap(int *a,int*b)
 7 {
 8     int tmp;
 9     tmp=*a;
10     *a=*b;
11     *b=tmp;
12 }
13 display(int *arr)
14 {
15     int i;
16     for(i=0;i<MAX;i++)
17         printf("%d ",arr[i]);
18     printf("\n");
19 
20 }
21 int bubble_sort(int count,int *array)
22 {
23     int loop;
24     for(;count>0;count--)
25     {
26         for(loop=0;loop<count;loop++)
27         {
28             if(array[loop]>array[loop+1])
29                 swap(&array[loop],&array[loop+1]);
30         }
31     }
32 }
33 int main()
34 {
35     int i=0,arr[MAX];
36     srand(time(0));
37     
38     for(i=0;i<MAX;i++)
39     {
40         arr[i]=RANDOM(100);
41         //printf("%d ",arr[i]);
42     }
43     printf("\n");
44     bubble_sort(MAX-1,arr);
45 //    display(arr);
46 }
47 
#include <stdio.h>
#include
<time.h>
#define MAX 50000
#define RANDOM(x) (rand()%x)

swap(
int *a,int *b)
{
        
int temp;
        temp
=*a;
       
*a=*b;
       
*b=temp;
}
int select_sort(int count,int *arr)
{
        
int i=0,j;
        
for(;i<count;i++)
        {
                
for(j=i+1;j<=count;j++)
                {
                        
if(arr[i]>arr[j])
                                swap(
&arr[i],&arr[j]);
                }
        }
}
int main()
{
        
int i=0,arr[MAX];
        srand(time(
0));
        
for(i=0;i<MAX;i++)
        {
                arr[i]
=RANDOM(100);
                printf(
"%d ",arr[i]);
        }

        select_sort(MAX
-1,arr);
        printf(
"\n");
        
for(i=0;i<MAX;i++)
              printf(
"%d ",arr[i]);
}

 1 #include<stdio.h>
 2 #define MAX 50000
 3 #define RANDOM(x) (rand()%x)
 4 swap(int *a,int *b)
 5 {    
 6     int temp;
 7      temp=*a;
 8          *a=*b;
 9          *b=temp;
10 }
11 int insert_sort(int *arr)
12 {
13     int i=1,j=0;
14     for(;i<MAX;i++)
15     {
16         for(j=0;j<i;j++)
17         {    if(arr[j]>arr[i])
18             swap(&arr[j],&arr[i]);
19         }
20     }
21 }
22 int main()
23 {
24     int i=0,arr[MAX];
25     for(;i<MAX;i++)
26     {
27         arr[i]=RANDOM(100);
28 //        printf("%d  ",arr[i]);
29     }
30 
31     insert_sort(arr);
32     printf("\n");
33 //    for(i=0;i<MAX;i++)
34 //    printf("%d  ",arr[i]);
35 }
36 
 1 #include <stdio.h>
 2 #include<time.h>
 3 #define MAX 10
 4 #define RANDOM(x) (rand()%x)
 5 #if 1
 6 int merge(int begin,int mid,int end,int *arr)
 7 {
 8     int i,array[MAX],j=0;
 9     int b1=begin,e1=mid,b2=mid+1,e2=end;    
10     
11     for(;(b1<=e1)&&(b2<=e2);j++)
12     {
13         if (arr[b1]<arr[b2])
14         {
15             array[j]=arr[b1];
16             b1++;
17         }
18         else
19         {    
20             array[j]=arr[b2];
21             b2++;
22         }
23     }
24     for(;b1<=e1;b1++)
25         array[j++]=arr[b1];
26     for(;b2<=e2;b2++)
27         array[j++]=arr[b2];
28     for(i=0;i<(end-begin+1);i++)
29         arr[begin+i]=array[i];
30 }
31 
32 int merge_sort(int begin,int end,int *arr)
33 {
34     int mid;
35     if (begin<end)
36     {
37         mid=(begin+end)/2;
38         merge_sort(begin,mid,arr);
39         merge_sort(mid+1,end,arr);
40         merge(begin,mid,end,arr);
41     }
42 }
43 #endif
44 int main()
45 {
46     int i=0,arr[MAX];
47     srand(time(0));
48     for(i=0;i<MAX;i++)
49     {
50         arr[i]=RANDOM(100);
51         printf("%d ",arr[i]);
52     }
53 
54     merge_sort(1,MAX,arr);
55     printf("\n");
56     for(i=0;i<MAX;i++)
57         printf("%d ",arr[i]);
58 }
59 

posted on 2009-12-03 10:19 缘分游走 阅读(162) 评论(0)  编辑 收藏 引用 所属分类: 算法基础


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