超超哥AI云计算超哥讲AI 出品

社群入口

AI 超哥 Codex 副业群

扫码加入群聊,一起交流 AI、Codex 与副业实践。

原图注明二维码于10月20日前有效;若提示过期或无法入群,请等待更新二维码。

AI 超哥 Codex 副业群入群二维码在新窗口打开原图

二分查找与排序

数据结构与算法基础#Python全栈#第五阶段#数据结构与算法基础#二分查找与排序约 565 字 · 2 分钟阅读
追问显示
点击任意追问卡片可收起 / 展开

顺序查找与二分查找各需要什么前提?

追问 未排序数据、单次查询与多次查询如何影响方案选择?

如何实现升序列表的二分查找?

追问 先约定闭区间或半开区间,再说明中点、边界更新和无解返回值。

如何查找目标值的第一次与最后一次出现位置?

追问 全相等、目标不存在和边界目标如何验证?为什么不能找到后直接返回?

bisect_left 与 bisect_right 有什么区别?

追问 插入位置是否证明目标存在?重复值范围如何根据两者计算?

二分找到位置后向列表插入,整个操作是否仍是 O(log n)?

追问 查找与元素移动成本如何分别计算?

冒泡排序、选择排序与插入排序有什么思路差异?

追问 比较、交换、稳定性和近乎有序数据分别怎样影响表现?

归并排序如何利用分治?

追问 拆分、合并、终止条件和额外空间如何分析?

快速排序的分区与基准值有什么作用?

追问 平均与最坏复杂度为何不同?重复值、随机基准与 Python 递归深度如何影响实现?

排序稳定性如何影响多字段业务排序?

追问 分数降序、姓名升序如何实现?对整个排序设置 reverse 为什么可能不符合要求?

面试手写排序与实际项目选择排序工具有什么区别?

追问 sorted() 与 list.sort() 的接口、输入修改与 Key 计算如何影响选择?

二分工具可查阅 Python 官方 bisect 文档,业务排序可参照 Python 官方排序指南。