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

免费手机建站网站网站seo外链建设

免费手机建站网站,网站seo外链建设,微信推送在哪个网站做,大学生怎么做网站文章目录 前言一、堆排代码一、计算使用向上调整法建堆的时间复杂度二、计算使用向下调整法插入的时间复杂度总结 前言 在博主的上一篇博客堆排(链接在这里点击即可)的总结中提出啦使用向下调整法建堆比使用向上调整法建堆更好#xff0c;是因为使用向上调整法建堆的时间复杂… 文章目录 前言一、堆排代码一、计算使用向上调整法建堆的时间复杂度二、计算使用向下调整法插入的时间复杂度总结 前言 在博主的上一篇博客堆排(链接在这里点击即可)的总结中提出啦使用向下调整法建堆比使用向上调整法建堆更好是因为使用向上调整法建堆的时间复杂度为O(n*logn)使用向下调整法建堆的时间复杂度为O(n)。接下来博主就教大家如何计算它们的时间复杂度。 一、堆排代码 void Swap(int* x, int* y) {int tmp *x;*x *y;*y tmp; } //向上调整法 void AdjustUp(HPDataType* arr, int child) {int parent (child - 1) / 2;while (child 0)//不需要等于child只要走到根节点的位置根节点没有父节点不需要交换{if (arr[child] arr[parent])//若孩子结点比父结点小则交换{Swap(arr[parent], arr[child]);child parent;parent (child - 1) / 2;}else{break;}} } //向下调整法 void AdjustDown(HPDataType* arr, int parent, int n) {int child parent * 2 1;//左孩子while (child n){//找左右孩子中找最小的if (child 1 n arr[child] arr[child 1]){child;}if (arr[child] arr[parent]){Swap(arr[child], arr[parent]);parent child;child parent * 2 1;}else{break;}} } //堆排 void HeapSort(int* arr, int n) {//向上调整法建堆for (int i 0; i n; i){AdjustUp(arr, i);}//向下调整算法建堆//for (int i (n-1-1)/2; i 0; i--)//{// AdjustDown(arr, i , n);//}//循环将堆顶数据跟最后位置的数据进行交换int end n - 1;while (end 0){Swap(arr[0], arr[end]);AdjustDown(arr, 0, end);end--;} } 一、计算使用向上调整法建堆的时间复杂度 for (int i 0; i n; i) {AdjustUp(arr, i); }第1层20个结点最多需要向上移动0次。第2层21个结点最多需要向下移动1次。第3层22个结点最多需要向上移动2次。…第h-1层2h-2个结点最多需要向上移动h-2次。第h层2h-1个结点最多需要向上移动h-1次。 所以最多移动的次数总和为 (1) T(h) 20(0)21(1)22(2)…2h-2(h-2)2h-1(h-1) (2) 2T(h) 21(0)22(1)23(2)…2h-1(h-2)2h(h-1) (2)-(1) 得 T(h) -(212223…2h-22h-12h-1)2hh 使用高中阶段学过的等比数列求和公式S a1(1-qn)/1-q可得 T(h) 2(1-2h)2hh 22h(h-2) 再根据二叉树的性质n 2h-1h log2(n1)可得 T(n) 2 (n1)(log2(n1)-2) (n1)log2(n1)-2n 所以向上调整法建堆的时间复杂度为O(logn*n) 二、计算使用向下调整法插入的时间复杂度 for (int i (n-1-1)/2; i 0; i--) {AdjustDown(arr, i , n); }第1层20个结点最多需要向下移动h-1次。第2层21个结点最多需要向下移动h-2次。第3层22个结点最多需要向下移动h-3次。…第h-1层2h-2个结点最多需要向下移动1次。第h层2h-1个结点最多需要向下移动0次。 所以最多移动的次数总和为 (1) T(h) 20(h-1)21(h-2)22(h-3)…2h-2(1) (2) 2T(h) 21(h-1)22(h-2)23(h-3)…2h-1(1) (2)-(1) 得 T(h) 212223…2h-22h-1-20(h-1) T(h) 20 212223…2h-22h-1-h 使用高中阶段学过的等比数列求和公式S a1(1-qn)/1-q可得 T(h) 2h-1-h 再根据满二叉树的性质n 2h-1h log2(n1)可得 T(n) n-log2(n1)* 所以向下调整法建堆的时间复杂度为O(n) 总结 通过这篇博客相信柚柚们已经清楚向下调整法建堆和向上调整法建堆的时间复杂度怎么计算啦后期博主还会更新有关数据结构的博客感兴趣的柚柚们可以关注博主喔~
http://www.hkea.cn/news/14260925/

相关文章:

  • 仿腾讯游戏网站源码网站怎么注册域名
  • 北京app制作开发公司seo站长助手
  • 提供温州手机网站制作哪家好wordpress修改管理密码错误
  • 呼和浩特建设工程安全管理网站wordpress主题转hexo
  • 广西建设安全员证查询网站如何建立公司自己的网站
  • 网站改版 目的wordpress建站更换图片
  • 用自己的手机做网站wordpress输出用户中心链接
  • 如何做英文网站推广做网站有未来吗
  • 济南软月建站淘宝优惠券网站建设
  • 商标设计怎么收费seo深度优化服务
  • 南江移动网站建设网站设计学校
  • 做kegg通路富集的网站杭州网站网络 科技公司
  • 做网站之前要备案是什么意思招聘网有哪些网站比较好
  • 网站建设企业网站界面设计网站的建设外链优化
  • 做网站的目的和意义江苏省昆山市网站制作
  • 高邮市建设局网站首页郑州做网站的外包公司有哪些
  • 吉安网站制作公司排名怎么让网站收录在google
  • 企业网站建设哪家最好那个网站做毕业设计
  • 心悦每周免做卡网站个人制作网站的流程
  • 湛江建设工程交易中心网站阿里云万网域名购买
  • qq网站登录入口最新钓鱼网站源码
  • 网站制作介绍营销模式有哪些 新型
  • 用帝国cms做网站天将建设集团有限公司网站
  • 校园时空网站建设分析怎么样做网站赚钱吗
  • 作文大全网站免费网站模板 html
  • 注册网站流程及资料设计素材网站源码
  • 网站内页产品做跳转旅游网站建设系统
  • 外贸企业网站建设方案网站服务器 电信
  • 西安建设规划局网站wordpress 仿36氪
  • 做网站在哪里接活西宁哪家网络公司做网站