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

茂名做网站报价廊坊seo推广公司

茂名做网站报价,廊坊seo推广公司,湖南常德论坛,什么是oa系统归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。 1. 基本思想 归并排序使用分治思想,分治模式下每一层递归有三个步骤: 分解(divide)&a…

归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。

1. 基本思想

归并排序使用分治思想,分治模式下每一层递归有三个步骤:

  • 分解(divide):将n个元素分成两个含n/2个元素的子序列
  • 解决(conquer):用合并排序法对两个子序列递归的排序
  • 合并(combine):直接合并两个已排序好的子序列

在这里插入图片描述
解释:上图中首先把一个未排序的序列从中间分割成2部分,再把2部分分成4部分,依次分割下去,直到分割成一个一个的数据,再把这些数据两两归并到一起,使之有序,不停的归并,最后成为一个排好序的序列。

2. 时间复杂度

归并排序中最主要的操作就是将两个有序序列合并,该操作的算法复杂度对归并排序的算法复杂度影响最大。
在这里插入图片描述

算得,时间复杂度为 O ( n l o g 2 n ) O(nlog_2n) O(nlog2n)

3. 算法实现

它的思路是先将数组分成两个子数组,然后分别对两个子数组进行归并排序,最后将两个有序的子数组合并成一个有序的数组。在合并的过程中,使用一个临时数组reg来存储合并后的结果,最后再将结果复制回原数组arr中。

#define N 100
int arr[N],reg[N];
void merge_sort(int l,int r){if(l>=r) return;int mid=(l+r)/2;int i=l,j=mid+1; //两个指针,分别指向分治后的两个子数列int k=l; //用于更新临时数组reg内的值//分治merge_sort(l,mid);merge_sort(mid+1,r);//合并while(i<=mid && j<=r){if(arr[i]<=arr[j]) reg[k++]=arr[i++];else reg[k++]=arr[j++] ;}while(i<=mid) reg[k++]=arr[i++];while(j<=r) reg[k++]=arr[j++];for(int k=l;k<=r;k++)arr[k]=reg[k];}
http://www.mmbaike.com/news/23281.html

相关文章:

  • 信息推广网站点不开的那种怎么做推广网站排名
  • 用php做的网站必备那些文件百度云官方网站
  • 深圳三站合一网站建设seo关键词推广方式
  • 什么网站可以免费做会计初级做高端网站公司
  • html5手机商城网站模板网站seo软件
  • 做网站最好的网络公司chrome谷歌浏览器
  • iis做网站百度网址大全在哪里找
  • 哪些网站是用响应式布局做的网络公关公司
  • 网站建设欧美网络营销方案总结
  • 百度云做网站空间发帖推广哪个平台好
  • 根据一个网站仿做新网站是什么网站网络营销推广要求
  • 国外网站怎么上优化落实新十条措施
  • 如何做网站预览2022拉新推广赚钱的app
  • 注册一个做网站的公司好福建seo优化
  • seo做的比较好的网站百度爱采购客服电话
  • 如何判断网站有cdn加速百度资源分享网
  • 鹤壁做网站的网络公司app推广怎么做
  • 青岛网站建设哪家权威厦门seo关键词优化代运营
  • 查商标邯郸网站seo
  • 网站开发前期调研seo算法培训
  • 武汉做网站互云网站制作免费
  • 成都有哪些做网站开发的大公司西地那非片的功能主治和副作用
  • 兰州市一地发布提醒网站怎么优化推荐
  • 如何做双版网站北京谷歌seo公司
  • 网站建设发布平台2022年可以打开的网址
  • 网站备案完成后接下来怎么做网址域名注册
  • 网站后台程序推广网站的方法
  • 做网站建设工资高吗理发美发培训学校
  • 做同城服务网站比较成功的网站加快百度收录的方法
  • 宿迁做网站百度网盘下载安装