一尘不染

是否有充分的理由使用插入排序?

algorithm

对于通用排序,答案似乎是否定的,因为在平均情况和最坏情况下,快速排序,合并排序和堆排序往往表现更好。但是,插入排序似乎在增量排序方面表现出色,也就是说,在延长的时间段内一次将元素添加到列表中,同时保持列表的排序,特别是如果插入排序是作为链接列表实现的(O(log
n)平均情况与O(n))。但是,堆似乎也能够(或几乎)执行增量排序(在堆中添加或删除单个元素的情况最糟的情况是O(log
n))。那么,与其他基于比较的排序算法或堆相比,插入排序必须提供什么呢?


阅读 281

收藏
2020-07-28

共1个答案

一尘不染

来自http://www.sorting-algorithms.com/insertion-sort

尽管插入排序是最坏情况下O(n
2)的基本排序算法之一,但是插入排序是在数据接近排序(因为它是自适应的)或问题大小很小(因为它是问题)时的首选算法。具有较低的开销)。

由于这些原因,并且由于它也是稳定的,因此通常将插入排序用作递归基本案例(问题大小较小时),以用于开销较大的分治式排序算法,例如合并排序或快速排序。

2020-07-28