js快速排序

//基数,随便选一个数组里面的数.一般情况下取素组中间的数字(这个基数决定了快速排序算法的优劣)

var arr = [43,2,8,3,5,12,85,9,23];

//快速排序的函数

function quickSort(Array1){

if(Array1.length <= 1){

return Array1;

}

//取出一个基数

//基数的下标

var privosIndex = Math.floor(Array1.length / 2);

//这个基数需要从数组里面剔除出来,再获取到

var privos = Array1.splice(privosIndex,1)[0];

var left = [];

var right = [];

for(var i = 0;i < Array1.length;i++){

if(Array1[i] < privos){

left.push(Array1[i]);

}else{

right.push(Array1[i]);

}

}

return quickSort(left).concat(privos,quickSort(right));

 

}

var s = quickSort(arr);

console.log(s)

转载于:https://www.cnblogs.com/lxlin/p/6019471.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值