Java學習之路——氣泡排序與選擇排序
Java學習之路——for迴圈實現氣泡排序
基本步驟為:
- 利用for迴圈輸入並輸出陣列各個元素的值
- 利用冒泡法(選擇法)進行排序
- 利用for迴圈將排序完成的陣列元素進行輸出 冒泡法方法:氣泡排序採取從頭至尾以此比較相鄰的兩個元素;小數放前,大數放後。第一輪:首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,依此類推,直至比較最後兩個數,將小數放前,大數放後。重複第一輪步驟,進行下一輪排序,直至全部排序完成。
例如;int[] arr={6,8,7,9,2,3};
第一輪排序:
第一次排序:6和8比較,6小於8,不交換位置: 687923
第二次排序:8和7比較,8大於7,交換位置:678923
第三次排序:8和9比較,8小於9,不交換位置:678923
第四次排序:9和2比較,9大於2,交換位置:678293
第五次排序:9和3比較:9大於3,交換位置: 678239
第一趟總共進行了5次比較, 排序結果: 678239
第二輪排序:
第一次排序:6和7比較,6小於3,不交換位置:678239
第二次排序:7和8比較,7小於8,不交換位置: 678239
第三次排序:8和2比較,8大於2,交換位置:672839
第四次排序:8和3比較,8大於3,交換位置: 672389
第二趟總共進行了4次比較, 排序結果: 672389
第三輪排序:
第一次排序:6和7比較,6小於7,不交換位置: 672389
第二次排序:7和2比較,7大於2,不交換位置:627389
第三次排序:7和3比較,7大於3,交換位置: 623789
第二趟總共進行了3次比較, 排序結果: 623789
第四輪排序:
第一次排序:6和2比較,6大於2,交換位置:263789
第二次排序:6和3比較,6大於3,交換位置: 236789
第二趟總共進行了2次比較, 排序結果: 236789
第五輪排序:
第一次排序:2和3比較,2小於3,交換位置: 236789
第二趟總共進行了1次比較, 排序結果: 236789
最終結果:236789 第一輪比較完成後,最後一個位置一定是陣列中最大的數值,第二輪比較時最後一個數不參與下一次比較; 第二輪比較完成後,倒數第二個位置一定是陣列中第二大的數值,第三輪比較時最後兩個數不參與下一次比較; 依次類推,陣列有n個元素時,共要進行n-1輪比較,每一輪比較次數-1。 主方法為 `
int[] arr={6,8,7,9,2,3};
//輸出排序前陣列
for(int i = 0;i<arr.length;i++) {
System.out.println(arr[i]);
}
//氣泡排序操作
for (int i = 0;i<arr.length;i++) { //外層迴圈控制排序輪數
for(int j = 0;j<arr.length-1-i;j++) { //內層迴圈控制一輪中比較次數
if(arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
//輸出排序完成後的陣列結果
System.out.println("排序後的陣列為:");
for(int num:arr) {
System.out.println(num);
}
}`