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

网页制作教程用什么软件搜索引擎优化的缺点包括

网页制作教程用什么软件,搜索引擎优化的缺点包括,外贸网站建设收益,dede手机网站标签1. 简介 堆排序利用的是堆序性,最小堆进行从大到小的排序。 先建初堆,保证堆序性。将堆顶元素与最后一个元素交换, 就将当前堆中的最大(小)的元素放到了最后后。堆大小递减,再重新调整堆选出第二大,重复上述过程。 2…

1. 简介

堆排序利用的是堆序性,最小堆进行从大到小的排序。
先建初堆,保证堆序性。将堆顶元素与最后一个元素交换,
就将当前堆中的最大(小)的元素放到了最后后。堆大小递减,再重新调整堆选出第二大,重复上述过程。

2. 实现

2.1 建初堆

由于堆具有递归性,即以根节点的所有子树都是一个堆。

我们需要从下往上调整堆。即从完全二叉树的最大非叶子节点开始调整堆,直到根节点。

这样才能保证堆序性。

对于数组3,4,1,2,5 ,建初堆的过程。

在这里插入图片描述

  • 代码
template<typename T>
void adj_heap(std::vector<T> &arr,std::size_t rt, std::size_t bd) {T v = arr[rt];std::size_t child;std::size_t i;for (i = rt; i < bd; i = child) {child = i * 2 + 1;if ( child + 1 < bd && arr[child + 1] < arr[child])++child;if (child >= bd || v <= arr[child] ) {break;}else{arr[i] = arr[child];}}arr[i] = v;
}template<typename T>
void make_orig_heap(std::vector<T> &arr, std::size_t sz) {for (std::size_t i = sz/2 - 1; i != -1; --i){adj_heap(arr, i, sz);}
}
2.2 堆排序

建立初始堆后,我们就确定了最小(大)的元素。

将该元素与最后位置交换,并将堆大小 - 1。

我们就又得到了一个未调整的堆。我们重复调整堆和交换元素的过程,直到最后堆大小为1。

所以,最小堆进行排序形成的序列是从大到小。
过程如图
在这里插入图片描述

  • 代码
template<typename T>
void heap_sort(std::vector<T> &arr, std::size_t sz) {if ( 0 == sz)return ;make_orig_heap(arr, sz);for (std::size_t i = sz - 1; i > 0; --i) {T last = arr[i];arr[i] = arr[0];arr[0] = last;adj_heap(arr, 0, i);}}
http://www.dinnco.com/news/48219.html

相关文章:

  • 网站建设合同附件格式百度网盘登录入口 网页
  • 专业提供网站建设服务国内重大新闻
  • 天津开发区网站设计公司站外seo推广
  • 昆山高端网站建设开发seo快排
  • c2c网站 多钱百度下载软件
  • 网站404报错百度引擎
  • ajax jsp网站开发从入门到精通磁力天堂最佳搜索引擎入口
  • 百度网站风格网络推广的工作好做吗
  • 青岛市城乡建设委员会官网网站站长工具友链查询
  • 网站做系统外链网盘网站
  • 四川哪家网站做的最好电商运营seo
  • 发不了软文的网站怎么做关键词优化设计案例网
  • 欧美做暖网站无锡哪里有做网站的
  • wordpress无法创建数据库电脑优化大师官方免费下载
  • 外国炫酷网站seo岗位
  • 网站建设业务员seo优化方法有哪些
  • 技术支持东莞网站建设机械新乡网站优化公司
  • 阿里巴巴黄页网站第三方平台推广
  • 什么好的网站学做食品交换友链要注意什么
  • 做网站 java net抖音关键词排名软件
  • 网站建设所需基本资料天门网站建设
  • ipad 设计网站seo接单
  • 有利于优化的网站建设网页制作教程书籍
  • 昆山企业做网站简述如何对网站进行推广
  • 网站在线订单系统怎么做外包公司软件开发
  • 福州网站建设印秀aso优化师主要是干嘛的
  • 做机械最好的b2b网站合肥seo推广培训班
  • 泉州网站建设推广网络科技公司
  • 上海网站建设好处windows优化大师会员兑换码
  • php微信微网站怎么做国内搜索引擎排名第一的是