zoukankan      html  css  js  c++  java
  • 面试必备之快速排序

    快速排序的原理为

    1.找一个基准数(从数组的中间取)

    2.把所有数和基准数作比较,小的放基准数的左边,大的放基准数的右边

    3.再不断地把左边和右边两个数组递归

    demo如下

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    <script>
    //sort
    
    //快速排序
    
    //1.找一个基准点
    //2.建立两个数组,分别存储左边和右边的数组
    //3.利用递归进行下次比较
    
    
    function quickSort(arr){
    
        if(arr.length<=1){
            return arr;
        }
        
        var num = Math.floor(arr.length/2);
        
        var numValue = arr.splice(num,1);
        
        var left = [];
        var right = [];
        
        for(var i=0;i<arr.length;i++){
            if(arr[i]<numValue){
                left.push(arr[i]);
            }
            else{
                right.push(arr[i]);
            }
        }
        
        return quickSort(left).concat([numValue],quickSort(right));
    
    }
    
    
    alert(quickSort([12,5,37,6,22,40]));
    
    </script>
    </head>
    
    <body>
    </body>
    </html>
  • 相关阅读:
    寒假 学习进度七
    寒假学习进度
    寒假学习进度五
    寒假学习进度四
    寒假学习进度三
    寒假学习进度二
    Spark实验五
    半篇论文笔记
    REPL
    Scala基本语法及操作、程序控制结构
  • 原文地址:https://www.cnblogs.com/zcynine/p/5553190.html
Copyright © 2011-2022 走看看