当前位置: 首页 > news >正文

wap企业网站模板济南网站建设公司

wap企业网站模板,济南网站建设公司,wordpress大发,58网站自己做1.什么是归并排序? 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 作为一种典型的分而治之思想的算法应用,归并排序的实…

1.什么是归并排序?

归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法:

  • 自上而下的递归(所有递归的方法都可以用迭代重写,所以就有了第 2 种方法);
  • 自下而上的迭代;

在《数据结构与算法 JavaScript 描述》中,作者给出了自下而上的迭代方法。但是对于递归法,作者却认为:

However, it is not possible to do so in JavaScript, as the recursion goes too deep for the language to handle.

然而,在 JavaScript 中这种方式不太可行,因为这个算法的递归深度对它来讲太深了。

和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是 O(nlogn) 的时间复杂度。代价是需要额外的内存空间。

2. 算法步骤

归并排序使用分而治之的概念对给定的元素列表进行排序。它将问题分解为较小的子问题,直到它们变得足够简单以至可以直接解决为止。

以下是归并排序的步骤:

  1. 将给定的列表分为两半(如果列表中的元素数为奇数,则使其大致相等)。
  2. 以相同的方式继续划分子数组,直到只剩下单个元素数组。
  3. 从单个元素数组开始,合并子数组,以便对每个合并的子数组进行排序。
  4. 重复第 3 步单元,直到最后得到一个排好序的数组。

3. 动图演示


代码实现

将两个已排序子数组合并为一个已排序数组的函数 merge()

function merge(left, right) {let arr = []// 如果任何一个数组为空,就退出循环while (left.length && right.length) {// 从左右子数组的最小元素中选择较小的元素if (left[0] < right[0]) {arr.push(left.shift())  } else {arr.push(right.shift()) }}// 连接剩余的元素,防止没有把两个数组遍历完整return [ ...arr, ...left, ...right ]
}

更完整的实现

function mergeSort(array) {const half = array.length / 2if(array.length < 2){return array }const left = array.splice(0, half)return merge(mergeSort(left),mergeSort(array))
}

http://www.ds6.com.cn/news/9935.html

相关文章:

  • 网站开发寻找潜在客户的途径百度小说排行榜前十名
  • 现在的网站使用frameset做吗北京seo包年
  • 如何做网站流量如何制作网址
  • 微官网站怎么做快速优化系统
  • 电商网站建设实训报告心得世界足球世界排名
  • 南宁商城网站建设seo课程哪个好
  • 学习做网站的孛校怎么找需要推广的商家
  • 母婴网站建设方案网站优化排名金苹果系统
  • 网站图片优化的概念佛山网站快速排名提升
  • 做网站什么软件好谷歌浏览器下载视频
  • 淘宝做导航网站天津百度seo代理
  • 帮别人做网站的公司是外包吗百度推广后台登陆首页
  • 南京协会网站建设关键词提取工具app
  • 烟台网站推广排名seo关键字排名
  • 购物网站单页模板window优化大师官网
  • 怎样修改公司网站内容网页设计论文
  • 网站设计规划范文电工培训课程
  • wordpress无法用qq邮箱验证开封网站快速排名优化
  • 什么网站是vue做的seo要点
  • b2b网站建设注意事项网站查询器
  • 云南建设厅网站职称评定百度seo怎么做网站内容优化
  • 深圳哪个公司做网站好重庆网站到首页排名
  • 大连龙采做网站裂变营销
  • 微信公众号做网站上海seo推广平台
  • 如何在网上推广游戏网站搜索引擎优化的基本内容
  • 市直部门网站建设维护工作总结新网
  • 网页站点西安关键词排名提升
  • 郑州高新发布关键词seo公司真实推荐
  • 潍坊做网站个人工作室百度seo公司
  • 阿里云备案网站建设方案书案例如何建立自己的网络销售