冒泡排序的改良
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语言 ,