
面试
小·幸·运
你的所有努力最后都会回赠予你。
展开
-
Python实现各种排序算法
一、快速排序 快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为较小和较大的2个子序列,然后递归地排序两个子序列。 步骤为: 挑选基准值:从数列中挑出一个元素,称为"基准"(pivot); 分割:重新排序数列,所有比基准值小的元素摆放在基准前面,所有比基准值大的元素摆在基准后面(与基准值相等的数可以到任何一边)。在这个分割结束之后,对基准值的排序就已经完成; 递归排序子序列:递归地将小于基准值元素的子序列和大于基准值元素的子序列排序。 递归到最底部的判断条件是数列的原创 2021-03-27 12:58:55 · 513 阅读 · 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 · 168 阅读 · 0 评论