数组a[]中有10亿个不同的数,并且按数的升序排列好了,用最快捷简便的方法查到一个数的位置?注意:不能用效率低下的遍历查询 求助啊!

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/09 08:39:18
数组a[]中有10亿个不同的数,并且按数的升序排列好了,用最快捷简便的方法查到一个数的位置?注意:不能用效率低下的遍历查询 求助啊!
xՑ]N@/F"j ./ld6mk *` ̽S؂3`o=9\ALґ>:&^mwވCBm'$^ + h\A! ё zG}H{D\Zq`C.$F]IӰw6*ll32H 42}}J`օErUbod39`){RL +[:uT<{3>by& eя"n6hAG/t$78ɬCXGI$߂:َ|ԑVdos^vuڄwB2')~/S

数组a[]中有10亿个不同的数,并且按数的升序排列好了,用最快捷简便的方法查到一个数的位置?注意:不能用效率低下的遍历查询 求助啊!
数组a[]中有10亿个不同的数,并且按数的升序排列好了,用最快捷简便的方法查到一个数的位置?注意:不能用效率低下的遍历查询 求助啊!

数组a[]中有10亿个不同的数,并且按数的升序排列好了,用最快捷简便的方法查到一个数的位置?注意:不能用效率低下的遍历查询 求助啊!
取二分之一的分位点即第5亿个数,如果小于二分之一分位点,就在前5亿个数中继续取二分之一点;如果大于第5亿个数就取后5亿个数,接着用二分法.这样最多需要log_2(10亿)次就能找到了