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

问题描述:

几千万个数中找出最大的十个数,求算法大神讲下方法
应该是一道面试题,麻烦讲下大概思路

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