正在载入在线练习界面,本页内容可直接阅读…

AK CSP › NOIP 提高 2016 第一轮真题 › 第 15 题

NOIP 提高 2016 第一轮 第 15 题:该题选项在原卷 OCR 中缺失,待人工复核。

单项选择 · 二分查找与二分答案 · 答案 A

题目

给定含有 $n$ 个不同的数的数组 $L=\text{<}x_1,x_2,\dots,x_n\text{>}$。如果 $L$ 中存在 $x_i(1<i<n)$ 使得 $x_1<x_2<\dots<x_{i-1}< x_i>x_{i+1}>\dots>x_n$, 则称 $L$ 是单峰的,并称 $x_i$ 是 $L$ 的
“峰顶”。现在已知 $L$ 是单峰的,请把 a-c 三行代码补全到算法中使得算法 正确找到 $L$ 的峰顶。
a.Search(k+1, n)
b.Search(1, k-1)
c.return L[k]

Search(1, n)
1.k← [n/2]
2.if L[k] > L[k-1] and L[k] > L[k+1]
3.then
4.else if L[k] > L[k-1] and L[k] < L[k+1]
5.then
6.else

正确的填空顺序是(	)。

选项

  • A. c, a, b
  • B. c, b, a
  • C. a, b, c
  • D. b, a, c

答案

A

题解

考点定位

本题考「单峰折半」,对应大纲 4.3.1 二分(难度【4】)。

解题过程

与普及组同题:单峰序列二分找峰。mid 与 mid+1 比较判方向,输出下标序。官方答案 A(c,a,b)。

选 A。

易错提醒

① n=3 代入最快;② 比较对象是相邻两元素不是目标值。

真题版权归 CCF 所有,本站仅用于非商业教学用途。页面加载后可直接在线作答,作答记录保存在本浏览器或账号中。 京ICP备2026056990号-1 京公网安备11010502062986号