查找的计算题

来源:互联网 发布:常见毒药 知乎 编辑:程序博客网 时间:2024/04/30 10:30
在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为

正确的二分查找应该是一次折半后,high=middle-1 或者 low=middle+1;
所以第一次查找时 high=10,low=0; middle= 0+10/2 = 5,即15;
第二次查找时 high=5-1, low =0; middle = 0+(5-1-0)/2 = 2,即8;
第三次查找时 high=4, low = 2+1; middle = 3+(4-3)/2 = 3,即10;
第四次查找时 此时 low=3+1=4,而此时high =4,故查找结束。比较次数为4次,选C