题目:数组中的第K个最大元素
掌握程度:★ ★ ☆
先了解快速排序
快速排序 挖坑填数 分治法。
- 选定一个基准值(随机选着),用tmp保存.
- 使用low、high 两个标志,分别指向数组开始和数组结尾。
- 先从左向右扫描,扫描到比基准值小的值时停下,并将high的值赋值给low。
- 然后从右向左扫描,扫描到比基准值大的值时停下,并将low的值赋值给high。
- 然后依次递归左侧数组和右侧数组。
数组中的第K个最大元素
借助上面的快速排序的思想,快速排序会将数组分为两部分,左侧部分比基准值小,右侧部分比基准值大。
用数组的元素的个数减去k,得到得到第K个元素在数组中的下标,通过与分区得到的下标比较,最终得到第K大的元素。