本文將在此公眾號(hào)上通過(guò)一個(gè)個(gè) ![]() ![]() ![]() ![]() ![]() ![]() ![]() int temp = 0; // 用來(lái)交換的臨時(shí)數(shù) // 要遍歷的次數(shù) for (int i = 0; i < list.length - 1; i++) { // 從后向前依次的比較相鄰兩個(gè)數(shù)的大小,遍歷一次后,把數(shù)組中第i小的數(shù)放在第i個(gè)位置上 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; // 用來(lái)交換的臨時(shí)數(shù) boolean bChange = false; // 交換標(biāo)志 // 要遍歷的次數(shù) for (int i = 0; i < list.length - 1; i++) { bChange = false; // 從后向前依次的比較相鄰兩個(gè)數(shù)的大小,遍歷一次后,把數(shù)組中第i小的數(shù)放在第i個(gè)位置上 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,說(shuō)明本輪遍歷沒(méi)有交換,已經(jīng)是有序數(shù)列,可以結(jié)束排序 if (false == bChange) break; System.out.format('第 %d 趟: ', i); printAll(list); } } ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ———— 編輯 ∑Gemini 來(lái)源:視學(xué)算法 |
|
來(lái)自: 長(zhǎng)沙7喜 > 《信息課》