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

整站下载器 做网站地图seo技巧课程

整站下载器 做网站地图,seo技巧课程,上海市人才服务中心网首页,做黄金期货的网站目录 一#xff0c;归并排序#xff08;递归#xff09; 1#xff0c;基本思想 2#xff0c;思路实现 二#xff0c;归并排序#xff08;非递归#xff09; 1#xff0c;思路实现 2#xff0c;归并排序的特性总结#xff1a; 一#xff0c;归并排序#xff0… 目录 一归并排序递归 1基本思想 2思路实现 二归并排序非递归 1思路实现 2归并排序的特性总结 一归并排序递归 1基本思想 归并排序MERGE-SORT是建立在归并操作上的一种有效的排序算法,该算法是采用分治法Divide and Conquer的一个非常典型的应用 将已有序的子序列合并得到完全有序的序列 即先使每个子序列有序再使子序列段间有序若将两个有序表合并成一个有序表称为二路归并 归并排序核心步骤 2思路实现 这个归并排序乍一看像一颗二叉树事实也是如此如上图所示我们需要不断的拆分直至拆成一个元素此时就是有序的然后再合并合并的时候不要选择原地合并原地合并时间复杂度很高需要开辟与数组同等大小的空间用来存放数据 主函数整体框架 //归并排序 void MergerSort(int* arr, int begin, int end) {if (begin end){return;}//开辟同等大小数组int* tmp (int*)malloc((end - begin 1)*sizeof(int));//归并Merger(arr, tmp, begin, end);free(tmp);tmp NULL; } 然后我们就要开始实现 Merger 函数是数据归并了 把数组拆分成一个数据后开始合并刚开始一 一合并然后二 二合并然后四 四合并直至全数组合并完 //归并 void Merger(int* arr, int* tmp,int begin,int end) {int mid (begin end) / 2;if (begin end){return;}//排序【begin,mid】 【mid1,end】Merger(arr, tmp, begin,mid);Merger(arr, tmp, mid1, end);int begin1 begin, end1 mid;int begin2 mid 1, end2 end;int i 0;while (begin1 end1 begin2 end2){if (arr[begin1] arr[begin2]){tmp[i] arr[begin1];}else{tmp[i] arr[begin2];}}while(begin1 end1){tmp[i] arr[begin1];}while (begin2 end2){tmp[i] arr[begin2];}//进行拷贝memcpy(arr begin, tmp, (end - begin1)*sizeof(int)); } 然后我们运行测试一下 可以看到是有序的选择排序就 OK 了 其实跟二叉树的前序遍历有异曲同工之处前后知识都是连贯起来的 二归并排序非递归 1思路实现 现在我们来拿捏一下非递归版的归并排序其实也还是换汤不换药 其实新思路是这个图的下半部分我们先让数据一 一合并然后再二 二合并然后再四 四合并程倍数增长有人问如果越界了怎么办没关系我们后面会做越界处理的 直接上代码 //归并排序(非递归) void MergerSortNon(int* arr, int begin, int end) {if (begin end){return;}//开辟同等大小数组int* tmp (int*)malloc((end - begin 1) * sizeof(int));int gap 1;int j 0;while (gap end){for (j 0; j end; j 2 * gap){int begin1 j, end1 begin1gap-1;int begin2 end11, end2 begin2gap-1;int i 0;//处理边界问题if (end1 end){break;}if (end2 end){end2 end;}while (begin1 end1 begin2 end2){if (arr[begin1] arr[begin2]){tmp[i] arr[begin1];}else{tmp[i] arr[begin2];}}while (begin1 end1){tmp[i] arr[begin1];}while (begin2 end2){tmp[i] arr[begin2];}//进行拷贝memcpy(arr j, tmp, (end2 - j 1) * sizeof(int));}gap * 2;}free(tmp);tmp NULL; } 我们来运行测试一下 可以看到是有序的选择排序就 OK 了 2归并排序的特性总结 1 归并的缺点在于需要O(N)的空间复杂度归并排序的思考更多的是解决在磁盘中的外排序问题 2 时间复杂度O(N*logN) 3 空间复杂度O(N) 4 稳定性稳定 第四阶段就到这里了带大家继续吃肉 后面博主会陆续更新 如有不足之处欢迎来补充交流 完结。。
http://wiki.neutronadmin.com/news/66579/

相关文章:

  • 柳州网站建设找华仔网站建设工作台账
  • 怎么形容网站做的好h5做怎么做微网站
  • php可以做网站列举至少五个网络营销方式
  • 网站开发使用数据库的好处如何建设内网网站
  • 外部网站跳转小程序网站开发人员招聘广告语
  • 深圳网站关键词优化公司做网站需要几大模板
  • 电子商务网站建设总结怎样查看网站是用什么做的
  • 发布网站需要多大空间网站检测报告那里做
  • 网站怎么做直播网站按条件显示广告图片
  • 中国建设银行网站是什么企业营销型网站类型
  • 门户网站建设如何入账vr模式的网站建设公司
  • 建网站业务如何开展如何网站做百度推广
  • 百度站长平台官网死链提交英文网站名需要斜体吗
  • 重庆企业网站推广流程教你学做窗帘的网站
  • 阿里巴巴怎么做公司网站传统网络营销策划方案
  • 嘉兴优化网站公司哪家好开源的公司网站
  • 巩义网站推广优化shein跨境电商官网
  • 黄埔网站建设公司手机网站免费建设排行
  • 建设官方网站请示东莞做网站it s
  • 非自己的网站如何做二次跳转东莞市做网络维护的公司
  • 学校怎么创建网站联系客户做网站
  • 某集团网站建设规划书apicloud官网下载
  • 怎么样可以做自己的网站商城网站建设需要注意什么
  • 营销型企业网站系统模板下载做网站用什么颜色好
  • 易县做网站南方数据企业网站管理系统
  • 菜鸟如何建网站桂林网站建设哪家好
  • 做网站的都是什么专业毕业的网络营销课程总结与心得体会
  • 沈阳专业制作网站wordpress下载图片
  • 商务网站模板后台网站建设招聘
  • 支付网站怎么做自己怎么做团购网站首页