几千万个数中找出最大的十个数,求算法大神讲下方法

几千万个数中找出最大的十个数,求算法大神讲下方法
应该是一道面试题,麻烦讲下大概思路
等待豆豆 1年前 已收到1个回答 举报

撒旦的uu 幼苗

共回答了21个问题采纳率:85.7% 举报

采用一个最小堆的结构,数目为10.
初始值为这几千万个数前10个数,依次遍历这几千万个数,每遍历一个数就和最小堆的最小值比较,如果大的话就插入该最小堆中,并删除最小元素.直至遍历完毕.
算法复杂度为O(n),因为log10是个常数.

1年前

10
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.027 s. - webmaster@yulucn.com