C语言基本排序方法:选择和冒泡

test

 1 #include<stdio.h>
 2 
 3 void maopao(int a[],int len){
 4     int i,j,temp;
 5     for(i = 0;i < len - 1 ; i ++){//从第一个到倒数第二个
 6         for (j = 0 ; j < len - 1 - i ; j ++)//排在后的是已经排序的
 7         {
 8             if (a[j] > a[j + 1])//大的数换到后面去
 9             {
10                 temp = a[j];
11                 a[j] = a[j + 1];
12                 a [j + 1] = temp;
13             }
14         }
15     }
16 }
17 
18 void xuanze(int a[],int len){
19     int i , j , t , temp;
20     for (i = 0 ; i < len - 1 ;i ++)
21     {
22         t = i;
23         for (j = i + 1 ; j < len ; j ++)//前面的实排好的
24         {
25             if (a[t] > a[j])
26             {
27                 t = j;//记下该趟最小数的序号
28             }
29         }
30         if (t != i)//如果序号不变就什么也不做
31         {
32             temp = a[t];//否则元素交换
33             a[t] = a[i];
34             a[i] = temp;
35         }
36     }
37 }
38 
39 void main(){
40     int i;
41     int a[] = {5,4,6,7,2,5,4,6,8,9,1,2};
42     //maopao(a, 12);
43     xuanze(a, 12);
44     for (i = 0 ; i < 12 ; i ++)
45     {
46         printf("%d ",a[i]);
47     }
48 }

 

end

posted @ 2012-07-30 21:44  丛林听雨  阅读(242)  评论(0编辑  收藏  举报