学进去-教育应平等而普惠
试题
类型:操作题
难度系数:0.15
所属科目:高中信息技术
“轮转后有序数组(RotatedSortedArray)”是将有序数组取其中某一个数为分点,将其之前的所有数都轮转到数组的末尾所得。比如{7,11,13,17:2,3,5}就是一个轮转后的有序数组,原有序数组中的子串{2,3,5}被轮转到了数组的末尾处。
对于一个轮转后有序数组arr可以进行二分查找,算法思路如下(以升序为例):
每次根据查找的左侧位置L和右侧位置R求出中间位置M后,M左边,M和右边[M+1,R],这两部分中至少一个是有序的(可根据中间位置数据和边界数据的大小关系判断)。
arr[M]和待查找数据Key比较
①arr[M]=key,返回M的值
②若M位置的右侧有序,当待查找数据在右侧,则下次在右侧查找,否则在M左侧查找
③若M位置的左侧有序,当待查找数据在左侧,则下次在左侧查找,否则在M右侧查找
(1)对于轮转后有序数组{7,11,13,17,2,3,5}使用以上函数search()查找key值3,所需要的查找次数为______________。
(2)以下VB函数Search()实现了对轮转后有序数组arr进行二分查找的过程,如果查询成功,返回m值,查询失败则返回一1。请补充程序中①②③划线处的代码:
Function Search (key As Integer, L As Integer, R As Integer) As Integer
______
Do While L<=R And Search=-1

M=(L+R)\2

If arr(M)=key Then

Search=M
Else
If ____ Then
If arr(L)<=key And key<arr(M) Then
R=M-1
Else
L=M+1
End If
Else
If ____ Then
L=M+1
Else
R=M-1
End If
End If
End If
Loop
End Function
编辑解析赚收入
收藏
|
有奖纠错

同类型试题

优质答疑

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

用户名称
2019-09-19
我要答疑
编写解析
解析:

奖学金将在审核通过后自动发放到帐

提交
我要答疑
我要答疑:
提交