algorithm - 为什么对于较小的元素列表,插入排序优于快速排序?

标签 algorithm quicksort insertion-sort

不是插入排序 O(n^2) > Quicksort O(n log n) ...所以对于小 n,关系不会相同吗?

最佳答案

Big-O Notation 描述了当 n 很大时的限制行为,也称为渐近行为。这是一个近似值。 (参见 http://en.wikipedia.org/wiki/Big_O_notation)

对于较小的 n,插入排序更快,因为快速排序有来自递归函数调用的额外开销。插入排序也比快速排序更稳定,并且需要更少的内存。

这个问题描述了插入排序的一些其他好处。 ( Is there ever a good reason to use Insertion Sort? )

关于algorithm - 为什么对于较小的元素列表,插入排序优于快速排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8101546/

相关文章:

c++ - 从文本文件中随机选择 K 行

c++ - 快速排序优化

C - 使用指针的自定义快速排序 + 比较器不起作用

java - 为什么我无法在插入排序代码java中获得输出

algorithm - 边界线在策略/RTS 游戏中如何运作?

c# - 如何检测文本文件的实时变化?

序列填充数字的算法

partitioning - 快速排序帮助,不知道为什么分区返回索引而不是数组

c - 插入排序函数不会列出排序后的所有元素

c - 如何在C中为插入排序算法实现结构交换