第一节课:
快排
时间复杂度 最优O(nlogn) 最差O(n**2)
实现的时候应该注意随机取哨兵(partition)以防止最差情况出现
变种 找第k大的数 最优时间复杂度O(n)
如果需要用时间换空间,可以考虑维护一个小顶堆不断替换顶端来寻找k最大(或者相应的维护一个大顶堆不断替换顶端来寻找k最小)
第一节课:
快排
时间复杂度 最优O(nlogn) 最差O(n**2)
实现的时候应该注意随机取哨兵(partition)以防止最差情况出现
变种 找第k大的数 最优时间复杂度O(n)
如果需要用时间换空间,可以考虑维护一个小顶堆不断替换顶端来寻找k最大(或者相应的维护一个大顶堆不断替换顶端来寻找k最小)