题目描述
给你一个整数数组 nums,请你将该数组升序排列。
解题思路
算法
快排,这里注意规避最坏复杂度的情况,我们把 pivot 取为中间 index
过程
生序的话,我们直接调用快排来完成
代码
/**
* @param {number[]} nums
* @return {number[]}
*/
var sortArray = function (nums) {
return quickSort(nums)
}
function quickSort(arr = []) {
if (arr.length <= 1) return arr
const pivot = arr.splice(Math.floor(arr.length / 2), 1)
const leftArr = []
const rightArr = []
arr.forEach((item) => {
if (item < pivot) {
leftArr.push(item)
} else {
rightArr.push(item)
}
})
return [...quickSort(leftArr), pivot, ...quickSort(rightArr)]
}