Sorting 几乎已排序列表的更好排序技术

Sorting 几乎已排序列表的更好排序技术,sorting,Sorting,对于几乎已排序的列表,哪种排序技术最好?为什么?对于包含许多元素的列表,我发现快速排序很有帮助。但哪种排序在已经排序时运行时间更好?当列表几乎已排序时,插入排序具有线性性能 检查: 考虑到相对顺序,插入将元素放置在正确的位置,因此需要n-1次迭代。其他排序(如快速排序)再次尝试对已排序的段进行排序,因为它不知道相对排序(即,如果段已排序)。您的问题太广泛,但是如果输入数组已排序,插入排序只执行n-1比较,这会使插入排序更有效 你可能会发现这篇论文很有帮助 这是一个理论上的CS问题,但它在数学上

对于几乎已排序的列表,哪种排序技术最好?为什么?对于包含许多元素的列表,我发现快速排序很有帮助。但哪种排序在已经排序时运行时间更好?

当列表几乎已排序时,插入排序具有线性性能

检查:


考虑到相对顺序,插入将元素放置在正确的位置,因此需要n-1次迭代。其他排序(如快速排序)再次尝试对已排序的段进行排序,因为它不知道相对排序(即,如果段已排序)。

您的问题太广泛,但是如果输入数组已排序,插入排序只执行n-1比较,这会使插入排序更有效

你可能会发现这篇论文很有帮助

这是一个理论上的CS问题,但它在数学上并不精确,因此不容易回答。你能准确地定义一下“几乎排序”是什么意思吗?例如,一个“几乎排序”的列表,其中两个元素交换,但其余的元素是有序的吗?是否90%或更多的元素不需要移动就可以完成列表排序?很抱歉,我没有准确地解释这个问题。我所说的列表几乎是95%的元素不需要移动进行排序@凯文