首页 > 试题广场 >

设有序表的关键字序列为{1,4,6,10,18,35,42,

[单选题]

设有序表的关键字序列为{1461018354253677178849299},当用二分查找法查找键值为35的结点时,经()次比较后查找成功。

  • 2
  • 3
  • 4
  • 6
c
查找的次数也就是比较的次数
二分查找的核心是用中间的数和目标数比较
第一次比较的是第7个数 42
第二次比较的是第3个数 6
第三次比较的是第5个数18
第四次比较的是第6个数35,也就等于目标数,返回
所以总的查找次数是4次
发表于 2019-06-12 11:54:22 回复(0)
更多回答
推荐
C
第1次
1461018354253677178849299    
left=0,right=13,mind=6;   mid值为42,太大
第2次
146101835,42,53,67,71,78,84,92,99    
left=0,right=5,mind=2;   mid值为6,太小
第3次
1461018354253677178849299    
left=3,right=5,mind=4;   mid值为18,太小
第4次
1461018354253677178849299    
left=5,right=5,mind=5;   mid值为35,找到了
编辑于 2019-06-12 14:26:17 回复(2)
选C 。考察的是二分法查找基本过程原理。
基本过程如下
  1. 将待查找有序数列{1461018354253677178849299}中间记录位置的关键字42与查找关键字35做比较,由于42>35,则继续查找中间位置的前一个子表
  2. 根据以上第1步形成的待查找有序数列为{146101835}中间记录位置关键字为6,与查找关键字35做比较,由于6<35,则继续查找中间位置后一个子表
  3. 根据以上第2步形成的待查找有序序列为{101835}中间记录位置关键字为18,与查找关键字35做比较,由于18<35,则继续查找中间位置后一个子表
  4. 根据以上第3步形成的待查找有序序列{35},中间关键字等于待查关键字35所以查找成功

编辑于 2019-06-11 18:04:46 回复(2)
注意,二分查找,当待查找元素个数为奇数时,查找第(N+1)/2个元素,当待查找元素为偶数时,查找第N/2个元素。
发表于 2022-02-27 22:49:11 回复(0)
答案:C
第一次:1 4 6 10 18 35 42 53 67 71 78 84 92 99
left = 1, right = 14, mid = 7,而35>42,故在左边区间寻找,
第二次:1 4 6 10 18 35
left = 1, right = 6, mid = 3, 而6<35,故在右边区间寻找,
第三次:10 18 35
left = 4 ,right = 6;mid = 5,而18<35,故在右边区间寻找
第四次:35
left = 6, right = 6, mid = 6, 35=35,寻找到,
因此,比较了四次,分别与42、6、18、35比较
发表于 2019-06-11 20:57:39 回复(0)

注意把二分查找到最终值的那一次也算上

发表于 2019-11-06 21:54:30 回复(0)
链接:https://www.nowcoder.com/questionTerminal/cd1c919757bd4ecb825df40fccb426e0
来源:牛客网
选C 。考察的是二分法查找基本过程原理。
基本过程如下
  1. 将待查找有序数列{1461018354253677178849299}中间记录位置的关键字42与查找关键字35做比较,由于42>35,则继续查找中间位置的前一个子表
  2. 根据以上第1步形成的待查找有序数列为{146101835}中间记录位置关键字为6,与查找关键字35做比较,由于6<35,则继续查找中间位置后一个子表
  3. 根据以上第2步形成的待查找有序序列为{101835}中间记录位置关键字为18,与查找关键字35做比较,由于18<35,则继续查找中间位置后一个子表
  4. 根据以上第3步形成的待查找有序序列{35},中间关键字等于待查关键字35所以查找成功
发表于 2019-06-12 11:18:23 回复(0)
我居然认为剩下的35不用比较…
发表于 2022-09-06 15:07:05 回复(0)
mid=(left+right)/2
发表于 2023-03-29 19:53:02 回复(0)
最后一次也必须要比较
发表于 2022-05-01 11:10:14 回复(0)
马虎啦
编辑于 2024-03-20 08:02:40 回复(0)
第一次42,第二次10,第三次18,第四次35
发表于 2023-09-20 20:57:58 回复(0)
二分法用左闭右开区间,
第一次[0,14), mid = 7 ,a[mid] = 53, right = 7;
第二次是[0,7),mid = 3,a[mid] = 10 ,left = 4;
第三次是[4,7),mid = 5 ,a[mid]=35  return 
二分法的一直都是左右闭区间吗
发表于 2023-03-11 12:51:31 回复(0)
二分查找,当有序数列为奇数时,关键字是(N+1)/2,当有序数列为偶数时,关键字是(N)/2,然后再一一做比较就好了
发表于 2022-11-07 15:42:25 回复(0)
典型算法: 算法:当数据量很大适宜采用该方法。采用二分法查找时,数据需是排好序的。 基本思想:假设数据是按升序排序的,对于给定值n,从序列的中间位置mid开始比较, 如果当前位置arr[mid]值等于n,则查找成功; 若n小于当前位置值arr[mid],则在数列的前半段中查找,arr[left,mid-1]; 若n大于当前位置值arr[mid],则在数列的后半段中继续查找arr[left+1,right], 直到找到为止,时间复杂度:O(log(n)) 。
发表于 2022-10-15 18:15:37 回复(0)
除出来.5分向上取整、向下取整,这类题目是有争议的
编辑于 2022-04-08 21:10:52 回复(0)
这题可以参考这个bug free的思路https://www.zhihu.com/answer/530313852
发表于 2020-04-29 22:08:00 回复(0)
呵,我傻了,78看成7和8想都没想这顺序也不对啊!!!
发表于 2019-12-29 10:48:51 回复(0)