1 //交换排序 2 /*******************算法描述********************** 3 1、从第一个元素开始,依次与后续每个元素两两比较,若比后续元素大,则交换 4 2、循环:从第二个元素开始,重复上述动作1 5 *************************************************/ 6 void sortByExchange(int array[],int length) 7 { 8 int iTemp; 9 for(int i=0;i<length;i++) 10 { 11 for(int j=i+1;j<length;j++) 12 { 13 //printf("i=%d,array[i]:%d array[j]:%d\n",i,array[i],array[j]); 14 if(array[i] > array[j]) 15 { 16 iTemp = array[i]; 17 array[i] = array[j]; 18 array[j] = iTemp; 19 } 20 } 21 } 22 } 23 24 void print(int a[],int length) 25 { 26 for(int i=0;i<length;i++) 27 { 28 printf("%d ",a[i]); 29 } 30 printf("\n"); 31 } 32 33 int main() 34 { 35 int a[10] = {7,2,8,3,9,10,15,11,20,17}; 36 printf("交换排序:\n"); 37 sortByExchange(a,sizeof(a)/sizeof(int)); 38 print(a,sizeof(a)/sizeof(int)); 39 return 0; 40 }