1. 原理java
冒泡排序,顧名思義就是將想冒泡同樣將最大的那個數冒到最高點。 在一個數組中,遍歷這個數組,從第一個數開始,和後面一個數兩兩比較, 若是前面一個數比後面一個數大,就交換2個數的位置,這樣可保證數組中 最大的那個數必定在最後一位。這是第一次比較,接下來這個最大的數就 不參與比較了,第二次比較重複上面操做,將第二大的數放在倒數第二位。 同理,每次都把最大的數放在參與比較的數的最後一位, 比到參與的只剩下一位數時,排序完成。
2.舉例算法
假設有個長度爲4的數組 a[]={22,3,44,21},下面用冒泡排序算法對其進行升序排序。 第一趟比較:22和3比較,22大於3,因而交換位置 數組變成 a[]={3,22,44,21} 22和44比較,22小於44,不作操做 數組爲a[]={3,22,44,21} 44和21比較,44大於22,因而交換位置 數組爲a[]={3,22,21,44} 44成功冒泡,44不參與下一趟比較了 第二趟比較:3和22比較,3小於22,不作操做 數組爲a[]={3,22,21,44} 22和21比較,22大於21,因而交換 數組變爲a[]={3,21,22,44} 22成功冒泡,44和22不參與下一趟比較 第三趟比較:3和21比較,3小於21 不作操做 數組爲a[]={3,21,22,44} 21和22比較,21小於22 不作操做 數組爲a[]={3,21,22,44} 21成功冒泡,44,22,21不參與下次比較 因爲參與比較的只剩下3一個數了,排序結束,結果爲數組升序排序。
3.java代碼實現數組
package sort; import java.util.Arrays; public class BubbleSort { public static void main(String[] args) { int a[]={22,3,44,21}; bubbleSort(a); System.out.println(Arrays.toString(a)); } //冒泡排序算法 public static void bubbleSort(int[] a){ int temp; for(int i=0;i<a.length-1;i++){ for(int j=0;j<a.length-1-i;j++){ if(a[j]>a[j+1]){ temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } } }
打印結果爲:[3, 21, 22, 44]ide