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

    归并排序

    原理

    归并排序是一种分治算法。其思想是将原始数组切分成较小的数组,直到每个小数组只有一个位置,接着将小数组归并成较大的数组,直到最后只有一个排序完毕的数组。

    function merge(left, right) {
        let result = [],
            i = 0,
            j = 0;
        while(i < left.length && j < right.length) {
            if(left[i] < right[j]) {
                result.push(left[i++]);
            } else {
                result.push(right[j++]);
            }
        }
        while(i < left.length) {
            result.push(left[i++]);
        }
        while(j < right.length) {
            result.push(right[j++]);
        }
        return result;
    }
    function mergeSort(array) {
        let mid, left, right;
        if(array.length <= 1) {
            return array;
        }
        mid = Math.floor(array.length / 2);
        left = array.slice(0, mid);
        right = array.slice(mid, array.length);
        return merge(mergeSort(left), mergeSort(right));
    }
    let array = [1, 5, 2, 4, 3];
    array = mergeSort(array);
    console.log(array);
    
  • 相关阅读:
    人脸识别员工考勤系统
    栈和队列
    线性表
    C语言博客作业02--循环结构
    课程设计-个人博客
    C博客作业02--循环结构
    博客作业--函数
    c博客作业
    联系方式
    专业特长
  • 原文地址:https://www.cnblogs.com/1328497946TS/p/14915318.html
Copyright © 2011-2022 走看看