給我一個作業,我需要計算給定的Binary Search程序進行的“比較次數”。問題是二進制搜索使用了if,else,if,else語句,并且無法在這些比較之間插入計數器增量語句。有沒有適合的設計方法來保持比較計數以測試效率?有一個關于這個另一SO問題在這里得到的答復意見計數器將關閉1-2增量。如果每次檢查條件時都進行比較,則將其放置在比較主體中是否不準確(只有在為true時才進行評估?)。用偽代碼,我有:binarysearch(array, k) counter = 0; x = 0; length = array.length while (0 <= length) int middle = length + x / 2; counter+1; if (x is array[middle]) {print(counter) return middle;} else if (k < array[middle]) { x = middle - 1; counter + 1; } else { x = middle + 1; counter + 1; } Print(counter); Return -1;
2 回答

至尊寶的傳說
TA貢獻1789條經驗 獲得超10個贊
試試這樣的東西:
binarysearch(array, k)
counter = 0;
x = 0;
length = array.length
while (0 <= length)
int middle = length + x / 2;
if ((++counter>0) and x is array[middle]) {print(counter) return middle;}
else if ((++counter>0) and k < array[middle]) { x = middle - 1; }
else { x = middle + 1; }
Print(counter);
Return -1;
(++ counter> 0)始終為true,并且不要更改if條件
- 2 回答
- 0 關注
- 161 瀏覽
添加回答
舉報
0/150
提交
取消