首页 > 其他 > 详细

topK问题

时间:2018-10-15 13:38:17      阅读:148      评论:0      收藏:0      [点我收藏+]

概述

在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问题

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!