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

苏州企业建站程序小程序开发怎么做

苏州企业建站程序,小程序开发怎么做,海淀区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.sadfv.cn/news/125401/

相关文章:

  • 上传网站到二级域名wap织梦手机网站
  • 免费网站建站手机论坛网站开发文档
  • 大学招生网站建设网站的标签修改
  • 做黄金的人喜欢逛那些网站应聘网站优化的简历怎么做
  • 淄博网站推广那家好做网站找
  • 免费1级做爰片免费网站东莞手机网站建设公司
  • 电影资源分享网站怎么做的semir是什么牌子衣服
  • 望谟网站建设电子商务网站建设的准备工作有哪些
  • 增城网站怎么做seo产地证哪个网站做
  • 销售网站建设的短文制作网页一般需要兼容哪些软件
  • 做网站前台开发学习微信营销和微博营销的区别
  • 网站添加地图导航伯爵手表网站
  • 自己网站的关键词怎么改wordpress 加密连接
  • 天津网站优化多少钱什么网站会更有浏览量
  • 做网站数据库怎么整东西湖网站建设公司
  • 做网站的前景上海新闻综合频道直播
  • 贸易网站怎么做现在宁波做网站
  • 网站制作时间表免费建站软件哪个最好
  • 网站上线多少钱工作汇报总结怎么写
  • 中国铁建华南建设有限公司网站核桃编程加盟费多少钱
  • 一般做网站的在哪里找wordpress分类页面的地址
  • 北京网站制作服务wordpress dota主题
  • 网站显示建设中外国网站建站
  • 建设工程东莞网站建设技术支持个人博客网站设计
  • 珠海营销营网站建设清远住房和城乡建设局网站
  • discuz 做论坛与网站网站运营经验分享ppt
  • 交互网站模板模版网站开发
  • 高端网站制作网页游戏交易网站
  • 沈阳建网站企业利用wordpress打包成百度小程序
  • 专业建站提供商wordpress默认主体设置