2015年408統(tǒng)考真題:不能構(gòu)成折半查找中關(guān)鍵字比較序列的是

剛才看了知乎答主春秋兩不沾關(guān)于《記錄:408-2015年真題中問法很耐人尋味的題》的回答,我悟了。題干里寫的是關(guān)鍵字比較序列(是mid序列,而不是關(guān)鍵字序列)意思是:這些數(shù)字是在被比較過程中選擇的mid值。
解題思路應該是:
假設(shè)我們選擇一個值x,此時在某一個關(guān)鍵字序列(ABCD四個選項)(有序的,假設(shè)遞增)進行比較。
A選項:mid(1)=500,mid(2)=200,因此說明x在它的左側(cè),500>x>200;mid(3)=450,說明450>x>200;mid(4)=180,不可能。
B選項:mid(1)=500,mid(2)=450,說明x<450;mid(3)=200,mid(4)=180,說明x<180,這種順序是可以的。
C選項:mid(1)=180,mid(2)=500,mid(3)=200,mid(4)=450;說明x>180,x<500,x>200,x<450這是成立的。
D選項交給你分析。
這個題的核心就在于理解關(guān)鍵字比較序列是mid序列,而不是關(guān)鍵字序列(有序的)
王道書里面選擇的用排序樹的定義去解答,為什么要是單分支呢?因為mid值每選擇一次,它就會處在下一層當中,而mid關(guān)鍵字本身位于關(guān)鍵字序列當中,因此mid值也要符合二叉排序樹的定義,即左根右(右根左),它們只是完整的二叉排序樹當中一部分。
歡迎各位指正!
標簽: