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

    const Compare={
        LESS_THAN:-1,
        BIGGER_THAN:1,
        EQUAL:0,
    }
    function defaultCompare(a,b){
        return a === b?Compare.EQUAL: a > b ?Compare.BIGGER_THAN:Compare.LESS_THAN;
    }
    function mergeSort(array, compareFn = defaultCompare) {
        if(array.length > 1){
            const { length } = array;
            const middle = Math.floor(length / 2);
            const left = mergeSort(array.slice(0,middle),compareFn);
            const right = mergeSort(array.slice(middle,length),compareFn);
            array = merge(left,right,compareFn);
        }
        return array;
    }
    function merge(left,right,compareFn){
        let i = 0;
        let j = 0;
        const result = [];
        while(i < left.length && j < right.length){
            result.push(compareFn(left[i],right[j]) === Compare.LESS_THAN ? left[i++]:right[j++]);
        }
        return result.concat(i < left.length ? left.slice(i) : right.slice(j));
    }
  • 相关阅读:
    003.iSCSI客户端管理
    002.iSCSI服务端配置
    001.iSCSI简介
    004.RAID删除
    003.RAID管理
    002.RAID创建
    001.RAID简介
    001.hadoop及hbase部署
    001.Parted工具使用
    007.LVM查看命令
  • 原文地址:https://www.cnblogs.com/MySweetheart/p/13462303.html
Copyright © 2011-2022 走看看