人人网

 乱序存储10个大小连续的自然数(如6,1,2,3,9,4,5,7,0,8)中随机抽取一个,根据余下的数,如何判定被抽取数的值?如果有1000万或更多自然数时,判定被抽取数的值时,也用同样的方法吗?

直接采用二分法查找就可以了就可以

数列 a[1000000];
取走后数据形成的数列为
b[1000000-1];
L =0;
H=10000000;
第一次二分法,

a[H/2]==b[H/2]
则 取走的数据位于
[H/2,H]之间
若不等
则位于[0,H/2]之间

你可能感兴趣的:(人人网)