原文鏈接 https://www.cnblogs.com/yw09041432/p/5908444.html
5. 樹表查找(在數據結構樹中有實現)
5.1 最簡單的樹表查找算法——二叉樹查找算法。(在數據結構二叉樹中有實現)
基本思想:二叉查找樹是先對待查找的數據進行生成樹,確保樹的左分支的值小於右分支的值,然后在就行和每個節點的父節點比較大小,查找最適合的范圍。 這個算法的查找效率很高,但是如果使用這種查找方法要首先創建樹。
二叉查找樹(BinarySearch Tree,也叫二叉搜索樹,或稱二叉排序樹Binary Sort Tree)或者是一棵空樹,或者是具有下列性質的二叉樹:
1)若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值;
2)若任意節點的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值;
3)任意節點的左、右子樹也分別為二叉查找樹。
二叉查找樹性質:對二叉查找樹進行中序遍歷,即可得到有序的數列。
6. 索引查找(分塊查找)
分塊查找又稱索引順序查找,它是順序查找的一種改進方法。
算法思想:將n個數據元素"按塊有序"划分為m塊(m ≤ n)。每一塊中的結點不必有序,但塊與塊之間必須"按塊有序";即第1塊中任一元素的關鍵字都必須小於第2塊中任一元素的關鍵字;而第2塊中任一元素又都必須小於第3塊中的任一元素,……
算法流程:
step1 先選取各塊中的最大關鍵字構成一個索引表;
step2 查找分兩個部分:先對索引表進行二分查找或順序查找,以確定待查記錄在哪一塊中;然后,在已確定的塊中用順序法進行查找。
7.哈希查找
哈希查找和哈希算法看這里