2016 - 2024

感恩一路有你

java升序排序代码 一道java面试题,20亿数字的文本排序,如何取前100?

浏览量:1347 时间:2021-03-27 19:41:35 作者:admin

一道java面试题,20亿数字的文本排序,如何取前100?

既然是java题,这就是经典的topk问题。先取前100个数,建立一个最小堆,剩下的数依次从堆顶插入元素,同时调整堆。最后堆中的100个元素即为结果。空间复杂度为k,时间复杂度为nlogk

为什么java的arrays类的sort方法对对象数组采用合并排序,而对基本类型数组却采用快速排序?

java中的arrays类的sort方法对于基本数据类型默认的是进行升序排列,比如:sort(int [] arr) 、sort(double [] arr)等等;

还有的时可以限制范围排序,以下是在JDK的API中找到的:

从图中可以看到在倒数第二和第三行中对于对象数组的排序也是默认升序,但在输入这行代码之前要完成一个对你所要排序的对象数组的comparable的接口。以它为标准来进行排序,具体怎么做看下图:

java升序排序代码 java从小到大排序 java字符串提取数字

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。