C++ 排序

2023-03-20 16:24 更新

既然牌堆中的紙牌順序已經亂了,我們還是需要一種讓紙牌重新有序的方法。諷刺的是,有一個排序算法與洗牌算法很相似。

再一次,我們遍歷牌堆,而且在每個位置都選擇另一張紙牌并交換。唯一的區(qū)別是,這次我們不是隨機的選擇另一張牌,而是選擇剩余牌堆中最小的紙牌。

“剩余牌堆中”指的是以i或i右側的值為索引的紙牌。

for (int i=0; i<cards.length(); i++) {
  // 在位置i及其右側找到最小的紙牌
  // 將第i張紙牌與最小的紙牌交換
}

此外,偽代碼有助于輔助函數的設計。這種情況下,我們又能使用findLowestCard了,它接收紙牌向量和我們要開始查找的位置的索引值。

使用偽代碼指出需要什么輔助函數的過程稱為自上而下的設計,它不同于我們在10.8節(jié)討論的下下而上的設計。

我們再次把實現留給讀者。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號