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

中国空间站建造历程中卫网站设计在哪里

中国空间站建造历程,中卫网站设计在哪里,提升学历一般多少钱,WordPress 页码固定在此之前我们已经介绍过归并排序和快速排序#xff1a;浅谈归并排序与快速排序#xff0c;但其中的实现都是基于递归的。本文将重新温故这两种算法并给出基于迭代的实现。 目录 1. 归并排序1.1 基于递归1.2 基于迭代 2. 快速排序2.1 基于递归2.2 基于迭代 1. 归并排序 1.1 基…在此之前我们已经介绍过归并排序和快速排序浅谈归并排序与快速排序但其中的实现都是基于递归的。本文将重新温故这两种算法并给出基于迭代的实现。 目录 1. 归并排序1.1 基于递归1.2 基于迭代 2. 快速排序2.1 基于递归2.2 基于迭代 1. 归并排序 1.1 基于递归 归并排序的核心是二路归并实现二路归并需要一个额外的辅助数组因此空间复杂度是 O ( n ) O(n) O(n)。 void merge(vectorint a, int l, int mid, int r, vectorint tmp) {int i l, j mid 1, k l;while (i mid j r) {if (a[i] a[j]) tmp[k] a[i];else tmp[k] a[j];}while (i mid) tmp[k] a[i];while (j r) tmp[k] a[j];for (int i l; i r; i) a[i] tmp[i]; }该函数会对数组 a 的 [l, mid] 和 [mid 1, r] 两部分进行二路归并其中辅助数组 tmp 的大小与 a 相同。 有了 merge 函数我们就可以很方便的实现归并排序了 void merge_sort(vectorint a, int l, int r, vectorint tmp) {if (l r) return;int mid l r 1;merge_sort(a, l, mid, tmp), merge_sort(a, mid 1, r, tmp);merge(a, l, mid, r, tmp); }1.2 基于迭代 很明显基于递归的实现是自顶向下的而基于迭代的实现是自底向上的。 我们可以先枚举区间长度再枚举区间左端点。一开始每个区间的长度是 1 1 1我们每次对相邻的两个区间进行二路归并每归并一次区间的长度就是原先的两倍所以枚举区间长度时变量 len 的更新方式为 len * 2。 对于区间左端点每合并完两个区间后左端点就要更新成下下个区间如下图所示 还需保证 mid n - 1即 l n - len。 void merge_sort(vectorint a) {int n a.size();vectorint tmp(n);for (int len 1; len n; len * 2) {for (int l 0; l n - len; l 2 * len) {int mid l len - 1;int r min(l 2 * len - 1, n - 1);merge(a, l, mid, r, tmp);}} }归并排序的时间复杂度是 O ( n log ⁡ n ) O(n\log n) O(nlogn)无论是递归还是迭代空间复杂度都是 O ( n ) O(n) O(n)。 2. 快速排序 2.1 基于递归 void quick_sort(vectorint a, int l, int r) {if (l r) return;int mid l r 1;int i l - 1, j r 1, x a[mid];while (i j) {while (a[i] x);while (a[--j] x);if (i j) swap(a[i], a[j]);}quick_sort(a, l, j), quick_sort(a, j 1, r); }2.2 基于迭代 void quick_sort(vectorint a, int l, int r) {if (l r) return;stackpairint, int stk;stk.emplace(l, r);while (!stk.empty()) {auto [l, r] stk.top();stk.pop();if (l r) {int mid l r 1;int i l - 1, j r 1, x a[mid];while (i j) {while (a[i] x);while (a[--j] x);if (i j) swap(a[i], a[j]);}stk.emplace(l, j);stk.emplace(j 1, r);}} }时间复杂度是 O ( n log ⁡ n ) O(n\log n) O(nlogn)空间复杂度是 O ( log ⁡ n ) O(\log n) O(logn)。
http://www.hkea.cn/news/14341737/

相关文章:

  • 山东省双体系建设网站合肥瑶海区天气
  • 厦门网站建设哪家不错推荐资讯网站开发需求
  • vs2010 iis 网站开发小程序开发 上海
  • 专门做网站的公司叫什么大数据网站
  • 哪个网站做图书广告好彩票网站代理怎么做
  • 网站设计主色学校wordpress添加微信
  • 建设网站方面的证书动漫制作专业介绍心得体会200字
  • 温州网站优化指导天津快速关键词排名
  • 益阳北京网站建设怎么建设公司小程序网站
  • 怎样保证网站的安全沈阳专业的网站设计公司
  • 青岛seo网站排名优化厦门软件园网站开发
  • 建网站赚钱方法外贸推广代理
  • 宁波北京网站建设wordpress 表单展示
  • 网站后台管理系统怎么进网站托管是什么意思
  • 网站建设与网站维护wordpress耗时
  • 保险网站大全wordpress网页加密
  • 深圳网站搜索优化工具建设厅网站总经济师是干什么的
  • 上市公司网站建设评价城厢区住房和城乡建设局网站
  • 兴平网站建设网站开发选定制还是模板
  • 学做网站哪里学福州做网站开发需要多少钱
  • 网站建设上传视频教程wordpress评测
  • 昆明网站排名优化价格电子商务这个专业好吗
  • 汽车网站建设上海网站建站多少钱
  • 无锡本地模板网站建设产品个人主页自助建站
  • 网站优化一般怎么做万创网站建设
  • 大连建网站小程序注册后怎么使用
  • 论坛备案网站名称组建一个公司网络方案
  • 如何建立内外网网站电子 公司 网站建设
  • 程序员培训班上海关键词排名优化价格
  • 电商网站建设选迅法网定制网络开发软件