作者liu2007 (薯)
看板C_and_CPP
標題Re: [問題] 二元搜尋法
時間Fri May 15 00:22:34 2009
※ 引述《gna239 ( Kaonashi)》之銘言:
: 在一個排完順序後的分數陣列裡
: 用二元搜尋法來尋找某一個分數在這列中的位置
: 然後我也要找 這個數字在這個陣列中 是第幾個高分
: 然後也要找這個分數 在陣列裡面有幾個是同分的
: 我遇到的問題是....
: 當重複的分數一多的時候
: 找到的第幾高分會有錯誤耶
: UnSorted numbers :
: 10 54 84 81 72 39 10 93 64 81 27 10 10 64 10 20 10
: Sorted numbers :
: 10 10 10 10 10 10 20 27 39 54 64 64 72 81 81 84 93
: Please enter the score what you want to search:10
: The rank of the score is: 14
: The number of the score is:6
: 要從二元搜尋法的程式碼裡來做修正?
: 還是從找幾個同分的程式碼來做修正?
: 程式碼有點多 如果需要的話我在PO上來
原PO的問題應該是要找10這個數在哪裡(以排序)?
結果他找到的位置是14號
而且array[14]的內容是6
如果要找的數剛好有很多個
那找到的位置應該是最靠近中間的那個
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.232.53.192
推 softwind:重複的數值的話 不一定"會剛好找到中間" hit and return 05/15 00:59
→ softwind:ex: 1 1 1 1 1 2 3 4 5 找1的話是最右邊的hit 05/15 01:00
↑這裡是整個的數列的中間啊@.@
※ 編輯: liu2007 來自: 118.232.53.192 (05/15 02:22)
→ Ebergies:那 1 1 1 1 1 2 2 3 4 5 5 找的的 1 咧 @@ 05/15 13:26