This commit is contained in:
krahets
2024-01-25 21:09:05 +08:00
parent 9bc021e98c
commit 545e15bc81
8 changed files with 38 additions and 22 deletions

View File

@ -265,7 +265,7 @@ comments: true
插入排序的时间复杂度为 $O(n^2)$ ,而我们即将学习的快速排序的时间复杂度为 $O(n \log n)$ 。尽管插入排序的时间复杂度更高,**但在数据量较小的情况下,插入排序通常更快**。
这个结论与线性查找和二分查找的适用情况的结论类似。快速排序这类 $O(n \log n)$ 的算法属于基于分治策略的排序算法,往往包含更多单元计算操作。而在数据量较小时,$n^2$ 和 $n \log n$ 的数值比较接近,复杂度不占主导地位每轮中的单元操作数量起到决定性作用。
这个结论与线性查找和二分查找的适用情况的结论类似。快速排序这类 $O(n \log n)$ 的算法属于基于分治策略的排序算法,往往包含更多单元计算操作。而在数据量较小时,$n^2$ 和 $n \log n$ 的数值比较接近,复杂度不占主导地位每轮中的单元操作数量起到决定性作用。
实际上,许多编程语言(例如 Java的内置排序函数采用了插入排序大致思路为对于长数组采用基于分治策略的排序算法例如快速排序对于短数组直接使用插入排序。