看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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