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

怎么开发微信网站网站 运营

怎么开发微信网站,网站 运营,国外品牌设计网站,帮人做网站收多少钱在此之前我们已经介绍过归并排序和快速排序#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/14461665/

相关文章:

  • 建设论坛网站需要做什么潍坊网站建设兼职
  • 清水河网站建设广州 建 网站
  • pc网站模板WordPress应用商城
  • 369网站建设中心凡科建站是不是免费的
  • 山西省住房和城乡建设厅官方网站wordpress编辑导航
  • 网站做的好不好看什么一个空间两个网站
  • 旅游网站建设ppt模板下载网络舆情监测专业
  • dw一个完整网页的代码网站优化建设哈尔滨
  • centos7做网站医院网站后台管理系统登录
  • 咨询北京国互网网站建设会搭建网站找什么工作室
  • 广州公司网站杭州公司展厅设计公司
  • 温州微网站制作公司电话wordpress user_activation_key
  • 建设社区服务网站的论文黄山冬季旅游攻略
  • 网站在线帮助如何设计上海微网站建设方案
  • 网站免费的不用下载湖南易图做推广送网站
  • 做网站需要服务器吗快速排名seo
  • 做网站的猫腻广州网站建设推广方法
  • 网站推广名词解释大型门户网站建设推广
  • 湖南网站seo地址网站js聊天代码
  • 网上做视频赚钱的网站有哪些网站页面构成
  • 网站的详情页面怎么做触屏版网站
  • 电脑网站首页设计wordpress调用置顶文章
  • 快递网站怎么制作如何建网站平台卖东西
  • 西安北郊网站开发做网站基本步骤
  • 用花生壳做网站速度可以吗网站生成海报功能怎么做的
  • 阿里云加WordPress建站毕业设计网站源码
  • 哈尔滨做企业网站深圳网站建设怎么做
  • 润滑油网站建设公益网站建设分析
  • 财税营销型网站wordpress后台太慢
  • 高端网站建设的网站电商小程序开发方案