貪心算法學習總結

     先說一下之前STL的題目,存在一個很大的問題——讀不懂題意,不少題目其實問的問題很簡單,但是因爲是以英文的形式給出的,影響了理解。經過多層翻譯終於弄懂題意之後,使用STL中的哪種數據結構又成了新的問題,簡單的說,就是無從下手。
      還有就是關聯容器map,不怎麼會用啊(눈_눈),數據之間的關聯怎麼使用不會,具體該在怎樣的情況下使用不清楚,練習的題目太少,一遇到map就有點束手束腳。優先隊列中,竟然可以在<  >加各種東西,包括vector set這樣的容器⊙﹏⊙看來還是需要繼續學習優先隊列的內容。           
      步入正題,貪心算法。         
      跟它的名字一樣,貪心的最核心思想就是貪,只在乎眼前利益,追求當下最優解,因此貪心算法最大的優點就是不需要考慮整體,但同時也是最大的缺點,不考慮整體意味着短視,出錯的機率增加。          
    貪心使用條件         
    1、可行的:即它必須滿足問題的約束。

2、局部最優:他是當前步驟中所有可行選擇中最佳的局部選擇。  
  3、不可更改:即選擇一旦做出,在算法的後面步驟就不可改變了。
  解題的一般步驟是:
  1.建立數學模型來描述問題;
  2.把求解的問題分成若干個子問題;
  3.對每一子問題求解,得到子問題的局部最優解; 4.把子問題的局部最優解合成原來問題的一個解
  貪心最關鍵的是找到最優子結構,逐步求解。另外,貪心還有很多的例題,可惜沒看懂多少→_→特別是遇到模擬的時候。唯一的收穫就是,當一個問題分成許多步求解時,貪心是不二之選。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章