個人對於氣泡排序和選擇排序的理解
阿新 • • 發佈:2019-01-02
1.氣泡排序:它的實現原理節省了時間,
實現原理:一組數兩兩進行比較,然後把最大數放在後邊,這樣每次迴圈結束都會少一次比較,
/* * 氣泡排序 */ public class C { public static void main(String[] args) { int[] arr = { 6, 3, 8, 2, 9, 1 }; for (int i = 0; i < arr.length - 1; i++) {// 外層迴圈控制排序趟數 for (int j = 0; j < arr.length - 1 - i; j++) {// 內層迴圈控制每一趟排序多少次 System.out.println(i+"===="+j); if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } for(int i=0;i<arr.length;i++) { System.out.println(arr[i]+""); } } }
n個數的話會進行(n-1)次的排序,每個數要跟其它數比較(n-1)次。
2.選擇排序:
實現原理:把最小的數找出來,
public class B { public static void main(String[] args) { int [] a= {1,6,23,9,14,56}; select(a); print(a); } private static void print(int[] a) { for(int i=0;i<a.length;i++) { System.out.println(a[i]+""); } System.out.println(); } private static void select(int[] a) { for(int i=0;i<a.length;i++) { for(int j=i+1;j<a.length;j++) { System.out.println(i+"---"+j); if(a[j]<a[i]) { int temp=a[i]; a[i]=a[j]; a[j]=temp; } } } } }
它的比較方式是第一個數與第二個數進行比較,比它小就把它放前邊再拿放到前邊的數與後邊的數進行比較,比較一輪後,下一個數也是這樣比較。