做网站后台怎么弄/输入关键词就能写文章的软件
基本思路:
1.以一个数为基准(中间的数),比基准小的放到左边,比基准大的放到右边
2.再按此方法对这两部分数据分别进行快速排序(递归进行)
3.不能再分后退出递归,并重新将数组合并
代码实现:
function quickSort(arr) {// 数组长度小于,没必要排序,直接返回if (arr.length <= 1) {return arr}// piovt为基准索引var piovtIndex = Math.floor(arr.length / 2)// 找到基准,并且将基准从原数组中删除var piovt = arr.splice(piovtIndex, 1)[0]// 定义左右数组let left = []let right = []// 比基准小的放在左边,比基准大的放在右边arr.forEach(el => {if (el < piovt) {left.push(el)} else {right.push(el)}});// 不能再分,退出递归,并将新数组进行合并return quickSort(left).concat([piovt], quickSort(right))
}
var arr = [12, 45, 78, 2, 23, 4, 5, 6]
console.log(quickSort(arr))