// 二分排序算法
var quickSort = function(nums) {
// 直到被分割的集合元素为0或只剩下一个则跳出递归栈
if (nums.length <= 1) {
return nums;
}
// 取中间值最为分割点
var divideIndex = Math.floor(nums.length / 2);
var divide = nums.splice(divide, 1)[0]
var left = [], right = [];
// 比分割点小的放在左列表,大的放在右列表
for(var i=0; i<nums.length; i++) {
if (nums[i] < divide) {
left.push(nums[i])
}else {
right.push(nums[i])
}
}
// 递归
return quickSort(left).concat(divide).concat(quickSort(right))
}
console.log(quickSort([1,2, 3, 1, 10, 2, 3, 5,5,88, 0]))
后续补上算法思想