使用 JavaScript 生成器可视化四种排序算法——实时对比 O(n) 与 O(n log n)

发布日期:2026-05-22 10:03:03   浏览量 :4
发布日期:2026-05-22 10:03:03  
4

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

排序可视化器是一类应用。这款应用在关键的一点上与众不同:算法代码对文档对象模型(DOM)一无所知。冒泡排序、插入排序、归并排序和快速排序都是普通的生成器函数,在每次比较和交换时都会产生值。动画驱动器通过定时器调用 .next() 并更新条形图。更改“算法”意味着切换生成器。其他部分无需改动。

排序可视化器:深色背景的条形图,包含50个条形,颜色为不同深浅的蓝色、黄色(比较中)、红色(交换中)和绿色(已排序)。冒泡排序标签页处于激活状态。控件显示大小 = 50、速度滑块、打乱和开始按钮。统计数据:比较次数:312,交换次数:147。

🌐 演示https://sen.ltd/portfolio/sort-visualizer/
📦 GitHubhttps://github.com/sen-ltd/sort-visualizer

为何使用生成器?

常规方法:在单个函数中混合算法和文档对象模型(DOM),使用 async/await + sleep() 来暂停。

// 常见模式 — 紧密耦合
async function bubbleSort(bars) {
  for (let i = 0; i < bars.length - 1; i++) {
    for (let j = 0; j < bars.length - 1 - i; j++) {
      bars[j].style.background = "yellow";     // 排序逻辑内部操作 DOM
      bars[j + 1].style.background = "yellow";

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部