Interview question: javascript implement merge sort

Witch Elaina
1 min readSep 12, 2021

mergeSort.js

/**
* From: https://leetcode.com/problems/sort-an-array/
* Question: merge sort
*/
var sortArray = (nums) => {
var mergeSort = (left, right) => {
if (left >= right) {
return [nums[right]]
}
var mid = Math.floor((left + right) * 1.0 / 2)
var leftArr = mergeSort(left, mid)
var rightArr = mergeSort(mid + 1, right)
var arr = []
var i = 0
var j = 0
while (true) {
if (leftArr[i] < rightArr[j]) {
arr.push(leftArr[i])
i++
} else {
arr.push(rightArr[j])
j++
}
if (i >= leftArr.length) {
arr = arr.concat(rightArr.slice(j))
break
}
if (j >= rightArr.length) {
arr = arr.concat(leftArr.slice(i))
break
}
}
return arr
}
return mergeSort(0, nums.length - 1)
}
var {assertSort} = require("./sortHelper")
var asrSort = (nums) => {
assertSort(sortArray, nums)
}
describe("sort", () => {
it("1", () => {
asrSort([3, 1, 2])
})
})

If you like my article, donate me a coffee and let me continue

Donate

Donate backup

--

--