码迷,mamicode.com
首页 > 其他好文 > 详细

topK问题

时间:2018-10-15 14:41:21      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:red   冒泡排序   数字   特点   元素   最小   冒泡   lock   topk   

概述

在N个乱序数字中查找第K大的数字,时间复杂度可以减小至O(N).
可能存在的限制条件:
要求时间和空间消耗最小、海亮数据、待排序的数据可能是浮点型等。

方法

方法一

** 对所有元素进行排序,之后取出前K个元素,时间复杂度高,不提倡。 **
思路:使用快排,选择排序,堆排序。
时间复杂度:O(n*logn)+O(K)=O(n*logn)
特点:需要对全部元素进行排序,K=1时,时间复杂度也为O(n*logn)。

方法二

** 只需要对前K个元素排序,剩下N-K个元素不需要排序,时间复杂度高,不提倡。 **
思路:使用选择排序 或 冒泡排序, 进行K此选择,可得到第K大的数。
时间复杂度:O(n*k)

topK问题

标签:red   冒泡排序   数字   特点   元素   最小   冒泡   lock   topk   

原文地址:https://www.cnblogs.com/ocean1100/p/9790231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!