Py算法与数据结构

07 什么是搜索?

记录与键、线性、二分和更新成本

本节 12 题。先独立给出结论和理由,再对照解析;新增题与此前题目统一编号。涉及标签时,标签只表示记录身份。
第 01 题

问题 1

一条学生记录的学号、姓名、成绩中,哪个可以作为搜索键?

第 02 题

问题 2

搜索返回 −1 后直接访问 records[-1],有什么问题?

第 03 题

问题 3

线性搜索对无序表可直接执行吗?

第 04 题

问题 4

线性搜索有重复键时,本章实现返回哪个位置?

第 05 题

问题 5

对无序列表执行二分搜索,结果有保证吗?

第 06 题

问题 6

有序数组 [1,4,7,12,18,25,31,40] 搜索 25,闭区间访问哪些下标?

第 07 题

问题 7

普通二分命中重复键后,保证找到第一个吗?

第 08 题

问题 8

lower_bound([1,3,3],3) 与 lower_bound([1,3,3],4) 返回什么?

第 09 题

问题 9

有序列表找插入位置 O(log n),完整插入也是 O(log n) 吗?

第 10 题

问题 10

未排序列表直接追加摊销 O(1),若要求重复键覆盖还可这样写吗?

第 11 题

问题 11

建立排序表后进行 q 次二分查询,总成本如何写?

第 12 题

问题 12

dict 的迭代顺序等于按键大小升序吗?