作者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
1F:推 softwind:重复的数值的话 不一定"会刚好找到中间" hit and return 05/15 00:59
2F:→ 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)
3F:→ Ebergies:那 1 1 1 1 1 2 2 3 4 5 5 找的的 1 咧 @@ 05/15 13:26