基本演算法根據時間複雜度,空間複雜度大致可以分為下面幾種:窮舉法,迭代法,遞推法,遞迴法,分治法,貪心法,回溯法,動態規劃以及分支定界。
1. 窮舉法:即在眾多的候選解中按照某種順序逐一進行列舉和檢驗,通過這種方法來找出候選解並作為問題的解。
優點:演算法簡單
缺點:需要耗費大量的時間
2. 迭代法:即通過某乙個初始估計值出發來尋求一系列近似解。
優點:較快地求出一定精度範圍內的可行解
缺點:涉及函式收斂性相關問題
3. 遞推法:利用問題本身具有的遞迴關係,將問題分解為若干步,找出相鄰幾步的關係,並從而到達目的。
優點:一步步遞推,能較方便地求取到可行解
缺點:遞推關係的構造問題
4. 遞迴法:即強調一種直接或者間接地自身呼叫自身的演算法。
優點:**簡潔
缺點:通常需要改為非遞迴實現,因為遞迴法可能會造成棧溢位等問題。
5. 分治法:即把乙個難問題分成兩個或者多個相同或相似的子問題,再依此把子問題劃分成更小的子問題,直到最後子問題能簡單地解決為止。
優點:高效演算法
缺點:可能出現遞迴問題
6. 貪心演算法:即求解問題時,總是把當前解當作最好的解,直到求解出更好的解。
優點:相對最優
缺點:盲目性,難保證全域性最優
7. 動態規劃:即一種數學上求取重疊子問題的方法,這是一種數學思想,其求解方法很多,針對不同問題會有不同的動態規劃求解方法。
優點:數學化,理論依據強
缺點:適用性
8. 回溯法:即根據選優條件進行向前搜尋。找不到時糾錯,反覆探尋,直到找到解,類似深度搜尋的方法。
優點:簡單明瞭
缺點:選優條件設定問題
9. 分支定界:即在類似樹這種資料結構上進行解的搜尋,一種類似廣度搜尋的方法。
優點:控制搜尋策略來進行分支
缺點:近似最優
快取原理與設計之快取基本思想及分類
在mybatis功能點一應用 二級快取整合redis 池塘裡洗澡的鴨子 cnblogs.com 中,mybatis使用第三方快取redis將查詢資料儲存。實際上除了redis還可以使用其他的第三方快取也可以,只有實現了jdk提供的cache介面即可。這個介面就是快取設計濃縮的精華。那麼究竟為什麼要使...
HTTP基本與原理
1 http的請求過程 uri uniform resource identifier,統一資源標誌符 對url urn的標誌 url uniform resource locator,統一資源定位符 urn,之命名資源而不指定如何定位資源 urn uniform resource name,統一資...
文字分類的基本原理
文字分類的概念 文字分類用電腦對文字集 或其他實體或物件 按照一定的分類體系或標準進行自動分類標記。它根據乙個已經被標註的訓練文件集合,找到文件特徵和文件類別之間的關係模型,然後利用這種學習得到的關係模型對 新的文件進行類別判斷 文字分類從基於知識的方法逐漸轉變為基於統計 和機器學習的方法。文字分類...