几千万个数中找出最大的十个数,求算法大神讲下方法
题目
几千万个数中找出最大的十个数,求算法大神讲下方法
应该是一道面试题,麻烦讲下大概思路
答案
采用一个最小堆的结构,数目为10.
初始值为这几千万个数前10个数,依次遍历这几千万个数,每遍历一个数就和最小堆的最小值比较,如果大的话就插入该最小堆中,并删除最小元素.直至遍历完毕.
算法复杂度为O(n),因为log10是个常数.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
热门考点
- 快车从曱站到乙站要行驶10小吋,慢车从乙站到甲站要行驶15小时.两车同时从两站相向出发,6小时后相遇,相
- consider和think 都是思考,到底有什么区别?
- 晨昏圈在地球上是固定不动的吗,不会随着地球自转而动
- 如图所示,长方形ABCD中,AB=3cm,BC=4cm,点P沿边按A-B-C-D的方向运动到点D(但不A,D
- 求异面直线所成角有cos&=|a*b|/|a
- 屠格涅夫写的《乡村素描》
- 第一个正方形的边长比第二个长3厘米,第一个正方形比第二个的面积大57平方厘米,求买个正方形的面积
- If I(ntot drink)__so much coffee yesterday afternoon,I would have been able to sleep well last nigh
- ( )争( )斗,括号里要是反义词啊,
- If I were monster , I will eat your heart求翻译