生活随笔
收集整理的這篇文章主要介紹了
5、二分查找判定树
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
| 上一頁 5、二分查找判定樹 ??? 二分查找過程可用二叉樹來描述:把當前查找區(qū)間的中間位置上的結(jié)點作為根,左子表和右子表中的結(jié)點分別作為根的左子樹和右子樹。由此得到的二叉樹,稱為描述二分查找的判定樹(Decision Tree)或比較樹(Comparison Tree)。 ??注意: ??? 判定樹的形態(tài)只與表結(jié)點個數(shù)n相關(guān),而與輸入實例中R[1..n].keys的取值無關(guān)。 ? 【例】具有11個結(jié)點的有序表可用下圖所示的判定樹來表示。 ???? ????????? ?http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.2.2.2.htm (1)二分查找判定樹的組成 ①圓結(jié)點即樹中的內(nèi)部結(jié)點。樹中圓結(jié)點內(nèi)的數(shù)字表示該結(jié)點在有序表中的位置。 ②外部結(jié)點:圓結(jié)點中的所有空指針均用一個虛擬的方形結(jié)點來取代,即外部結(jié)點。 ③樹中某結(jié)點i與其左(右)孩子連接的左(右)分支上的標記"<"、"("、">"、")"表示:當待查關(guān)鍵字K<R[i].key(K>R[i].key)時,應走左(右)分支到達i的左(右)孩子,將該孩子的關(guān)鍵字進一步和K比較。若相等,則查找過程結(jié)束返回,否則繼續(xù)將K與樹中更下一層的結(jié)點比較。 (2)二分查找判定樹的查找 二分查找就是將給定值K與二分查找判定樹的根結(jié)點的關(guān)鍵字進行比較。若相等,成功。否則若小于根結(jié)點的關(guān)鍵字,到左子樹中查找。若大于根結(jié)點的關(guān)鍵字,則到右子樹中查找。 【例】對于有11個結(jié)點的表,若查找的結(jié)點是表中第6個結(jié)點,則只需進行一次比較;若查找的結(jié)點是表中第3或第9個結(jié)點,則需進行二次比較;找第1,4,7,10個結(jié)點需要比較三次;找到第2,5,8,11個結(jié)點需要比較四次。 ??? 由此可見,成功的二分查找過程恰好是走了一條從判定樹的根到被查結(jié)點的路徑,經(jīng)歷比較的關(guān)鍵字次數(shù)恰為該結(jié)點在樹中的層數(shù)。若查找失敗,則其比較過程是經(jīng)歷了一條從判定樹根到某個外部結(jié)點的路徑,所需的關(guān)鍵字比較次數(shù)是該路徑上內(nèi)部結(jié)點的總數(shù)。 ??? 【例】待查表的關(guān)鍵字序列為:(05,13,19,21,37,56,64,75,80,88,92),若要查找K=85的記錄,所經(jīng)過的內(nèi)部結(jié)點為6、9、10,最后到達方形結(jié)點"9-10",其比較次數(shù)為3。 ??? 實際上方形結(jié)點中"i-i+1"的含意為被查找值K是介于R[i].key和R[i+1].key之間的,即R[i].key<K<R[i+1].key。 (3)二分查找的平均查找長度 ???? 設(shè)內(nèi)部結(jié)點的總數(shù)為n=2h-1,則判定樹是深度為h=lg(n+1)的滿二叉樹(深度h不計外部結(jié)點)。樹中第k層上的結(jié)點個數(shù)為2k-1,查找它們所需的比較次數(shù)是k。因此在等概率假設(shè)下,二分查找成功時的平均查找長度為: ?????????? ASLbn≈lg(n+1)-1 二分查找在查找失敗時所需比較的關(guān)鍵字個數(shù)不超過判定樹的深度,在最壞情況下查找成功的比較次數(shù)也不超過判定樹的深度。即為: ??????? ??? 二分查找的最壞性能和平均性能相當接近。 6、二分查找的優(yōu)點和缺點 雖然二分查找的效率高,但是要將表按關(guān)鍵字排序。而排序本身是一種很費時的運算。既使采用高效率的排序方法也要花費O(nlgn)的時間。 二分查找只適用順序存儲結(jié)構(gòu)。為保持表的有序性,在順序結(jié)構(gòu)里插入和刪除都必須移動大量的結(jié)點。因此,二分查找特別適用于那種一經(jīng)建立就很少改動、而又經(jīng)常需要查找的線性表。 對那些查找少而又經(jīng)常需要改動的線性表,可采用鏈表作存儲結(jié)構(gòu),進行順序查找。鏈表上無法實現(xiàn)二分查找。http://student.zjzk.cn/course_ware/data_structure/web/chazhao/chazhao9.2.2.2.htm |
總結(jié)
以上是生活随笔為你收集整理的5、二分查找判定树的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。