關於折半查找平均查找成功長度的推導(數據結構 鄧俊輝)

來源:<<數據結構>> 鄧俊輝

上述C(k)的遞推公式看了好久都沒看懂(深刻受到清華的降維打擊,差點放棄學習)。

期間主要參考瞭如下帖子:

https://ask.csdn.net/questions/699067,其回答對於我,起到了非常重要的作用。

對於C(k)來說,我的理解、或者大家有誤的理解是:C(k)=C(k-1)+ +2+C(k-1)+ 2 。按照上述回答的理解,C(k-1)是下一層實例得到的總比較次數。1表示一次比較失敗,2表示兩次比較成功,2表示兩次比較失敗。

其中錯誤的地方在於C(k-1)是隻能看作b層左右兩個部分的總比較次數,而不能看作a層元素2左右兩部分的總比較次數。要想把C(k-1)看作a層左邊部分的總比較次數,就需要加上2^(k-1)。因爲上述回答也提到,我們可以理解a層左邊部分的總比較次數比b層左分支的總比較次數多了2^(k-1),因爲a層想要進入b層左分支,那麼b層左分支所有元素的比較次數都需要加1次失敗的比較,而b層左分支共有2^(k-1)個元素,故不難得出。b層右側同理。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章