【数据结构与算法】比较法分析查找算法与查找结构
生活随笔
收集整理的這篇文章主要介紹了
【数据结构与算法】比较法分析查找算法与查找结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本的查找技術:
- 線性表的查找技術
- 順序查找
- 分塊查找
- 二分查找(折半查找)
- 插值查找
- 順序查找
- 樹表的查找技術
- 二叉排序樹
- 平衡二叉樹
- B樹(B+樹、B-樹等)
- 散列表的查找技術
- 開散列表
- 閉散列表
順序查找和其他查找技術相比,缺點是平均查找長度較大,特別是當查找集合較大的時候,查找效率較低(線性增長)。然而,順序查找的優點也很突出:算法簡單+適用面廣。它對表中記錄的儲存無任何要求,順序和鏈接都可;對表中數據有序性也無要求,可以順序可以亂序。
對比順序查找,二分查找性能較好,但它要求線性表中的記錄必須是有序的,而且必須是順序存儲的。
順序查找和二分查找一般只能適用于靜態查找。
而二叉排序樹的查找與深度有關,最好情況查找效率O(logN),對數級,接近二分查找;最壞情況效率O(N),退化為順序查找。
散列查找與上述不同,它基于計算,不需要比較。雖然實際應用中關鍵碼集合常常存在同義詞,但是在選定合適的散列函數以后,僅需要進行少量的關鍵碼比較,因此散列函數查找性能較高。很多情況下,散列表的空間都比查找集合大,此時雖然浪費了一定的空間,但換來的是查找效率。
此處補充一點點散列(Hash)的筆記:
散列函數的設計和沖突的處理是散列查找的重難點。
總結
以上是生活随笔為你收集整理的【数据结构与算法】比较法分析查找算法与查找结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java】单循环链表解决约瑟夫环问题
- 下一篇: 洛谷入门题P1046、P1047、P14