zoukankan      html  css  js  c++  java
  • 快速排序(递归排序)

    /**
     * 快速排序
     * 思想:取中间值,分左右数组进行排序 进行递归
     * 步骤
     * 1.摘取数组中间值,并且为新变量
     * 2.准备俩个空数组,left 和 right
     * 3.循环当前数组,比较当前值是否大于中间值,大于存入右侧数组,否则存入左侧
     * 4.进行递归循环 
     * 5.每次进入该函数 比较递归的数组是否小于等于1 ,是停止循环
     */
    function quark(arr){
        if(arr.length <= 1) return arr;
        let num = Math.floor(arr.length/2);
        let numVal = arr.splice(num,1)[0];
        let left = [], right = [];
        for(let i=0; i< arr.length; i++){
            if(arr[i] > numVal){
                right.push(arr[i])
            }else{
                left.push(arr[i])
            }
        }
        return quark(left).concat(numVal,quark(right))
    }
    console.log(quark(arr))
  • 相关阅读:
    leetcode-409
    leetcode-836
    leetcode-1160
    leetcode-面试题13
    leetcode-695
    go的一些小lib
    leetcode-300
    cookie
    php上传文件
    PHP 文件创建/写入
  • 原文地址:https://www.cnblogs.com/zhaozhenghao/p/14268600.html
Copyright © 2011-2022 走看看