一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个java问题,所以这是典型的topk问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为k,时间复杂度为nlogk
假设链表的节点定义如下:类节点{intinodenext},则其反转函数为voidreverse(nodel){if(l==null)returnnodep=null,q=l,r=l.nextwhile(r!=null){q.next=pp=qq=rr=r.next}q.next=pl=q}
原文标题:双向链表java实现 一道java面试题,20亿数字的文本排序,如何取前100?,如若转载,请注明出处:https://www.saibowen.com/tougao/18405.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。