数组中的快速排序就是取原始数组中的一个元素最为基点,小于基点的放在一个数组中,大于基点的放在一个数组中,无限循环,知道将数组分解到长度(length<1)停止
var arr = [12, 3, 569, 78, 0, -56, -56, -56, 1223, 11, 16, 13, 1];
function quickSort(arr) {
if (arr.length < 1) return arr;分解数组,长度小于1的时候停止执行
var middle = parseInt(arr.length / 2);在数组中寻找一个基点的下标
var basic = arr.splice(middle, 1);将寻找到的基点的元素进行保存
var left = [];创建新数组
var right = [];创建新数组
遍历寻找完基点的数组
for (var i = 0; i < arr.length; i++) {
利用寻找的基点进行划分
小于寻找到的基点放在一个数组中
大于寻找到的基点放在一个数组中
if (basic[0] > arr[i]) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
将分割完成的数据+寻找的基点进行组合,形成排序后的新数组
return quickSort(left).concat(basic[0], quickSort(right));
}
console.log(quickSort(arr));
JavaScript 数组排序——快速排序
最新推荐文章于 2024-04-23 00:45:00 发布