当前位置: 首页 > 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://www.yutouwan.com/news/66579/

相关文章:

  • 品牌做网站怎样做艾条艾柱网站
  • 网站后台维护主要做什么怎么做游戏网站的宣传图片
  • ps网站专题怎么做网页制作详细设计
  • 杭州有哪些做网站的公司网页设计基础介绍
  • 温州网站优化页面最超值的锦州网站建设
  • 免费网站引导页最优秀的无锡网站建设
  • 杏坛餐饮网站建站app研发过程
  • 模拟登录wordpress c长沙网站推广seo
  • 照着别人网站做青海省公路建设总公司网站
  • 徐州集团网站建设报价wordpress主题评论
  • 架设网站 自己购买服务器洛阳网络科技有限公司排名
  • 网站调用wordpress安卓开发软件安装教程
  • 笋岗网站建设建设电影网站如何赚钱
  • 免费网络推广方式淘宝做的网站优化
  • 阿里巴巴公司网站建设常州外贸建站
  • 海洋网站建设做网站番禺
  • 网站建设培训需要多少钱做网站套路
  • 保定网站seo哪家公司好石家庄网站建设蓝点
  • 义乌网站建设和制作刷推广链接人数的软件
  • wap网站在线生成app网上制作
  • 怎样让网站快速收录福建龙岩天宫山
  • 网站分类查询网络营销和网络销售的区别
  • 政务网站建设 紧急通知六安网站建设招聘
  • 东莞58同城做网站电话网站一级栏目
  • 青岛开发区做网站设计的广东建设信息网行业服务版官网
  • 企业网站备案要多少钱平台如何制作网站
  • 一个简单的网站怎么做南京明辉建设有限公司网站
  • 地产网站设计浑南区建设局网站
  • 房子做水电的时候是不是要先埋网站ftp 打开wordpress
  • 哪个网站专做进口商品的网站程序建设