Algorithm 排序已排序数组列表的最佳算法?

Algorithm 排序已排序数组列表的最佳算法?,algorithm,Algorithm,所以我有5个块(假设大小为2000个项目),每个块都是经过排序的数据。是否有一种算法能够利用此属性优化整个10000个项目的排序?不知道,但您可以为每个块列出最小的元素,即5个元素,记住它们来自哪个块 Then sort them. Remove the smallest and add to the result Take the next smallest from the list that the smallest was from and place it in the correst

所以我有5个块(假设大小为2000个项目),每个块都是经过排序的数据。是否有一种算法能够利用此属性优化整个10000个项目的排序?

不知道,但您可以为每个块列出最小的元素,即5个元素,记住它们来自哪个块

Then sort them.
Remove the smallest and add to the result
Take the next smallest from the list that the smallest was from and place it in the correst sorted position.

名字有点乱。我只是以最快的方式将几个排序的数组一起排序成一个大的排序数组。这是一种非常昂贵的方法。使用优先级队列(通常是二进制堆)而不是排序。@JimMischel这就是我想说的,对每个队列中最小的元素进行排序就是生成一个优先级队列。使用基于堆的优先级队列和对项目数组进行排序有很大的区别。与优先级队列的合并是O(n log k),其中n是项目总数,k是列表数。使用排序选择下一个最高值的方法是O(n*(k log k))。