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