java是什么 一道java面试题,20亿数字的文本排序,如何取前100?
一道java面试题,20亿数字的文本排序,如何取前100?因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为k,时间复杂度为nlogk
int num=72//定义一个变量num来存储数字int a=72 //num,取10的余数得到一位数int b=72/10//num,再除以10得到十位数。由于B是成形的,小数位数将自动省略
private static int maxvaluefive=9999999
private static int minvaluefive=0
private static atomicinteger Atomic=new atomicinteger(minvaluefive)]/**生成序号*/
static string getseqfive(int coverpad){
for(){int电流=原子。获取()
int newValue=current>=maxvaluefive?minvaluefive:当前1
如果(原子比较数据集(current,newValue)){
返回StringUtils.leftPad文件( String.valueOf值(当前),coverPad,“0”)
}
}