数组中的第K个最大元素

IOBUFFER • LeetCode
•

题目:数组中的第K个最大元素

掌握程度:★ ★ ☆

先了解快速排序

快速排序 挖坑填数 分治法。

  1. 选定一个基准值(随机选着),用tmp保存.
  2. 使用low、high 两个标志,分别指向数组开始和数组结尾。
  3. 先从左向右扫描,扫描到比基准值小的值时停下,并将high的值赋值给low。
  4. 然后从右向左扫描,扫描到比基准值大的值时停下,并将low的值赋值给high。
  5. 然后依次递归左侧数组和右侧数组。

数组中的第K个最大元素

借助上面的快速排序的思想,快速排序会将数组分为两部分,左侧部分比基准值小,右侧部分比基准值大。

用数组的元素的个数减去k,得到得到第K个元素在数组中的下标,通过与分区得到的下标比较,最终得到第K大的元素。

喵~