遞迴演算法 貪心演算法

2021-10-03 15:32:23 字數 779 閱讀 4038

思維方式:把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解。

關鍵點:遞迴邊界及遞迴定義(大型問題與小型問題之間的關係)。

記憶化搜尋:遇到重疊的子問題直接呼叫其結果。

解題通常的三步驟:

1)分析問題、尋找遞迴:找出大規模問題與小規模問題之間的關係

2)紳士邊界、控制遞迴:找出終止條件

概念:利用最優策略,將複雜問題分解成子問題,通過子問題的最優解法得到整體問題的最優解。

關鍵點:題目是否適用於貪心演算法,如何確定所選擇的策略為**最優策略**(舉反例)。

基本思路(取自資訊學奧賽一本通):

1)建立數學模型來描述問題

2)把求解的問題分成若干個子問題

3)對每乙個子問題求區域性最優解

4)把子問題的區域性最優解合成原來問題的解

適用問題:區域性最優策略能導致產生全域性最優解

ps:貪心演算法只進行區域性分析,不具備」大局觀「,且**無後效性**(決策一旦做出無法更改)

遞迴演算法基本算是後續題目中的乙個必經之路了,利用遞迴的模式來不斷的縮小問題的規模,同時還能把以前稍微複雜的問題輕鬆理解,因此可謂是重中之重了,(雖然感覺我玩的還不熟)。

貪心的話個人感覺適用範圍不及遞迴來的大,但難是真的難。主要還是用與最優解的問題,且個人感覺是遞迴的特殊版本。

進入演算法領域之後感覺每次寫題大腦都在顫抖,腦子是真的疼。雖然以前對vb中的演算法有一定學習,但不得不承認還是學的不夠深入啊……總之希望自己能活下去吧,畢竟總要有些東西來讓腦子想想的嘛(怕不是要超負荷……)。

演算法 貪心演算法

把乙個複雜問題分解為一系列較為簡單的區域性最優選擇,每乙個選擇都是對當前解的乙個擴充套件,知道獲得問題的完整解。在解決問題的策略上目光短淺,只根據當前已有的資訊做出選擇,而且一旦做出了選擇,不管將來有什麼結果這個選擇都不會改變。換言之,貪心法並不是從整體最優考慮,它所做出的選擇只是在某種意義上的區域...

演算法 貪心演算法

集合覆蓋問題 旅行商問題等都屬於np完全問題,在數學領域上並沒有快速得到最優解的方案,非常適合用貪婪演算法。判斷方法 1.元素較少時,一般執行速度很快,但隨著元素數量增多,速度會變得非常慢 2.涉及到需要計算比較 所有的組合 情況的通常是np完全問題 3.無法分割成小問題,必須考慮各種可能的情況。這...

演算法 貪心演算法

貪心演算法,又稱貪婪演算法 greedy algorithm 是指在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優解出發來考慮,它所做出的僅是在某種意義上的區域性最優解。貪婪演算法是一種分階段的工作,在每乙個階段,可以認為所做決定是最好的,而不考慮將來的後果。這種 眼下能夠拿到...