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

免费网站怎么申请广州软件开发公司排行榜

免费网站怎么申请,广州软件开发公司排行榜,四川省建筑信息平台,西安那些做网站的公司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.hyszgw.com/news/73665/

相关文章:

  • 苏州模板建站平台深圳高端网站建设模版
  • 专业的企业网站开发公司设计用哪些网站有哪些
  • 做生产计划类的网站高德地图搜不到国外吗
  • 网页设计网站搭建如何利用网站推广业务
  • 网站开发tt0546维普网
  • 做电子政务网站上海造价信息网官网
  • 北京网站制作西安登录可见wordpress 代码
  • 知名网站的org域名网络维护工程师是做什么的
  • 一个备案号可以绑定几个网站大气的网站模板
  • 哈尔滨住房和城乡建设厅网站加强网站制度建设
  • 福建网站制作公司开广告公司利润大吗
  • 河南便宜网站建设价格哪家做网站最便宜
  • 数据库设计对网站开发的影响张家港网站制作
  • 国内购物网站排名计算机网络规划与设计报告
  • 杭州哪家公司做网站西安网页制作培训机构
  • 湖南郴州建设局网站电脑网站开发者模式
  • 个人网站备案名网页打不开但是能上网
  • 药品网站订单源码网站建设合作品牌
  • 金融网站建设公司排名网络营销策略包括哪几大策略
  • 做毕业设计的参考文献网站html博客转wordpress
  • 江苏工信部网站备案十条网站建设的seo策略
  • flashfxp怎么上传网站怎么把网站提交给搜索引擎
  • 网站产品怎么改顺序开网站做网站
  • 自己做的网站如何联网国外搜索引擎网址
  • 网站上加一个浮动小框怎么做网站排名工具
  • 网站添加qq聊天深圳网页设计兴田德润优惠吗
  • 个人网站主页企业网络安全设计方案
  • 葫芦岛市营商环境建设管理局网站邢台哪儿专业做网站
  • 网站建设技术指标网页设计与制作课程标准中职
  • 顶尖网站建设公司网站建设页面大小