數據結構與算法 - 07 二分搜索與貪婪

  • 二分搜索 Binary Search
    • 定義
      • 又叫 折半搜索
      • 在有序數組中查找某一特定元素的搜索算法
      • 前提:數組必須有序
    • 優點
      • 時間複雜度:O(lgn),非常高效
      • 又叫 對數搜索
    • 缺點
      • 要求待查找的數組或區間是排好序的
    • 應用
      • 數據是排好序的,且不會經常變動
    • 代碼
      • 遞歸
      • 非遞歸
  • 貪婪 Greedy
    • 定義
      • 每一步都採用在當前狀態下最好或最優的選擇,從而希望導致結果是最好或最優的算法
    • 優點
      • 從局部考慮問題,而非整體
      • 當局部最優解 能產生 全局最優解時,才能用
    • 缺點
      • 並不是所有問題都能用它解決
      • 得到的結果並不一定是正確的
      • 【因這種算法容易過早地做出決定,從而沒辦法達到最優解】
    • 應用
      • 當局部最優解 能產生 全局最優解時,才能用
    • 練習
      • LC253:會議室Ⅱ,給定一系列會議的起始時間和結束時間,求最少需要多少個會議室可以讓這些會議順利召開
      • 思路:
        • 將會議按照起始時間排序
        • 給新的即將開始的會議,找會議室時,先看當前有無空會議室
        • 有則在空會議室開會,無 則開設一間新會議室
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章