我正在开发一个程序,该程序接收一堆(y)整数,然后需要按顺序返回 x 个最高整数。这段代码需要尽可能快,但目前我认为我没有最好的算法。
到目前为止,我的方法/算法是创建一个已经输入的整数的排序列表(从高到低),然后处理每个输入的项目。对于前 x 个项目,我维护一个排序的整数数组,当每个新项目进来时,我都会使用二进制排序确定它应该放在哪里。(我也在考虑只接收前 x 个项目,然后快速排序它们,但我不知道这是否更快)在前 x 个项目被排序后,我首先查看其余项目是否有资格进入已经排序的最高整数列表(通过查看新整数是否大于列表末尾的整数),如果是,则通过二进制搜索将其添加到排序列表中并删除末尾的整数列表。
我想知道是否有人对如何使这更快,或者可能是比这更快的全新方法有任何建议。谢谢。