算法穩定性java
冒泡排序就是把小的元素往前調或者把大的元素日後調。比較是相鄰的兩個元素比較,交換也發生在這兩個元素之間。因此,若是兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;若是兩個相等的元素沒有相鄰,那麼即便經過前面的兩兩交換把兩個相鄰起來,這時候也不會交換,因此相同元素的先後順序並無改變,因此冒泡排序是一種穩定排序算法。從大到小的冒泡排序算法
package structsmethod; /* * 冒泡 */ public class BubbleSort { public void bubble(int a[]){ for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-i-1;j++){ if(a[j]<a[j+1]){ int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } public void printarr(int a[]){ for(int i=0;i<a.length;i++){ System.out.print(a[i]+" "); } } public static void main(String[] args) { int[] a={23,56,22,1,45,343,12}; BubbleSort bs=new BubbleSort(); bs.bubble(a); bs.printarr(a); } }