找出n个数中的前k个数

  如果按照牛客网的剑指offer里面的做法,采用改进的快排,那么时间复杂度是O(n) 如果是基本排序的排法,就选择堆排序更快,分析如下: 1、快速排序:在最理想的情况下,即划分可以使得每次分到n/2 的两个序列,复杂度为o(nlogn)。 2、堆排序:无论什么情况都是o(nlogn),当然还有建堆的时间o(n),所以为n+nlogn,但是,本题只是要前五十个,所以堆排序只需要执行50次就够了:n
相关文章
相关标签/搜索