javaScript系列---【数组对象--快速排序】

 <script>
        var arr = [12, 13, 23, 14, 20, 26, 34, 13, 16];
        // 快速排序
        // 核心思想:用当前这个数组的基准值(中间项)和其它每一项进行比较,比这一项大的放到右边,比这一项小的放到左边(放到数组中)

        //基准值(中间项) 
        //var index =  Math.floor(arr.length/2);

        function quickSort(arr) {
            if (arr.length <= 1) {
                return arr;
            }
            // 中间项的索引
            var pointIndex = Math.floor(arr.length / 2);
            // 基准值(中间项) 
            var pointValue = arr.splice(pointIndex, 1)[0];
            console.log(pointValue);


            // 用当前这个数组的基准值(中间项)和其它每一项进行比较,比这一项大的放到右边,比这一项小的放到左边(放到数组中)
            var left = [],
                right = [];

            for (var i = 0; i < arr.length; i++) {
                // 用当前这个数组的基准值(中间项)和其它每一项进行比较,比这一项大的放到右边,比这一项小的放到左边(放到数组中)
                arr[i] < pointValue ? left.push(arr[i]) : right.push(arr[i]);
            }

            return quickSort(left).concat(pointValue, quickSort(right));
        }

       var resArr =  quickSort(arr);
       console.log(resArr);
       console.log(arr);
    </script>

 

posted on 2021-03-18 23:04  码农小小海  阅读(50)  评论(0)    收藏  举报

导航