java数组排序从小到大 一道java面试题,20亿数字的文本排序,如何取前100?
浏览量:1408
时间:2021-04-08 13:44:51
作者:admin
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度为k,时间复杂度为nlogk
private sub form_uuuclick()
dim a(1到10)as integer
对于I=1到10
a(I)=InputBox(“please input”
next I
对于I=10到2 step-1,剩余的排序数据变量I定义了要在开头搜索的所有数据,即10。每个循环得到剩余数据的极值。最大值或最小值由下列替换条件确定
对于J=1到I-1“剩余数据内部查询变量J,所有数据都通过该变量进行搜索。
如果a(J)> a(J 1),则“?替换条件,这里是当前者大于后者时的替换条件,它们都是从小到大排序的
temp=a(j 1)“?更换开始
a(j 1)=a(j)
a(j)=温度“?替换结束
结束if
下一个J
下一个I
对于I=1到10
打印一个(I)“”?打印出排序后的数据并用空格隔开。
下一个我
结束
java数组排序从小到大 java三个数的排序常用方法 对十个数进行排序java
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。