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