2016-11-23 27 views
-1

嗨,大家好我有一個二進制搜索,有一個排序數字的列表框,用戶在文本框中輸入一個值來檢查它在列表框中的位置。然而,輸入到文本框中的數字顯示爲列表框內的位置,例如5輸入,「你正在搜索的號碼在5號位置」。二進制搜索無法正常工作

  int Number = (Convert.ToInt16(textBox1.Text)); 

      int a = lstHoldValue.Items.Count; 
      int start = 0, end = a - 1, mid = (start + end)/2; 

      while (start <= end) 
      { 
       mid = (start + end)/2; 
       if (Number == Convert.ToInt16(lstHoldValue.Items[mid])) 
       { 
        MessageBox.Show("The number you are searching is found in position " + (Number)); 
        return; 
} 
+2

請提供[MCVE],記住,你不需要使用GUI來證明或測試二進制搜索部分軸承本身。你也應該仔細看看你的MessageBox.Show調用。你用什麼來提供職位,你確定這就是你想要提供的? (提示:當你的代碼中有'...「+(Number)'時,當它顯示你的號碼時,你不應該感到驚訝......) –

+0

查看並調試你的代碼。 numArray的內容是什麼? –

+0

對不起,傢伙,ive給你看錯了代碼,我以前的代碼工作時,我用numArray。雖然我正在嘗試使用列表框來完成此操作。 –

回答

0

二進制搜索塊是正確的

的錯誤是打印在郵件中。它應該是:

MessageBox.Show("The number you are searching is found in position " + (mid)); 

中旬,而不是