当前位置:编程学习 > C/C++ >>

冒泡排序的改良

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #define LEN 10
 4
 5 int main()
 6 {
 7     //min记录最小值的位置。
 8     int i,j,tmp,min,array[LEN];
 9
10     //输入数据
11     printf("please input members:");
12     for(i=0; i<LEN; i++)
13     scanf("%d",&array[i]);
14
15     //输出原数据
16     for(i=0; i<LEN; i++)
17     printf("%d ",array[i]);
18     printf("\n");
19
20     //单向冒泡排序。
21     /*for(i=0;i<LEN-1;i++)
22     for(j=i+1;j<LEN;j++)
23     {
24         if(array[i]>array[j])
25         {
26             tmp = array[j];
27             array[j]=array[i];
28             array[i]=tmp;
29         }
30     }*/
31
32     //经典100例,如果数据多的话,用这个是比较合算的。
33     for(i=0; i<LEN-1; i++)
34     {
35         min = i;
36         for(j=i+1; j<LEN; j++)
37         {
38             if(array[min]>array[j])
39             {
40                 min=j;
41             }
42         }
43
44         if(i==min)
45         continue;
46
47         tmp = array[min];
48         array[min]=array[i];
49         array[i]=tmp;
50
51     }
52
53     //输出结果。
54     printf("\nresult is:\n");
55     for(i=0; i<LEN; i++)
56     printf("%d ",array[i]);
57     printf("\n");
58
59     // printf("Hello world!\n");
60     return 0;
61 }

 




摘自  zhengmian 
补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,