對關鍵碼序列(9,12,15,20,24,29,56,69,87)進行二分查找(折半查找),若要查找關鍵碼15;則需依次與(38)進行比較。
(38)A.87、29、15 B.9、12、15 C.24、12、15 D.24、20、15
請問:
1.第一個中間數是24,比較15后,排除29 56 69 87,再剩下的數列
9 12 15 20中哪個是中間數
2.答案為什么是C不是D
uj5u.com熱心網友回復:
用排除法第一個中間數24比較后,剩下的數列是9 12 15 20了,對比選項顯然只有c是符合的。
uj5u.com熱心網友回復:
所謂的中間數,就是陣列長度 len/2,把整個陣列劃為3個區域,[0~len/2) ,len/2,(len/2~n-1] 然后依次判斷如果 key==a[len/2] ,回傳成功
如果key<a[len/2] ,則對 [0~len/2)處理
如果key>a[len/2],則對(len/2,n-1]處理
第二次中間數,4/2 則是2 就是 [9,12,15),15,(15,20]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/232763.html
標籤:新手樂園
