linux - Linux中的快速排序 "back off"是否实现为插入排序?

标签 linux sorting quicksort insertion-sort

我在 Bentley & McIlroy (1993) 中读到,当数组变得足够小时,他们建议的快速排序实现使用插入排序。

我很想知道现代内核是否使用同样的策略。有谁知道Linux内核是否以这种方式从快速排序切换到插入排序?

最佳答案

假设您指的是 C 库中的 qsort,这是来自最近的 glibc 的 qsort(),它是大多数 Linux 系统中使用的:http://www.cs.umaine.edu/~chaw/200801/capstone/n/qsort.c.html .

它确实切换到小分区的插入。它碰巧使用 4 个元素作为阈值,尽管根据经验选择的数字可能需要更新。

/* Discontinue quicksort algorithm when partition gets below this size.
   This particular magic number was chosen to work best on a Sun 4/260. */
#define MAX_THRESH 4

关于linux - Linux中的快速排序 "back off"是否实现为插入排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123683/

相关文章:

linux - 我在 Beaker 作业中看不到 console.log

java - 向上或向下移动自定义数组项

c++ - 快速排序不排序 C++

c# - 在跟踪索引 C# 的同时快速排序数据数组

c++ - GDB 报告的额外线程是怎么回事?

linux - 如何在Linux上启动停止worklight server 6.2?

linux - 如何让busybox1.23.2编译成功?

c# - 无法使用 OrderBy C# 功能以某种方式对列表进行排序

r - 按出现频率对数据框列进行排序

java - 不一致的快速排序 StackOverflowError