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

网站设计 工作百度一下 官方网

网站设计 工作,百度一下 官方网,建设公司网站需要多少钱,怎么做网站 教学一,引言 归并排序作为七大排序中一种,本文将讲解其排序原理和代码实现。 二,逻辑讲解 来看一组动图: 首先先进行大逻辑的讲解,在一个乱序的数组中如图: 通过递归进行一次次分组如图: 分组逻…

一,引言

归并排序作为七大排序中一种,本文将讲解其排序原理和代码实现。

二,逻辑讲解

来看一组动图:

首先先进行大逻辑的讲解,在一个乱序的数组中如图:

通过递归进行一次次分组如图:


 分组逻辑:左右区间相加除以2,将一组分成两组,直到最后,每组只有一个数据分组结束。

                 因为单个数据看作为有序。

分组结束进行返回,如上图0有序,1有序,之后0和1进行排序,排完之后 0到1和2进行排序,排完之后0到2为有序,后面的逻辑都相同。如图:

这个排序的逻辑就逆着来,最小的区间有序,进而大一点的区间有序,进而更大一点区间有序,最后整个数组有序 。

下面我带入上述乱序数组进行排序。

第一步

首先如上图分成最小部分.0的位置为(5)单个看作有序,1的位置为(1)当个看作有序。将这两个返回。将0到1的位置进行排序,排序之后是(1)(5)

第二步

2的位置为(9)单个数据看作有序,进行返回,0到1的位置为有序---(1)(5),2的位置为有序---(9),将0到2进行排序。

第三步

进行排序0到4的右半边,和一二步逻辑相同。排序结束之后0到4为有序。

第四步

0到9的左半边有序,进行右半边的排序。逻辑和前三步相同,最后5到9有序。

第五步

进行0到9的排序。最终排序结束。

单趟排序逻辑:
 

分成最后单个有序返回之后进行[L----key]和[key+1-------R]的排序

通过创建一个新数组,将两组数据进行比较,然后依次拷贝到新数组 ,拷贝结束之后将新数组的数据拷贝回原数组。

第二步的单趟讲解:

和第一步的逻辑相同如图:

第三步的单趟排序:

第四步,第五步逻辑一致

这里就不依次画图了

三,代码实现:
 

void Merge(int* p, int* q, int left, int right)
{if (left >= right){return;}int begin1 = left;int tag = left;int keys = (left + right) / 2;int end1 = keys;int begin2 = keys + 1;int end2 = right;Merge(p, q, begin1, keys);Merge(p, q, keys + 1, end2);while (begin1 <= keys && begin2 <= end2){if (p[begin1] < p[begin2]){q[tag] = p[begin1];begin1++;}else{q[tag] = p[begin2];begin2++;}tag++;}while (begin2 <= end2){q[tag] = p[begin2];begin2++;tag++;}while (begin1 <= end1){q[tag] = p[begin1];begin1++;tag++;}memcpy(p + left, q + left, (right - left+1) * sizeof(int));
}

p为原数组,q为拷贝数组,memcpy为拷贝函数,头文件在<string.h>中。

四,总结:


归并排序也是使用递归排序的一种,时间复杂度为O(Nlog^N)空间复杂度因为需要开辟新的空间所以为O(N),稳定性方面,在相同数据的相对数据并不会有所改变。所以该排序算法是稳定的。

http://www.dtcms.com/wzjs/36994.html

相关文章:

  • 做dj网站域名解析网站
  • 哪里可以找到做网站的百度推广助手app下载
  • 天津做网站印标电商平台运营
  • 新余做网站的公司优化大师免费版下载
  • 新闻网站建设现状分析物联网开发
  • 做网站镜像免费发布信息不收费的网站
  • 广告传媒公司简介内容网站关键词免费优化
  • 深圳市工程交易中心公众号seo排名
  • 网站设计网站项目流程图济南做seo排名
  • 怎么做一个网站云南十大营销案例分析
  • 什么网站做简历好关键词优化推广公司排名
  • 做外贸怎么连接国外网站如何做一个自己的网站呢
  • 公司企业网站模板百度竞价托管外包代运营
  • 怎么做网站设计程序免费建站系统
  • 支付网站搭建html简单网页设计作品
  • 怎样给网站做 站内搜索全网营销推广方式
  • 网店代运营代理免费广州seo
  • 博客做单页网站网页设计工作室长沙
  • 做爰全过程免费网站可以看营销公司取名字大全
  • 桥梁建设杂志网站网站买卖
  • 长春火车站和高铁站是一个站吗百度推广管理平台
  • 老干局网站建设方案百度seo查询系统
  • 自己做qq头像静态的网站seo关键词排名优化怎么收费
  • 合肥网站建设公司哪家好推广专员是做什么的
  • 二级域名分发网站源码关键词排名怎样
  • 做网站总结体会seo在哪学
  • 深圳b2b网站开发公司南宁网络推广热线
  • 营销型网站建设的特别之处都有哪些百度网址链接是多少
  • 如何做网站百度免费打开
  • pc网站建设是什么意思东莞优化seo