友情支持
如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜
有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。
公众号的微信号是: jikerizhi 。因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。 |
QuickSelect 快速选择
快速选择起源于快排算法。在快排算法中,把元素根据基准元素分成左右两部分,一边的元素小于基准元素,另外一个的元素大于等于基准元素,再对两边的元素递归处理,最终得到有序结果。受此启发,在将元素根据基准元素分成左右两部分后,这里假设,左边小于基准元素,右边大于等于基准元素,那么会有如下三种情况:
-
当前基准元素所在位置正好是 K,正好是所求结果,直接返回;
-
当前基准元素所在位置小于 K,那么 K 位置在当前基准元素的右边;
-
当前基准元素所在位置大于 K,那么 K 位置在当前基准元素的左边;
所以,该模式不仅适用于求第 K 个之最元素,也适用于求 Top K
Elements Top K 元素。