快速排序

xiaoxiao2021-02-28  196

我们知道数据结构中有9种多排序法: 一般用到的有: 冒泡排序法(前面已经讲过) 快速排序法 思路: 1.找中间值 2.遍历数组,小于中间项的放在左边,大于中间项的放在右边。 3.递归 代码如下:

function quickSort(arr){ if(arr.length<=1){ //注意这里 不能写成双等 return arr; } //获取数组的中间索引值 var middleIndex = Math.floor(arr.length/2); //获取数组的中间数 var middleNum = arr.splice(middleIndex,1); //console.log(middleNum); var left = []; var right = []; for(var i in arr){ //for in遍历数组 i代表下标 arr[i] 代表数组每一项 if(arr[i]<=middleNum){ left.push(arr[i]); }else{ right.push(arr[i]); } } //console.log("left",left); //console.log("right",right); //这是我第一次的写法,这个写法是错误的,没有遵从数组方法的运用。 //return quickSort(left) + middleNum + quickSort(right); //递归 return quickSort(left).concat(middleNum,quickSort(right)) } var array = [3,6,4,8,1]; quickSort(array);
转载请注明原文地址: https://www.6miu.com/read-18715.html

最新回复(0)