js实现数组数字的快速排序方法

##js实现数组数字的快速排序方法##
快速排序:
基本原理是将数组内的数分成三组,取数组中间的数为基准,将较小数放在左边,较大数放在右边,分别将三类数存放在一个数组内,最后递归进行排序。

let array=[51,61,20,81,157,-27,14,3,99,-41,82,43,-8,187,137,-74,18,-32,200];
//声明一个数组;
		let count2=0;//声明一个变量用于统计程序运算次数;
		let midIndex=array.length/2|0;//找到中间数所在下标,向下取整;
		let midValue=array[midIndex];//取出中间数;
		let left=[];//接收较中间数小的数;
		let right=[];//接收较中间数大的数;
		let mid=[];//接收中间数;
		
		function quickSort(){//写方法;
			for(i=0;i<array.length;i++){
				count++;
				if(array3[i]<midValue){
					left.push(array[i]);//较小数加入left数组;
				}
				else if(array3[i]>midValue){
					right.push(array[i]);//较小数加入right数组;
				}
				else{
					mid.push(array[i]);//中间数加入数组;
				}
			}
		left=quickSort(left);//left数组递归再排序;
		right=quickSort(right);//right数组递归再排序;
		let newArray=[];//声明一个新数组用于接收排序后的数字;
		return newArray.concat(left,mid,right);//连接三个数组;
		}
		 console.log(array,count);//输出排序结果;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值