【发布时间】:2021-02-12 22:54:21
【问题描述】:
对我来说,这似乎很简单。请注意,这不会通过分成两半来生成单个元素数组,而是通过使用单个循环来生成。
function mergeSort(arr) {
for (let i = 0; i < arr.length; i++) {
arr[i] = [arr[i]]
}
while (arr.length > 1) {
for (let i = 0; i < arr.length; i = i + 2) {
arr.splice(i, 2, mergeTwoSortedArrays(arr[i], arr[i + 1] || []))
}
}
return arr[0]
}
我的测试通过了,但时间/空间复杂度可能没有那么好?
【问题讨论】:
标签: javascript algorithm sorting mergesort