1 Star 2 Fork 0

Weldon0/算法

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
归并排序.js 687 Bytes
一键复制 编辑 原始数据 按行查看 历史
weldon 提交于 2021-02-22 22:25 . 提交
function mergeSort(arr) {
let l = arr.length
if (l === 1) return arr
let m = Math.round(l / 2)
let left = arr.slice(0, m)
let right = arr.slice(m)
return merge(mergeSort(left), mergeSort(right))
}
function merge(arr1, arr2) {
let l1 = arr1.length
let l2 = arr2.length
let i1 = 0
let i2 = 0
let r = []
while (i1 < l1 && i2 < l2) {
let item1 = arr1[i1]
let item2 = arr2[i2]
if (item1 < item2) {
r.push(item1)
i1++
} else {
r.push(item2)
i2++
}
}
while (i1 < l1) {
r.push(arr1[i1++])
}
while (i2 < l2) {
r.push(arr2[i2++])
}
return r
}
console.log(mergeSort([1, 4, 2, 3, 5, 2, 7, 3, 17, 25, 19]))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/weldon/algorithm.git
git@gitee.com:weldon/algorithm.git
weldon
algorithm
算法
master

搜索帮助