归并排序


let mergeSort = (arr,left,right) => {
  if(left < right) {
  let mid = parseInt((left+right)/2);
  mergeSort(arr,left,mid);
  mergeSort(arr,mid+1,right);
  merge(arr,left,mid,right);
  }
}

let merge = (arr,left,mid,right) => {
  let res = [];
  let i = left, j=mid+1;
  let index = 0;
  while(i<=mid&&j<=right){
    res[index++] = arr[i]>arr[j] ? arr[j++] : arr[i++];
  }
  while(i <= mid)  res[index++] = arr[i++];
  while(j <= right)  res[index++] = arr[j++];
  for(let k=0;k<index;k++){
    arr[left+k] = res[k];
  }
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容