亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何選擇排序及其優化

發布時間:2021-10-13 09:57:05 來源:億速云 閱讀:116 作者:iii 欄目:編程語言

這篇文章主要講解了“如何選擇排序及其優化”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何選擇排序及其優化”吧!

我們先來看看最原始的版本

for (int i = 0; i < beg.length - 1; i++) {for (int j = i + 1; j < beg.length; j++) {if (beg[i] >= beg[j]) {int temp = beg[j];beg[j] = beg[i];beg[i] = temp;
        }
    }
}for (int k = 0; k < beg.length; k++) {
    System.out.print(beg[k] + ",");
}

我們可以發現外面的循環每次都是第i個數和剩下的length-i-1個數做比較

如下圖

如何選擇排序及其優化

優化:

每次遍歷找出最大值和最小值,那么我們循環的次數就會少1/2

for (int i = 0; i < (beg.length - 1) / 2; i++) {int min = i;int max = i;for (int j = i + 1; j < beg.length - i; j++) {
        min = beg[i] >= beg[j] ? j : min;
        max = beg[i] >= beg[j] ? max : j;
    }if (min + max == beg.length - 1) {int temp3 = beg[beg.length - 1 - i];beg[beg.length - 1 - i] = beg[i];beg[i] = temp3;
    } else {int temp = beg[min];int temp2 = beg[max];beg[min] = beg[i];beg[max] = beg[beg.length - 1 - i];beg[i] = temp;beg[beg.length - 1 - i] = temp2;
    }
}for (int k = 0; k < beg.length; k++) {
    System.out.print(beg[k] + ",");
}

最外層遍歷少了1/2 而里層遍歷又少隨著最大值和最小值的縮小而縮小區間

如何選擇排序及其優化

這里需要考慮一下極值的情況即最大值和最小值剛好交換的情況,如圖中1和9剛好是最大值與最小值

感謝各位的閱讀,以上就是“如何選擇排序及其優化”的內容了,經過本文的學習后,相信大家對如何選擇排序及其優化這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

化隆| 美姑县| 黑水县| 莱西市| 桦川县| 晋州市| 柞水县| 揭西县| 肇州县| 老河口市| 永吉县| 策勒县| 驻马店市| 石柱| 西藏| 亳州市| 潮安县| 楚雄市| 西盟| 宿松县| 汉川市| 揭东县| 咸宁市| 阳新县| 临湘市| 开化县| 张家川| 弥渡县| 京山县| 昆山市| 白银市| 宁海县| 东港市| 沁源县| 德庆县| 游戏| 桂林市| 阜新| 黎川县| 申扎县| 克拉玛依市|