本文共 931 字,大约阅读时间需要 3 分钟。
实现思路:不停地使数组中的相邻的左右两个元素对比大小,大的元素往右移,因为是左右交换,所以如果他们相等,肯定不会交换。所以是稳定的。
【平均时间复杂度】:O(n^2); 【最优情况】:O(n^2) 已经排好序了,不用交换元素,时间花销n(n-1)/2 【最坏情况】:O(n^2),逆序,时间花销3n(n-1)/2 【适用范围】:适用于排序小列表。//javapublic class bubble_sort{ public static void main(String[]args){ int a[]={ 12,6,5,7,1}; int tmp=0; for(int i=0;ia[j+1]){ tmp=a[j]; a[j]=a[j+1]; a[j+1]=tmp;}}System.out.print(a[i]+" "); }}}
注意不要搞混!!! 冒泡排序是比较相邻的元素!!!
//不是冒泡排序!!!public class Sort{public static void main(String[]args){int tmp=0;int a[]={ 12,6,5,7,1}for(int i=0;ia[j]){ tmp=a[i]; a[i]=a[j]; a[j]=a[i];}}}}}
下面展示一下它的排序情况
显然,它不是左右相邻的交换,所以它不是冒泡排序!!!
//PHP$arr=array(12.6,5,7,1);$len=count($arr);//数组arr的长度$tmp=0;function bubbleSort($arr){ for(i=0;i<$len;i++){ //需要冒泡的轮数 for(j=0;j<$len-$i-1;j++){ //每轮冒泡的次数 if($arr[j]>$arr[j+1]){ $tmp=$arr[j]; $arr[j]=$arr[j+1]; $arr[j+1]=$arr[j];}}}return $arr;}
心得:其实只要懂得排序的基本思想,无论哪种语言都一样实现,只是表达方式不同