最好的排序方法呢?

时间:2016-10-09 20:17:43

标签: algorithm sorting big-o

问题;

  

您必须按日期对一系列银行交易进行排序。大多数人   按顺序排列(按日期),只有少数出现故障。

     

您将在插入排序,选择之间使用哪种排序算法   排序和合并排序,以利用事实   数组几乎排序?

我的回答(不确定是否正确)

假设N> = 5,我会选择合并排序,因为它的平均值。时间复杂度为O(n * log n),这比插入排序O(n ^ 2)更有效。但是,由于多个事务将在同一日期,因此插入排序将是一个很好的STABLE排序方法。

在这种情况下哪一个更好?合并或插入排序?我正朝着正确的方向前进吗?

1 个答案:

答案 0 :(得分:3)

你应该选择插入排序,不是因为它的稳定性,而是因为它是自适应的(参见here),并且由于输入几乎已经开始排序,因此会超越。

这种“自适应”特征的含义是已经存在的元素在O(1)时间处理,非常接近其分类位置的元素也可以被认为是O(1)(直到某个k距离) )。