1 //冒泡排序 2 /*******************算法描述********************** 3 1、遍历无序序列,依次取这个数和它的下一个数进行比较,如果这个数比下数大,则交换 4 2、循环1,直到length次数(我们称之为趟数)为止, 5 补充1:如果其中任何一趟,没有发生交换,则表示排序成功 6 补充2:其中每一趟,因为最大值已经放在最后了,所以从效率上来说,应该比较次数少一次 7 *************************************************/ 8 void sortByBubble(int array[],int length) 9 { 10 int iTemp; 11 //2、循环1,直到length次数(我们称之为趟数)为止, 12 for(int i=0;i<length;i++) 13 { 14 //1、遍历无序序列,依次取这个数和它的下一个数进行比较,如果这个数比下数大,则交换 15 for(int j=0;j<length-1-j;j++) 16 { 17 //取这个数和它的下一个数进行比较 18 if(array[j]> array[j+1])//如果这个数比下数大 19 { 20 iTemp = array[j]; 21 array[j] = array[j+1]; 22 array[j+1] = iTemp; 23 } 24 } 25 } 26 } 27 28 void print(int a[],int length) 29 { 30 for(int i=0;i<length;i++) 31 { 32 printf("%d ",a[i]); 33 } 34 printf("\n"); 35 } 36 37 int main() 38 { 39 int a[10] = {7,2,8,3,9,10,15,11,20,17}; 40 printf("冒泡排序:\n"); 41 sortByBubble(a,sizeof(a)/sizeof(int)); 42 print(a,sizeof(a)/sizeof(int)); 43 return 0; 44 }