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

温州手机网站制作多少钱北京手机网站设计电话

温州手机网站制作多少钱,北京手机网站设计电话,建站培训,设计相关的网站有哪些内容1.基本思想 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序…

1.基本思想

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。
将已有序的子序列合并,得到完全有序的序列,即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。(有点像二叉树递归,大家可以联想二叉树理解)

在这里插入图片描述
下面是动图展示:
在这里插入图片描述

2.代码展示及讲解

讲解部分在注释中,配合上述两张图食用更佳

#include <stdio.h>void _MergeSort(int* a, int begin, int end, int* tmp)
{if (begin >= end){return;}//递归返回的判断条件int mid = (begin + end) / 2;//作为数组递归的左边(类似于左子树)和右边(右子树)_MergeSort(a, begin, mid, tmp);_MergeSort(a, mid+1, end, tmp);//对数组递归,利用mid将数组分成左右两个数组,并分别不断递归,并将递归排列好的元素储存到辅助数组tmp中,然后用内存函数将tmp中的元素复制到原数组中int left1 = begin;int right1 = mid;int left2 = mid + 1;int right2 = end;//递归的左右边界int t = begin;while (left1 <= right1 && left2 <= right2){if (a[left1] < a[left2]){tmp[t++] = a[left1++];}else{tmp[t++] = a[left2++];}}while (left1 <= right1){tmp[t++] = a[left1++];}while (left2 <= right2){tmp[t++] = a[left2++];}// 在递归的过程中对左右两边进行排序,如果上述排序方法一下子看不懂的话,//可以在纸上模拟一下,绝对简单,就是将两个数组中的元素按照从小到大依次放到辅助数组tmp中memcpy(a + begin, tmp + begin, sizeof(int) * (end - begin + 1));//转移排好的元素
}void MergeSort(int* a, int n)
{int* tmp = (int*)malloc(sizeof(int) * n);**//创建一个新数组作为辅助数组,储存递归的元素,并将其进行排序,//然后使用内存函数将辅助数组中的排列好的元素转移到原数组中**if (tmp == NULL){perror("malloc fail");return;}//判断空间是否开辟成功_MergeSort(a, 0, n - 1, tmp);//借助子函数开始递归
}int main()
{int a[10] = { 1,3,5,7,9,2,4,6,8,10 };MergeSort(a, 10);for (int i = 0; i < 10; i++){printf("%d ", a[i]);}return 0;
}

3.归并排序的特性总结

归并排序的特性总结:

  1. 归并的缺点在于需要O(N)的空间复杂度,归并排序的思考更多的是解决在磁盘中的外排序问题。
  2. 时间复杂度:O(N*logN)
  3. 空间复杂度:O(N)
  4. 稳定性:稳定

以上就是关于C++中的类的6个默认成员函数详解的全部内容,希望我的文章能对你有所帮助 感谢你的观看!
在这里插入图片描述

http://www.yayakq.cn/news/595202/

相关文章:

  • 网站什么引导页哪个彩票网站做代理反水高
  • 网站开发代理报价表企业形象网站建设
  • 石家庄网站建设就找wordpress技术服务
  • 中国的网站域名是什么简历模板制作
  • 域名购买 网站建设做财税的网站有哪些
  • 北京建设工程交易服务中心网站推荐营销型网站建设
  • h5制作网站公司图片头像设计制作
  • 网站建设用到什么wordpress插件授权码
  • 全球十大网站排名主流科技类的网站都有哪些
  • wordpress显示作者所有文章太原自动seo
  • 怎么做微信网站吗短链接制作
  • 青岛公司网站建设公司中色冶金建设有限公司网站
  • 自适应网站开发教程学做西餐的网站
  • 北京怎样做企业网站南宁网站建站公司
  • 成都高端品牌网站建设家庭宽带怎么做网站
  • 电子商务网站建设与推广实务网站流
  • 做国外单的网站叫什么名字伍佰亿网站推广
  • 网站推广的定义及方法做海报的软件app免费
  • 郑州专门做喷绘安装的网站网站建设介绍大全
  • 集团网站开发多少钱郑州资助app下载
  • 网站推广的预算百度收录好的免费网站
  • win7在局域网做网站秀色直播app软件大全
  • 网站根目录有哪些建设一个下载资料的网站
  • 如何开发一个微网站免费安全
  • 有哪些网站是可以做宣传的wordpress在线文档下载
  • 找工作平台网站宿迁做网站多少钱
  • 设计网站做的工作步骤是wordpress topnews
  • 海淀重庆网站建设个人做游戏网站
  • 做企业网站的步骤WordPress不能新建页面
  • 福建省网站建设绩效排名做艺术文字的网站