演算法 對貪 演算法對研究

2022-06-23 19:39:13 字數 768 閱讀 9109

貪⼼演算法是⼀種求近似解的思想。當能滿⾜⼤部分最優解時就認為符合邏輯要求。

還⽤找零 這個案例為例, 考慮使⽤貪⼼演算法解題: ⽐如當找零數為 36 時, 從硬幣數的最⼤值 20 開始填充,

填充不下後再⽤ 10 來填充, 以此類推, 找到最優解。

場景: 假如有 1, 5, 10, 20,50,100 的⼈⺠幣

36 // 找零數

[20, 10, 5, 1] // 需 20、10、5、1

class change

makechange(amount)

}return arr}}

const change = new change([1, 5, 10, 20,50,100])

console.log(change.makechange(36))

console.log(change.makechange(136))

console.log('-'.repeat(100))

const change1 = new change([1, 3, 4])

console.log(change1.makechange(6)) // 其實33最好

貪⼼演算法相對簡單,就是先懟最⼤的,⼤部分情況都ok,但是有些情況不是最優解,所以⼈不要太貪

⼼哦console.log('-'.repeat(100))

const change1 = new change([1, 3, 4])

console.log(change1.makechange(6)) // 其實33最好

對漢諾塔遞迴演算法的研究

漢諾塔問題的遞迴解法是乙個非常經典的演算法。一 遞迴描述 1 當disc 1時 將盤子從x柱直接移到z柱 完成。2 當disc 2時 首先將編號為1的盤子從x柱移到y柱 其次將編號為2的盤子從x柱移到z柱 最後將編號為1的盤子從y柱移到z柱 完成。3 由2推廣可知,當disc n時 首先將n 1個盤...

對python亂序字串檢查演算法研究

顯示不同量級的演算法的乙個很好的例子是字串的亂序檢查。亂序字串是指乙個字串只是另乙個字串的重新排列。例如,heart 和 earth 就是亂序字串。python 和 typhon 也是。為了簡單起見,我們假設所討論的兩個字串具有相等的長度,並且他們由 26 個小寫字母集合組成。我們的目標是寫乙個布林...

10 16 對頂堆演算法研究(POJ 3784)

考慮維護兩個堆 乙個堆是大根堆,儲存1 x的元素 乙個堆是小根堆,儲存x 1 n的元素 對於乙個加入的元素y,考慮將其加入大根堆or小根堆?如果y mid,那麼將其加入小根堆 上面的堆 如果y include include include using namespace std int t,pos...