归并排序(JS)
// 为了方便一些调试场景,具体的外层函数表达式使用的是var声明语句 var merge_sort = function(arr) { sort(arr, 0, arr.length - 1); }; var sort = function(a, l, r) { // 终止排序过程 if (l >= r) return; // 递归拆分(1分2) const m = ((r - l) >> 1) + l; sort(a, l, m); sort(a, m + 1, r); // 合并子数组(2合1) if (a[m] > a[m + 1]) merge(a, l, m, r); }; var merge = function(a, l, m, r) { const tmp = a.slice(l, r + 1); let i = l; let j = m + 1; for (let k = l; k <= r; k++) { if (i > m) { a[k] = tmp[j - l]; j++; } else if (j > r) { a[k] = tmp[i - l]; i++; } else if (tmp[i - l] <= tmp[j - l]){ a[k] = tmp[i - l]; i++; } else{ a[k] = tmp[j - l]; j++; } } };
// -- 完善中
分类:
JavaScript
, 排序算法
标签:
JavaScript
, 数据结构与算法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
2020-11-29 React项目中推荐两种方式使用 ref
2018-11-29 React中方法的this绑定