zoukankan      html  css  js  c++  java
  • 【JavaScript算法】---快速排序法

    一、快速排序法概念

      我们将一个杂乱无章的数组进行一个快速排序,可以先从一个数组中取一个中间值,将一个数组一分为2,左边的数组跟中间值进行比较,小的放在左边,大的放在右边。比较完毕后再次取中间值,再次比较一次类推
     
    二、思路
     
      1、取的中间值,以及中间值的下标
     
      2、创建一个left空数组,存放小于中间值的数据
     
      3、创建一个right空数组,存放大于中间值的数据
     
      4、递归的终止条件,如果数组的长度等于1的时候就返回数组
     
      5、循环将数组一分为二
     
      6、递归
     
    三、代码
    function quicksort(arr){
        if(arr.length<2){
            return arr;
        }
    
        var midIndex = arr.length%2 == 0? arr.length/2 : (arr.length+1)/2;
        var mid = arr[midIndex];
    
        var left  = [];
        var right = [];
        
        for(var i=0;i<arr.length;i++){
            if(i != midIndex && arr[i] <= mid){
                left.push(arr[i]);
            }
    
            if(i != midIndex && arr[i] > mid){
                right.push(arr[i])
            }
        }
    
        return quicksort(left).concat(mid).concat(quicksort(right))
    }
  • 相关阅读:
    第14周周总结
    第13周周总结
    栈与队列
    前端继承方式汇总
    实现前端资源增量式更新的一种思路
    link和@import引入外部样式的区别
    webSocket
    Java 下载JDK账号
    穿透
    vue.set方法的使用
  • 原文地址:https://www.cnblogs.com/nanianqiming/p/9541638.html
Copyright © 2011-2022 走看看