美文网首页
归并排序(JavaScript)

归并排序(JavaScript)

作者: One_Hund | 来源:发表于2018-09-17 23:53 被阅读0次
function mergeSort(arr){
  return mergeSortRec(arr)
}
function mergeSortRec(arr){
  if(arr.length===1){
    return arr;
  }
  let mid = Math.floor(arr.length/2);
  let left = arr.slice(0,mid);
  let right = arr.slice(mid,arr.length)
  return merge(mergeSortRec(left), mergeSortRec(right))
}
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;
}
// 测试用
let array = []
for(let i=0;i<10000;i++){
  array.push(Math.floor(Math.random()*10000))
}
console.time('快速排序耗时:');
console.log(mergeSort(array))
console.timeEnd('快速排序耗时:');

相关文章

  • JavaScript实现经典排序算法

    使用JavaScript实现的经典排序算法 util 冒泡 简单选择 直接插入 快速排序 堆排序 归并排序

  • 10大排序算法之【归并排序】

    前几天用c++写排序算法有点上瘾,但是为了雨露均沾,不冷落我的javascript,今天决定用js写归并排序。归并...

  • 排序算法

    约定 选择排序 冒泡排序 插入排序 希尔排序 归并排序1. 归并方法2. 自顶向下归并排序3. 自底向上归并排序 ...

  • 排序二:归并、快排

    文章结构 归并排序 快速排序 源码 1. 归并排序 1.1 什么是归并排序 归并排序的思想是:将待排序的区间平分成...

  • 归并排序(JavaScript)

  • java归并排序

    归并排序什么是归并排序:图解归并排序归并排序有两种实现方式,一是基于递归,而是基于迭代1)基于递归的归并排序: 基...

  • Javascript和归并排序

    Javascript和归并排序 这里以递归为例,参考自慕课网刘波波老师的C++版本实现 普通归并(自上而下) 普通...

  • 算法—排序篇2

    1、归并排序(Merging Sort) 归并排序(Merging Sort): 就是利用归并的思想实现排序⽅法....

  • 常见的排序算法(2)

    要点 快速排序 归并排序 1.快速排序 2.归并排序

  • 排序算法之归并排序

    归并排序(Merge Sort) 归并排序是利用归并的思想实现排序的方式,该算法采用的是经典的分治算法 归并排序过...

网友评论

      本文标题:归并排序(JavaScript)

      本文链接:https://www.haomeiwen.com/subject/mcwjnftx.html