Quicksort vs Merge sort
Quicksort vs merge sort compared — speed, memory, stability and worst case, with interactive visualizers.
Quicksort partitions around a pivot in place and is usually the fastest in practice; merge sort splits and merges with guaranteed O(n log n) and stability, at the cost of extra memory.
Quicksort vs Merge sort at a glance
| Quicksort | Merge sort | |
|---|---|---|
| Average time | O(n log n) | O(n log n) |
| Worst case | O(n²) | O(n log n) |
| Memory | In place | O(n) extra |
| Stable | No | Yes |
When to use Quicksort
Use quicksort as a fast in-place default for arrays where worst case is unlikely.
When to use Merge sort
Use merge sort when you need guaranteed O(n log n), stability, or are sorting linked lists.
Tools for Quicksort & Merge sort
快速排序可视化工具
动态演示快速排序算法,高亮 pivot 与分区过程,支持单步执行、速度调节、自定义输入数据,并实时显示比较/交换次数与伪代码。直接在浏览器中运行。
打开工具归并排序可视化工具
带动画演示的归并排序模拟器,支持单步执行、速度调节、自定义输入数据、实时比较/写入计数器以及伪代码高亮显示。完全在浏览器中运行。
打开工具堆排序可视化工具
动态演示堆排序算法,支持单步执行、速度调节、自定义输入数据,并实时显示比较/交换计数与伪代码。直接在浏览器中运行。
打开工具冒泡排序可视化工具
带动画演示的冒泡排序模拟器,提供单步执行、速度调节、自定义输入数据、实时比较/交换计数器以及伪代码同步高亮。完全在浏览器中运行。
打开工具Quicksort vs Merge sort
什么是冒泡排序?
冒泡排序会多次遍历列表,比较相邻元素,若顺序错误则进行交换。每完成一轮完整遍历,当前剩余元素中的最大值就会被放到其最终正确的位置上。
冒泡排序的时间复杂度是多少?
平均情况和最坏情况下均为 O(n²),原因在于存在嵌套循环。最佳情况(数组已排好序)为 O(n)——经过优化的版本可以检测到本轮没有发生交换,从而提前结束排序。
冒泡排序是稳定排序吗?
是的。相等的元素会保持原有的相对顺序,因为算法只有在严格大于的比较条件下才会执行交换。
什么时候应该使用冒泡排序?
在实际生产环境中几乎不会使用——它主要是一种教学用的算法。对于真实的工作负载,应使用内置的排序函数(如 Timsort / introsort)。冒泡排序的价值在于帮助理解比较、交换以及排序稳定性等基本概念。