AcWing 787. 归并排序
原题链接
简单
作者:
getify
,
2022-02-25 19:30:52
,
所有人可见
,
阅读 190
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout
})
const inputs = []
readline.on("line", (s)=>{
inputs.push(s)
})
readline.on("close", ()=>{
const initArr = inputs[0].split(" ");
const n = +initArr[0];
let arr = inputs[1].split(" ");
let temp = new Array(n).fill(0);
function mergeSort(array, l, r) {
if(l >= r) return;
let mid = l + r >> 1;
mergeSort(array, l, mid);
mergeSort(array, mid+1, r);
let i=l, k=0, j = mid+1;
while(i <= mid && j <= r) {
if(array[i] <= array[j]) {
temp[k++] = array[i++]
} else {
temp[k++] = array[j++]
}
}
while(i<=mid) {temp[k++] = array[i++]}
while(j<=r) {temp[k++] = array[j++]}
for(let i=l, k=0; i<=r; i++, k++) {
array[i] = temp[k]
}
}
let res = []
for(let i=0; i<n; i++) {
res.push(+arr[i])
}
mergeSort(res, 0, res.length-1)
console.log(res.join(" "))
})