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

版权声明:转载请标明出处! https://blog.csdn.net/weixin_40076255/article/details/82663795

##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);//输出排序结果;

猜你喜欢

转载自blog.csdn.net/weixin_40076255/article/details/82663795