zoukankan      html  css  js  c++  java
  • js归并排序

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <meta name="author" content="杨欣">
        <title></title>
    </head>
    
    <body>
    
        <script>
            // 递归分组
            function mergeSort(arr) {
                if (arr.length <= 1) {
                    return arr
                }
                let midIndex = arr.length / 2 | 0;
                let leftArr = arr.slice(0, midIndex);
                let rightArr = arr.slice(midIndex, arr.length);
                return merge(mergeSort(leftArr), mergeSort(rightArr))
            }
            // 合并
            function merge(leftArr, rightArr) {
                let res = [];
                while (leftArr.length && rightArr.length) {
                    leftArr[0] >= rightArr[0] ? res.push(rightArr.shift()) : res.push(leftArr.shift())
                }
                while (leftArr.length) {
                    res.push(leftArr.shift())
                }
                while (rightArr.length) {
                    res.push(rightArr.shift())
                }
                return res
            }
            console.log(mergeSort([1, 9, 7, 3, 4, 5, 8, 6]));
    
        </script>
    </body>
    
    </html>
    
  • 相关阅读:
    第八周作业
    第八周上机练习
    第七周上机练习
    第六周作业
    第六周上机练习
    第五周上机练习
    第四周作业
    第四次上机作业
    第三周作业
    第一次上机作业
  • 原文地址:https://www.cnblogs.com/samsara-yx/p/12850156.html
Copyright © 2011-2022 走看看