我正在开发一个程序,该程序接收一堆 (y) 整数,然后需要按顺序返回 x 个最大的整数。此代码需要尽可能快,但目前我认为我没有最好的算法。
到目前为止,我的方法/算法是创建一个已经输入的整数排序列表(从高到低),然后在每个项目进入时处理它。对于前 x 个项目,我维护一个排序的整数数组,当每个新项目进来时,我会使用二进制排序找出它应该放在哪里。 (我也在考虑只接受前 x 个项目,然后快速排序它们,但我不知道这是否更快)在第一个 x 个项目被排序后,我然后通过首先查看它们是否有资格进入来考虑其余项目已排序的最高整数列表(通过查看新整数是否大于列表末尾的整数),如果是,则通过二进制搜索将其添加到排序列表并删除末尾的整数列表。
我想知道是否有人对我如何使它更快或者可能是比这更快的全新方法有任何建议。谢谢。
最佳答案
关于performance - 数组管理的时间复杂度(算法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449630/