JAVA中陣列氣泡排序和選擇排序
阿新 • • 發佈:2018-11-08
氣泡排序的思想:兩兩之間比較大小,小的數在前,大的數在後。共比較i-1次。
static void MaoPaoArray(int[] a) { for (int i = 0; i < a.length - 2; i++) { for (int j = 0; j < a.length - 1 - i; j++) { if (a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } }
每次比較從第一個數a[j]開始,兩兩比較,數大的放後面。每次比較都會產生所有比較的數字中最大的數,依次放在後面,即每次兩兩比較的時候只比較到a[j-1-i]。共比較i-1次。
選擇排序思想:從索引0開始依次和後面所有的數字比較,小的數字放前面,每次比較完成後第一個數字就是最小的數字。一共比較i-1次。
static void SelectArray(int[] a) { for (int i = 0; i < a.length - 1; i++) { for (int j = i + 1; j < a.length; j++) { if (a[i] > a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } } } for (int i = 0; i < a.length; i++) { System.out.println(a[i]); } }
a[i]是每次比較的最前面的數,j=i+1是本次比較中的第二個數字,比較後將小的數放前面,然後j++,將a[i]後的所有數字比較完,a[i]即為所有數字中最小的數。共比較i-1次。