我在理解一些更高级的排序、选择、搜索等算法方面取得了一些很好的突破。
然而,这是我坚持的场景。
对于要在其中查找第 k 个最小元素的值数组,如果未排序,则可以使用 quickselect,如果已排序,则可以使用二分查找。
如果我理解正确,通过枢轴/分区系统,快速选择将通过选择枢轴来搜索未排序的数据集,通过将每个元素与枢轴进行比较来创建低点和高点组,然后通过更改递归地将列表分解为子列表枢。
这听起来与二进制搜索的工作方式非常相似,那么为什么快速选择适用于未排序的值而二进制搜索却没有,并且不是快速选择算法中的所有比较(计算出低点和高点)都需要一个很多...成本?