W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎勵
既然牌堆中的紙牌順序已經(jīng)亂了,我們還是需要一種讓紙牌重新有序的方法。諷刺的是,有一個排序算法與洗牌算法很相似。
再一次,我們遍歷牌堆,而且在每個位置都選擇另一張紙牌并交換。唯一的區(qū)別是,這次我們不是隨機(jī)的選擇另一張牌,而是選擇剩余牌堆中最小的紙牌。
“剩余牌堆中”指的是以i或i右側(cè)的值為索引的紙牌。
for (int i=0; i<cards.length(); i++) {
// 在位置i及其右側(cè)找到最小的紙牌
// 將第i張紙牌與最小的紙牌交換
}
此外,偽代碼有助于輔助函數(shù)的設(shè)計。這種情況下,我們又能使用findLowestCard了,它接收紙牌向量和我們要開始查找的位置的索引值。
使用偽代碼指出需要什么輔助函數(shù)的過程稱為自上而下的設(shè)計,它不同于我們在10.8節(jié)討論的下下而上的設(shè)計。
我們再次把實(shí)現(xiàn)留給讀者。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: