八大排序――冒泡排序的优化算法及性能分析(C语言)
冒泡排序(Bubble Sort) 1、冒泡排序的思想: 它重复地走访需要排序的数列,按照已经规定好的排序顺序,每一次比较相邻两个元素,如果他们的顺序错误就把他们交换过来。 直到没有再需要交换的元素,该数列就排序完成。 2、冒泡排序的算法运作(由小到大的排列顺序): 有一个数组a[10],用变量i表示它的下标(i从0开始)―― 比较两个相邻元素a[i]和a[i+1],如果a[i]>a[i+1],就交换这两个数的位置; 重复执行第一步,直到比较到最后一对的时候(例:首次是a[8]和a[9],此 时,a[9]的值为该数组的最大值,这个值属于有序数列); 对所有元素(除了有序数列里的元素),重复执行第一步和第二步,每执行完一次,都会找到当前比较的数里最大的那个(有序数列就会增加一个); 随着参与比较的元素越来越少,最终没有任何一对元素需要比较的时候,排序完成。 3、传统的冒泡排序图示: 传统的冒泡排序的代码: int a[8]={3,2,5,8,4,7,6,9}; for(int i=0;i<8;i++) //外层循环:要比较的次数; { for(int j=0;j<7-i;j++) 内层循环:每次比较时,要比较的元素的范围;(这里就相当于j<n-i-1 ) { if(a[j]>a[j+1])交换的三条语句 { int temp=a[j]; a[j]=a[j+1]; a[j+1]