由有序序列折半尋找構建判定樹

來源:互聯網
上載者:User

需要特彆強調的是折半尋找的判定樹是一棵平衡樹

一般對於一個有序序列折半尋找過程,需要從中間結點開始結點比較起,這樣就會進入左子樹或者右子樹進行比較,因此,只要明白了樹的根結點怎麼確定的,就能夠遞迴的處理左右子樹,也就是mid左右兩半元素對應的是左右子樹的元素。

舉例如下:構建一個12個元素的有序表的判定樹。

不妨假設是1,2,3,4,… , 12
則 mid=(1+12)÷2=6 mid = (1+12)\div 2 = 6,從而,根結點就是6.劈開左右兩半分別是:
左:1,2,3,4,5;
右:7, 8, 9, 10, 11, 12;

左邊再選一個根結點: (1+5)÷2=3 (1+5)\div 2 = 3
則左半部再分為兩個部分:
左:1,2;
右:4,5;

特彆強調只有兩個元素時候如何定根結點,演算法一樣:
1,2再選一個根結點: (1+2)÷2=1 (1+2)\div 2 = 1
即選擇1作為根結點,2是它的右孩子。
同理處理4,5。

這樣左子樹處理完畢,再同樣處理右子樹。

通過框圖可以看到子樹的遞迴。

所以折半尋找判定樹的構造過程是有跡可循且比較直觀的,不是盲目的拍腦袋得出的演算法。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.