![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试
小·幸·运
你的所有努力最后都会回赠予你。
展开
-
Python实现各种排序算法
一、快速排序快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。步骤为:挑选基准值:从数列中挑出一个元素,称为"基准"(pivot);分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成;递归排序子序列:递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。递归到最底部的判断条件是数列的原创 2021-03-27 12:58:55 · 444 阅读 · 2 评论 -
LeetCode 215. 数组中的第K个最大元素
数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。方法一:使用堆排序建立大顶堆,每次建堆完毕,把堆顶元素和数组最后面的数调换位置,如此重复k次。参考代码:class S.原创 2021-03-27 14:42:50 · 146 阅读 · 0 评论