【发布时间】:2016-04-29 06:58:59
【问题描述】:
我有一个排序对象的列表(数组,不是链表)。这不是一个很长的列表:从 3 到 20 个元素不等,尽管大多数时候它可能会在较短的一端。此列表和所有其他列表将来自 HTTP 请求。将有大约 30-50 个请求,每个请求产生一个包含相同数量元素的数组。我的代码现在的工作方式是请求是同步的。我意识到这效率不高,并且可能很快会更改为一些多线程,但目前我仍处于初始阶段。将所有这些数组连接成一个大的排序数组的最佳方法是什么?会是因为每个数组都是从请求中返回并附加到结果数组中的吗?或者可能在所有请求完成后进行排序?既然没有那么多元素,相对来说,这还重要吗?多线程会对解决方案产生影响吗?
我不确定数组所持有的值是否相似是否会有所不同。例如: [100,200,300], [99, 105, 290], [115,215, 280]
【问题讨论】:
-
要排序的数字是不是在某个比较小的范围内?
-
根据您给出的约束,在最坏的情况下,当所有请求都完成时,最多有
(20 x 50)个元素。这是 1000 个元素。我想说的是,在合并列表时不要进行任何比较和全部,只需合并所有数组并在最后进行排序。
标签: arrays multithreading algorithm list sorting