跳到主要内容
Z

归并排序可视化工具

带动画演示的归并排序模拟器,支持单步执行、速度调节、自定义输入数据、实时比较/写入计数器以及伪代码高亮显示。完全在浏览器中运行。

免费 无需注册 客户端运行 注重隐私 Updated
/
Comparisons: Swaps / writes: Array accesses:

Code examples

Ready-to-copy reference implementations. Free to use in your own projects and assignments.

使用方法

  1. 1 点击“播放”查看数组被拆分成若干部分,再按顺序合并的完整过程。
  2. 2 使用“单步”按钮逐次执行一次比较或合并操作。
  3. 3 在“自定义输入”框中输入你自己的数字,然后点击“应用”。
  4. 4 同时观察高亮的伪代码以及实时更新的比较/写入计数器。

为什么使用此工具

  • 直观理解分治法的实际运作:递归拆分,再有序合并。
  • 理解为何归并排序无论输入如何都能保证 O(n log n) 的时间复杂度。
  • 各项指标显示比较次数十分稳定,不受初始顺序影响。
  • 完全在你的浏览器本地运行,无需注册,也无需上传数据。

常见问题

什么是归并排序?

归并排序会递归地将数组对半拆分,直到每部分只剩一个元素,然后再将这些部分按顺序合并起来。

归并排序的时间复杂度是多少?

无论最好、平均还是最坏情况,都是 O(n log n)。其中 log n 来自对半拆分的深度,n 则来自每一层合并所需的操作量。

归并排序是稳定的吗?

是的——在合并过程中,遇到相等的元素时会优先取左半部分的元素,从而保持它们原有的相对顺序。

归并排序有什么缺点?

它需要额外的 O(n) 空间来存放合并时的临时缓冲区,不像堆排序或快速排序那样是原地(in-place)排序算法。

什么是 归并排序可视化工具?

归并排序可视化工具演示了归并排序“分治”(divide-and-conquer)的核心过程:先递归地将数组拆分成若干部分,再按顺序将其合并。该工具直观展示了归并排序稳定保证的 O(n log n) 时间复杂度,以及排序过程的稳定性(stable)。

功能特性

逐步动画演示

观察递归拆分以及已排序两半的合并过程。

复杂度

时间复杂度:所有情况下均为 O(n log n)。空间复杂度:O(n) 辅助空间。稳定排序;非原地排序。

100% 隐私安全

完全在浏览器中运行——不会上传任何数据。

示例

Input

[38, 27, 43, 3]

Output

split → [27,38] & [3,43]; merge → [3, 27, 38, 43] (sorted)

常见使用场景

  1. 1

    有保证的 O(n log n)

    了解归并排序如何避免快速排序 O(n²) 的最坏情况。

  2. 2

    稳定排序

    观察相等的键如何保持其输入顺序。

  3. 3

    外部排序/链表排序

    理解归并排序为何适用于链表和外部排序。

概要

Zerethon 的归并排序可视化工具在浏览器中动态演示分治算法:递归地拆分数组,然后合并已排序的两半。归并排序在最好、平均和最坏情况下的时间复杂度均为 O(n log n),使用 O(n) 的辅助空间;它是稳定排序,但不是原地排序(not in-place)。其有保证的 O(n log n) 复杂度使其成为处理大数据量和链表的可靠选择。

分类
算法
价格
免费
隐私
基于浏览器
注册
无需

参考资料

隐私

除非另有说明,否则你的数据永远不会离开浏览器。归并排序可视化工具 完全在客户端运行 — 无需上传服务器,不记录日志,不追踪你输入的内容。

刚接触?阅读包含 Big-O 分析的分步讲解: 了解 Sorting Algorithms →

对比

相关工具

在 Zerethon Social 上创作、分享与成长

免费注册。赚取积分,收集成就,与全球创作者建立联系。

免费试用 Zerethon