|
本文將在此公眾號上通過一個個 ![]() ![]() ![]() ![]() ![]() ![]() ![]() int temp = 0; // 用來交換的臨時數(shù) // 要遍歷的次數(shù) for (int i = 0; i < list.length - 1; i++) { // 從后向前依次的比較相鄰兩個數(shù)的大小,遍歷一次后,把數(shù)組中第i小的數(shù)放在第i個位置上 for (int j = list.length - 1; j > i; j--) { // 比較相鄰的元素,如果前面的數(shù)大于后面的數(shù),則交換 if (list[j - 1] > list[j]) { temp = list[j - 1]; list[j - 1] = list[j]; list[j] = temp; } } System.out.format('第 %d 趟: ', i); printAll(list); } } ![]() ![]() ![]() public void bubbleSort_2(int[] list) { int temp = 0; // 用來交換的臨時數(shù) boolean bChange = false; // 交換標(biāo)志 // 要遍歷的次數(shù) for (int i = 0; i < list.length - 1; i++) { bChange = false; // 從后向前依次的比較相鄰兩個數(shù)的大小,遍歷一次后,把數(shù)組中第i小的數(shù)放在第i個位置上 for (int j = list.length - 1; j > i; j--) { // 比較相鄰的元素,如果前面的數(shù)大于后面的數(shù),則交換 if (list[j - 1] > list[j]) { temp = list[j - 1]; list[j - 1] = list[j]; list[j] = temp; bChange = true; } } // 如果標(biāo)志為false,說明本輪遍歷沒有交換,已經(jīng)是有序數(shù)列,可以結(jié)束排序 if (false == bChange) break; System.out.format('第 %d 趟: ', i); printAll(list); } } ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ———— 編輯 ∑Gemini 來源:視學(xué)算法 |
|
|