我正在寻找一种算法(或者我认为是PHP代码)来结束一组数字中的10个最低数字.我正在考虑制作一个十项数组,检查当前数字是否低于数组中的一个数字,如果是,则查找数组中的最大数字并将其替换为当前数字.
但是,我打算从数千个中找到最低的10个数字,并且认为可能有更快的方法来实现它.我计划在PHP中实现它,因此任何本机PHP函数都可用.
对数组进行排序并使用十个第一个/最后一个条目.
老实说:用一千个条目对数组进行排序所花费的时间比闪烁时间要短.
您正在寻找的是一种选择算法.关于该主题的维基百科页面在选择k个最小或最大元素部分中有几个小节.当列表足够大时,您可以超过天真"排序整个列表并选择前10个"算法所需的时间.