找出n個數中的前k個數

  如果按照牛客網的劍指offer裏面的做法,採用改進的快排,那麼時間複雜度是O(n) 如果是基本排序的排法,就選擇堆排序更快,分析如下: 1、快速排序:在最理想的情況下,即劃分可以使得每次分到n/2 的兩個序列,複雜度爲o(nlogn)。 2、堆排序:無論什麼情況都是o(nlogn),當然還有建堆的時間o(n),所以爲n+nlogn,但是,本題只是要前五十個,所以堆排序只需要執行50次就夠了:n
相關文章
相關標籤/搜索