zoukankan      html  css  js  c++  java
  • javascript的快速排序法

    在排序方式中,快速是比较普遍使用的,因为其速度快。

    因为其是不断的递归,而且是根据基准点的左右两边开始递归,直到数组只有一个值的时候才返回。

    这个基准点是自己定的。

    一般取中间,比较好理解。

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            
            <script>
                var arr=[5,2,0,-1,4,10];
                /*快速排序法*/
                /*核心是找到基准点,然后把数组分成两半,一半大于基准点。一半小于基准点,
                 然后不断的递归,直到数组值只剩一个时,而递归也是重点理解:
                 fastSort(left).concat([center],fastSort(right))
                 这样它会不断的执行函数,分两边执行函数,一边为左边,一边为右边
                 然后根据递归,会不断的分支,所以这个排序方式是比较快的
                 而基准点值直接合并到数组,因为函数递归的方式是从里到外,所以它会从里面合并到外面
                 
                 * */
                function fastSort(arr){
                    
                    if(arr.length<=1){
                        return arr;
                    }
                    var left=[],right=[];
                    var num=Math.floor(arr.length/2);
                    var center=arr.splice(num,1)[0];
                    for(var i=0;i<arr.length;i++){
                        if(arr[i]<center){
                            left.push(arr[i]);
                        }else{
                            right.push(arr[i]);
                        }
                    }
                    return fastSort(left).concat([center],fastSort(right));
                }
                console.log(fastSort(arr));
                
                //arr.splice(3,1)返回是一个数组
    //            console.log(arr.splice(3,1));
            </script>
        </body>
    </html>
  • 相关阅读:
    windows内核中对于索引*4(内存)的一个反汇编知识点
    任务段与任务门
    中断门与陷阱门
    调用门
    Visual Studio 调试系列2 基本调试方法
    Visual Studio 调试系列1 Debug 与 Release 模式
    Visual Studio 调试(系列文章)
    C#各版本新增加功能(系列文章)
    C#8.0 中使用默认接口成员更新接口
    C#8.0 新增功能
  • 原文地址:https://www.cnblogs.com/zhangzhicheng/p/6064035.html
Copyright © 2011-2022 走看看