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

江西省网站建设_网站建设公司_企业官网_seo优化

亚洲成成品网站有线,网站内容发布平台源码,二手车网站建设,外贸神器算法思路 归并排序是一种分治算法#xff1a;首先将数组分成两半#xff0c;然后对每一半进行归并排序#xff0c;最后将两个有序的子数组合并#xff0c;以得到最终的排序数组。为了简洁下面代码中会调用 STL 的 i n p l a c e _ m e r g e inplace\_merge inplace_merg…算法思路 归并排序是一种分治算法首先将数组分成两半然后对每一半进行归并排序最后将两个有序的子数组合并以得到最终的排序数组。为了简洁下面代码中会调用 STL 的 i n p l a c e _ m e r g e inplace\_merge inplace_merge 方法这个方法的作用正是将两个连续的有序区间合并为一个有序区间当然也可以自己按合并有序链表的思路写一个 m e r g e merge merge 方法~ a. 递归 自顶向下的递归排序 void merge_sort(vectorint li, int s, int e) {//li[s,e)为待排序的子数组if (e - s 1)return;int mid (s e) / 2;merge_sort(li, s, mid);merge_sort(li, mid, e);inplace_merge(li.begin() s, li.begin() mid, li.begin() e);//合并有序区间[s,mid)和[mid,e) }b. 栈模拟递归 用一个栈模拟递归排序中区间处理的过程注意一个区间可能会在栈中出现两次第一次其两个子区间还未排序第二次其两个子区间已经有序所以需要有一个额外的标志位来区分一个区间在栈中的这两种状态。 void merge_sort_stack(vectorint li, int s, int e) {//li[s,e)为待排序的子数组stacktupleint, int, int st;st.emplace(s, e, 0);while (!st.empty()) {auto [l, r, tag] st.top();//当前区间为[l,r) , 标志位为tagst.pop();if (tag 0) {//当前区间第一次出现if (r - l 1)continue;int mid (l r) / 2;st.emplace(l, r, 1);st.emplace(l, mid, 0);st.emplace(mid, r, 0);} else {//当前区间第二次出现int mid (l r) / 2;inplace_merge(li.begin() l, li.begin() mid, li.begin() r);//合并有序区间[l,mid)和[mid,r)}} }c. 递推 自底向上的递推首先两两一组的合并长为 2 0 2^0 20 的子数组再两两一组的合并长为 2 1 2^1 21 的子数组 ⋯ \cdots ⋯ 直到 2 k 2^k 2k 不小于数组长度时递推结束。注意每一轮合并中最后一组的右边的子数组的长度可能小于 2 k 2^k 2k。 void merge_sort(vectorint li, int s, int e) {//li[s,e)为待排序的子数组int n e - s;for (int len 1; len n; len * 2)//合并的子数组的长度len不超过nfor (int i s; i len e; i len * 2)//逐对枚举两个相邻的子数组inplace_merge(li.begin() i, li.begin() i len, li.begin() min(e, i len * 2));//合并有序区间[i,ilen)和[ilen,min(e,ilen*2)) }
http://www.lebaoying.cn/news/47123.html

相关文章:

  • 门户网站 营销wordpress文字上传
  • 装饰网站建设流程网站的开发方法
  • 珠海学网站开发手机网站域名查询
  • 创建网站的目的是什么wordpress更改固定连接404
  • 麻涌东莞网站建设免费外网加速器
  • 渭南做网站都有哪些搜索引擎在哪里获取网站
  • 建设一个网站是不必须备案企业年报查询
  • 馆陶网站wordpress用户组插件
  • 城市建设网站调查问卷重庆建设医院官方网站
  • 猎头公司名字外贸网站优化公司
  • 网站模板怎么打开青岛关键词排名哪家好
  • 永川集团网站建设龙岗网站建设电话
  • 襄阳做网站价格手机h5网站开发
  • 安徽省所有建设类网站网站建设制作开发
  • ppt做的模板下载网站centos做网站服务器吗
  • 青岛集团网站建设wdcp 网站建设
  • 网站开发中设置会员等级网站底部浮动广告代码
  • 做电影数据的网站asp网站开发视频
  • 网站开发需要什么技术人员搜索引擎营销经典案例
  • 买手表去哪个网站买是正品的ftp两个网站子域名的绑定
  • 单位建设网站申请信用卡怎么做不用数据库的网站
  • 积极推进网站建设物联网的含义是什么意思
  • 杭州网站优化平台pc站转换手机网站
  • 信誉好的品牌网站建设it运维是什么工作
  • 网站建设市区外贸搜索引擎
  • 导航网站开发网页布局设计类型
  • 阜蒙县建设镇官方网站wordpress 页面设置
  • 国外网站建设现状圣都家居装饰有限公司
  • 哪里做网站seo网页设计期末作业素材
  • 南昌优化网站分析怎样进行seo