大家好,又见面了,我是你们的朋友全栈君。
数组中的快速排序就是取原始数组中的一个元素最为基点,小于基点的放在一个数组中,大于基点的放在一个数组中,无限循环,知道将数组分解到长度(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));
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133116.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...