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

网站开发需要什么资质天马行空网站建设

网站开发需要什么资质,天马行空网站建设,宁波梅山建设局网站,视频直播软件目录 前言#xff1a; 归并排序 1. 定义 2.算法过程讲解 2.1大致思路 2.2图解示例 拆分合成步骤 ​编辑 相关动态图 3.代码实现#xff08;C语言#xff09; 4.算法分析 4.1时间复杂度 4.2空间复杂度 4.3稳定性 前言#xff1a; 今天我们就开始学习新的排序算法…目录 前言 归并排序 1. 定义 2.算法过程讲解 2.1大致思路 2.2图解示例 拆分合成步骤 ​编辑 相关动态图  3.代码实现C语言 4.算法分析 4.1时间复杂度 4.2空间复杂度 4.3稳定性 前言 今天我们就开始学习新的排序算法----归并排序说到归并排序最重要的思想就是分而治之先分后治。相较于前面所学过的排序算法归并排序过程相对比较复杂但是不要慌我会详细讲解这个过程的下面我们就一起来学习吧 归并排序 1. 定义 归并排序是建立在归并操作上的一种有效稳定的排序算法该算法是采用分治法Divide and Conquer的一个非常典型的应用。将已有序的子序列合并得到完全有序的序列即先使每个子序列有序再使子序列段间有序。若将两个有序表合并成一个有序表称为二路归并 2.算法过程讲解 2.1大致思路 已知一个数组arr[0,n-1],实现对这个数组进行拆分为arr[0,n/2]和arr[n/21,n-1]然后对这个数组进行进一步对半拆分直到拆成每个分数组里面只有一个元素时结束拆分然后进入排序按照拆分过程的路径进行排序合并直到合并为一个数组的时候结束最终得到的数组就是排序完成的数组。 归并排序是用分治思想分治模式在每一层递归上有三个步骤 分解Divide将n个元素分成个含n/2个元素的子序列。解决Conquer用合并排序法对两个子序列递归的排序。合并Combine合并两个已排序的子序列已得到排序结果 2.2图解示例 拆分合成步骤 已知一个数组  [6,5,3,1,8,7,2,4]要求通过归并排序进行排序 第一步依次拆分直到每一个分数组剩下一个元素 如下所示 6 5 3 1 8 7 2 4 第一次拆分                  6 5 3 1                           8 7 2 4 第二次拆分            6 5            3 1                8 7             2 4 第三次拆分        6        5       3        1        8        7       2        4 第二步拆分完成之后就进行排序        合并,如下所示 6        5       3        1        8        7       2        4 第一次合并          5 6               1 3              7 8              2 4       第二次合并                 1 3 5 6                            2 4 7 8 第三次合并                              1 2 3 4 5 6 7 8 以上步骤就完成了归并排序的过程了演示图如下所示 动态图 相关动态图  3.代码实现C语言 #includestdio.h //归并排序 //合成排序 void merge(int* n,int *temp,int left,int mid,int rigth) {int l_pos left;int r_pos mid1;int pos left;//左右两部分数组进行比较合并while (l_pos mid r_pos rigth) {if (n[l_pos] n[r_pos])temp[pos] n[l_pos];elsetemp[pos] n[r_pos];}//如果左边还有多余的就直接补到后面去while (l_pos mid)temp[pos] n[l_pos];//如果右边有多余的就直接补到后面去while (r_pos rigth)temp[pos] n[r_pos];//这里只需要把原来的数组覆盖掉就行了while (left rigth) {n[left] temp[left];left;}} //拆分与归并 void msort(int *n,int *temp,int left,int right) {if (left right) { int mid (left right) / 2; //先拆分为两部分msort(n, temp, left, mid); //左边递归msort(n, temp, mid1, right);//右半递归merge(n, temp, left, mid, right); //拆分完成之后进行归并和排序} } //排序函数接口 void merge_sort(int* n, int length) {int* temp (int*)malloc(sizeof(int) * length);//申请一个同样大小的辅助数组空间if (temp) {//如果申请成功msort(n, temp, 0, length-1); //进入到排序free(temp); //释放掉这个空间}else {printf(Space allocation failure);} }int main() {int array[8] { 25,24,6,65,11,43,22,51 };printf(排序前:);for (int i 0; i sizeof(array) / sizeof(int); i) {printf(%d , array[i]);}printf(\n排序后);merge_sort(array, sizeof(array) / sizeof(int));for (int i 0; i sizeof(array) / sizeof(int); i) {printf(%d , array[i]);} } //排序前:25 24 6 65 11 43 22 51 //排序后6 11 22 24 25 43 51 65 4.算法分析 4.1时间复杂度 归并排序的速度仅次于快速排序速度是相当快的。因为归并排序每次都是在相邻的数据中进行操作所以归并排序时间复杂度为O(nlogn)。 4.2空间复杂度 你知道么归并排序在任何情况下的时间复杂度永远都是 O(nlogn)是不是很奇怪呢别急凡事有得必有失归并排序是通过牺牲空间的代价来实现减小时间复杂度的。上面的代码涉及到数据暂存空间的开辟其开辟的空间数量最大也不会超过n所以空间复杂度为O(n) 4.3稳定性 归并排序是稳定的排序算法因为无论是在排序拆解过程中还是在归并过程中都没有改变相同元素的相对位置所以是稳定的。 好了以上就是今天的全部内容了你们学会了吗?我们下一期再见
http://www.pierceye.com/news/608010/

相关文章:

  • 猎聘网网站建设目标怎么做网站上的模拟动画
  • 南通制作企业网站福州做网站设计
  • 上什么网站做会计教育wordpress cookies
  • 山东网站备案号四川省建筑信息网
  • 网站开发可以用哪些语言中国十二冶金建设有限公司网站
  • 中药网站模板襄阳seo优化服务
  • 做爰片免费观看网站会展企业网站建设方案
  • 国内空间没备案可以打开网站吗dw做网站 怎么做背景图片
  • host绑定网站国外网站风格
  • 安顺建设局网站wordpress 分页
  • 重庆做网站个人外网登录不了WordPress
  • 医药平台网站建设网站排名做不上去
  • 网站关键词优化培训怎样使用wordpress
  • wordpress多站做网站空间百度云和阿里云区别
  • 衡水企业网站制作公司3000块钱在朋友圈投放广告
  • 做网站没有公网北京网页制作教程
  • 运城哪家做网站的公司好小商铺装修
  • 如何访问win7下做的网站时间轴网站模板
  • html5网站制作软件做app找哪个网站吗
  • 网站名称怎么备案外贸商城网站模板
  • 网页设计网站网站建设课程设计客户关系管理流程图
  • 网站开发遇到的难题品牌策划公司有哪些
  • 网站如何做视频链接网络服务器可提供的常见服务
  • 做二手钢结构网站有哪些网站建设开发ppt
  • 做网站分什么软件免费备案网站空间
  • 网站建设公司大全如何制作网站视频的软件
  • 手机网站开发有前途软件开发服务费税率
  • 代做网站的公司有哪些logo一键生成器不要钱的
  • 网站建设和编程的区别游戏网站模板html
  • 大麦网网站内似网站开发百度资料怎么做网站