看板 C_Sharp 關於我們 聯絡資訊
※ 引述《DearKurt (MIIS)》之銘言: : ※ 引述《n4321 ( )》之銘言: : : 請問一下 : : 我試了一下BinarySearch的功能 : : 以下是程式碼 : : ArrayList a = new ArrayList(); : : a.Clear(); : : a.Add("a a"); : : a.Add("bttt"); : : a.Add("c"); : : a.Add("d"); : : a.Add("p"); : : a.Add("nddd"); : : a.Add("r"); : : a.Add("tttttttttttttd"); : : a.Add("rere"); : : a.Add("a"); : : int i = a.BinarySearch("nddd"); : : Console.WriteLine(i); : : Console.Read(); : : 顯示出來的並非5 而是-5 : : 請問一下這有什麼錯誤嗎?謝謝 : http://en.wikipedia.org/wiki/Binary_search : 看一下binarysearch的解釋 : 是從sorted list中找到特定值 : 所以要正常運作 要先排序 : 不然就直接用indexof就好了 補充一下 http://msdn.microsoft.com/library/cht/default.asp?url=/library/CHT/cpref/ html/frlrfsystemcollectionsarraylistclassbinarysearchtopic2.asp 傳回值 如果找到 value ,則為排序的 ArrayList 中 value 之以零起始的索引;否則為負數, 即大於 value 的下一個元素之位元補數,或者,如果沒有更大的元素,則為 Count 之位元補數。 備註 如果 ArrayList 尚未根據 IComparable 實作來排序,結果可能不正確。 所以他有的時候是數字不太對是因為沒排序 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.209.4