亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在Binary Search中計數比較

在Binary Search中計數比較

C#
精慕HU 2021-04-09 21:18:32
給我一個作業,我需要計算給定的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條件


查看完整回答
反對 回復 2021-04-17
  • 2 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號