简单选择排序算法代码 一道java面试题,20亿数字的文本排序,如何取前100?
浏览量:2106
时间:2021-03-12 16:41:19
作者:admin
一道java面试题,20亿数字的文本排序,如何取前100?
因为这是一个Java问题,所以这是典型的TOPK问题。首先取前100个数字构建一个最小堆,然后依次从堆的顶部插入剩余的数字,同时调整堆。堆中最后100个元素就是结果。空间复杂度是k,时间复杂度是nlogk
看到这个问题,你可以开始联系编程。在实际应用中,数据库是数据存储的模块,可以直接用于简单的服务。然而,在真正大规模、高并发的服务中,数据库往往不被使用,即使被使用,也不会被用于排序。例如,推荐系统可能是一个百万维的特征操作,涉及在线和离线等,此时,排序算法起着重要的作用。很多人默认使用快速排序,数据量大时效率不高。实际上,最好将其转换为桶排序
排序视情况而定,例如1到10个无序数字,定义一个包含10个元素的临时数组,并将相应的值写入相应的元素中。这种方法只需要解一次,然后比如50个随机数,其中最大的是100,你也可以创建一个下标为100的数组,循环原数组,把对应的值写到对应的元素上,只需解一次,然后删除没有赋值的值。我试过用8W阵列做实验,这种方法比冒泡快得多
简单选择排序算法代码 选择排序算法c语言代码 排序算法生活中的应用
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。