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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 07:06:16
数组a[]中有10亿个不同的数,并且按数的升序排列好了,用最快捷简便的方法查到一个数的位置?注意:不能用效率低下的遍历查询 求助啊!

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

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