資料結構與演算法

以1圓、4圓、6圓3種硬幣支付8圓。以從大硬幣開始盡量使用的貪婪演算法決定時的枚數,與最少枚數的關係,下列何者正確?

  1. A貪婪演算法也能得到最少的2枚
  2. B貪婪演算法為3枚,無法得到最少的2枚
  3. C貪婪演算法為3枚,這就是最少枚數
查看答案與解析

正確答案:B. 貪婪演算法為3枚,無法得到最少的2枚

貪婪演算法先使用1枚6圓,剩下的2圓以2枚1圓支付,共3枚。但若使用2枚4圓,只需2枚。如此可見,貪婪演算法只是累積當下看起來最好的選擇,視硬幣的組合而定,可能不是最佳解。以動態規劃從小金額開始依序建立「支付0圓到8圓各金額所需的最少枚數」的表,就一定能求出最少枚數。另外,像日本硬幣1、5、10、50、100、500圓這樣的組合,貪婪演算法總能得到最少枚數。

  • A. 貪婪演算法會先選6圓,因此到不了2枚4圓的組合。
  • B. 正確。貪婪演算法為 6 + 1 + 1 共3枚,最少為 4 + 4 共2枚。
  • C. 使用2枚4圓只需2枚,因此3枚不是最少。
練習這個領域 前往領域頁面

相關計算工具

資料結構與演算法的其他題目

  1. 從(重量, 價值)為 (2, 3)、(3, 4)、(4, 5)、(5, 6) 的4件物品中選擇,放入容量為8的背包。每件物品只有1個,且不能分割。在重量合計8以下的條件下,價值合計的最大值為多少?
  2. 關於在字串中尋找樣式的 BM 法(Boyer-Moore 演算法)的特徵,下列何者正確?
  3. 某個可變長度陣列在容量已滿時加入元素,會重新配置2倍容量的區域並複製所有元素。對容量為1的空陣列逐一加入1,000個元素時,被複製的元素總數為多少?
  4. 在元素很多、負載因子維持在0.5左右的雜湊表中,使用線性探測的開放定址法往往比鏈結法(以鏈結串列串接的方法)快,最適當的原因為下列何者?
  5. 在 GPU 這類平行處理裝置上排序時,有時會使用雙調排序(bitonic sort)這類比較與交換步驟固定的排序(排序網路),其理由為下列何者?