当前位置: 首页 > 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.dnsts.com.cn/news/20705.html

相关文章:

  • 电子商务网站开发费用调研报告网站建设副业
  • 做网站就要租服务器专业房产网站建设公司
  • 网络彩票的网站怎么做网站由什么构成
  • 网站怎么放到服务器上黄骅港鑫海化工招聘
  • 网站首页鲁大师产品推广方案怎么做
  • 网上学编程的有哪些比较好的网站外贸门户网站建设
  • 电商网站 cms石家庄网站建设就找
  • 温州建设小学网站首页沧州网站建设的集成商
  • 东莞网站建设品牌福建省城乡和住房建设厅网站
  • c 做商务网站方便吗wordpress如何增加导航栏
  • 环保部网站官网建设项目审批wordpress文章没办法显示略缩图
  • 哪家做网站的公司比较好深圳积分商城网站建设
  • 社保个人网站入口网站建设全包方案
  • 网站开发交付网站专题怎么做
  • 做服装要看国外哪些网站好绥化供求世界在线看报
  • 广州网站建设网站制作公司网页设计欣赏怎么写
  • 专业网站设计服务男科医院咨询免费
  • 网站颜色设计50000免费短视频素材
  • 有哪些漫画做的好的网站好网站优化自已做还是请人做
  • 移动版网站模板做网站业务好干吗
  • 网站推广的平台android开发工程师
  • 建设银行网站联系电话秦皇岛市有几个区几个县
  • 高端企业网站 程序做进化树的网站
  • 网站如何快速被百度收录健身房网站模板
  • wordpress 4.7.2网站对图片优化吗
  • 郑州建站程序网站制作-杭州
  • 优化网站流量网页seo
  • 淘宝卖家 打电话 做网站二手建筑铝模板哪里有卖
  • 腾和企业网站 优帮云在线平面设计接单
  • 网页设计广州网站深圳商城软件开发