基础归并排序
912. 排序数组
var sortArray = function(nums) {
let temp = new Array(nums.length)
function sort(nums,left,right){
if(left == right){
return;
}
let mid = ~~((left + right)/2)
sort(nums,left,mid)
sort(nums,mid+1,right)
merge(nums,left,mid,right)
}
function merge(nums,left,mid,right){
for(let i = left;i <= right;i++){
temp[i] = nums[i]
}
let i = left,j = mid + 1
for(let p = left;p <= right;p++){
if(i == mid+1){
nums[p] = temp[j++]
}else if(j == right+1){
nums[p] = temp[i++]
}else if(temp[i] > temp[j]){
nums[p] = temp[j++]
}else{
nums[p] = temp[i++]
}
}
}
sort(nums,0,nums.length-1)
return nums
};
三道题目
315. 计算右侧小于当前元素的个数