【数据结构与算法】比较法分析查找算法与查找结构
基本的查找技術(shù):
- 線性表的查找技術(shù)
- 順序查找
- 分塊查找
- 二分查找(折半查找)
- 插值查找
- 順序查找
- 樹表的查找技術(shù)
- 二叉排序樹
- 平衡二叉樹
- B樹(B+樹、B-樹等)
- 散列表的查找技術(shù)
- 開(kāi)散列表
- 閉散列表
順序查找和其他查找技術(shù)相比,缺點(diǎn)是平均查找長(zhǎng)度較大,特別是當(dāng)查找集合較大的時(shí)候,查找效率較低(線性增長(zhǎng))。然而,順序查找的優(yōu)點(diǎn)也很突出:算法簡(jiǎn)單+適用面廣。它對(duì)表中記錄的儲(chǔ)存無(wú)任何要求,順序和鏈接都可;對(duì)表中數(shù)據(jù)有序性也無(wú)要求,可以順序可以亂序。
對(duì)比順序查找,二分查找性能較好,但它要求線性表中的記錄必須是有序的,而且必須是順序存儲(chǔ)的。
順序查找和二分查找一般只能適用于靜態(tài)查找。
而二叉排序樹的查找與深度有關(guān),最好情況查找效率O(logN),對(duì)數(shù)級(jí),接近二分查找;最壞情況效率O(N),退化為順序查找。
散列查找與上述不同,它基于計(jì)算,不需要比較。雖然實(shí)際應(yīng)用中關(guān)鍵碼集合常常存在同義詞,但是在選定合適的散列函數(shù)以后,僅需要進(jìn)行少量的關(guān)鍵碼比較,因此散列函數(shù)查找性能較高。很多情況下,散列表的空間都比查找集合大,此時(shí)雖然浪費(fèi)了一定的空間,但換來(lái)的是查找效率。
此處補(bǔ)充一點(diǎn)點(diǎn)散列(Hash)的筆記:
散列函數(shù)的設(shè)計(jì)和沖突的處理是散列查找的重難點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的【数据结构与算法】比较法分析查找算法与查找结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Java】单循环链表解决约瑟夫环问题
- 下一篇: 【程序性能分析利器】Google Per