js+排序

快排

const quicksort = (arr) => {
  if(arr.length <= 1) return arr
  let pivot = arr[0]
  let left = arr.slice(1).filter((ele) => ele < pivot)
  let right = arr.slice(1).filter((ele) => ele > pivot)
  return quicksort(left).concat([pivot]).concat(quicksort(right))
}

归并排序

const mergesort = (arr) => {
  if (arr.length <= 1) return arr
  let left = mergesort(arr.slice(0,arr.length / 2))
  let right = mergesort(arr.slice(arr.length/2))
  return merge(left, right)
}

const merge = (left, right) => {
  let res = []
  while (left.length != 0 && right.length != 0){
    if (left[0] < right[0]){
      res.push(left.shift())
    }else{
      res.push(right.shift())
    }
  }
  if(left.length > 0) res = res.concat(left)
  if(right.length > 0) res = res.concat(right)
  return res
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 十大经典算法排序总结对比一张图概括,主流排序算法概览: 名词解释:n: 数据规模k:“桶”的个数In-place:...
    飞菲fly阅读 3,816评论 0 2
  • 之前写过js实现数组去重, 今天继续研究数组: 排序算法实现。 排序是数据结构主要内容,并不限于语言主要在于思想;...
    萧强阅读 13,934评论 3 50
  • 1.排序 冒泡 选择 插入 归并 快递 2.冒泡排序(升序排序)面试要用 var arr = [10,2,...
    壬万er阅读 3,980评论 0 0
  • 一些常用js排序算法实现,非原创,用于记录 冒泡排序 时间复杂度:O(n^2);最快:数据是正序时最慢:数据是反序...
    bestvist阅读 3,328评论 1 9
  • 「第一天」在,不在 冬天,火车的夜晚有点冷,好在越往南方,阳光也愈加明媚起来,走出火车站的一瞬间,突然涌起的念头,...
    猫生默默阅读 1,882评论 0 0

友情链接更多精彩内容