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

上海网站建设心得网站怎么做外部链接

上海网站建设心得,网站怎么做外部链接,公司网站推广现状,做网站技术含量堆的特征 1.堆是一个完全二叉树 2.堆分为大堆和小堆。大堆:左右节点都小于根节点 小堆:左右节点都大于根节点 堆的应用:堆排序,topk问题 堆排序 堆排序的思路: 1.升序排序,建小堆。堆顶就是这个堆最小…

堆的特征

1.堆是一个完全二叉树

2.堆分为大堆和小堆。大堆:左右节点都小于根节点

小堆:左右节点都大于根节点

堆的应用:堆排序,topk问题

堆排序

堆排序的思路:

1.升序排序,建小堆。堆顶就是这个堆最小的数,堆顶和这个堆的最后一个数换位置,然后再把最后一个数取出,再pop这个数。就得到最小值。像这样每次取一个最小值,再删掉。依次把取出的数放在数组中,就得到升序排序了。

2.降序排序,建大堆。思路同升序一样。

上面说的是向下调整。向下调整就是每次取个数,由于和堆的最后一个数交换了位置,取出之后的二叉树需要调整一下才能成为一个堆。如果是大堆,就比较堆顶的和左右子树,大于它,堆顶和大的那个交换,这样层层交换下去。

如果一共有k层,最坏交换k次,如果是N个节点,就是log(N+1)次。

堆排序就是排N个数嘛,时间复杂度就是O(N*logN),空间复杂度就是O(N)。

向上调整:

向上调整可以应用于尾部插入数。调成一个大堆后停止。

对于一个随机数组,建大堆,向下调整法:

对于一个随机数组建小堆,向上调整法:

topk问题

如何从10000个数中取出最大的50个数?此问题也可以用于:内存空间不够,建堆数量有限,如何在大量的数据中取出前k个最大(小)的数。

答:先取出这些数据中前50(k)个建小堆,剩下的数和堆顶相比,遇到大于堆顶的数就直接替换掉堆顶的数。替换一次,小堆也要向下调整一次,保持它是一个小堆。这样比到最后一个数。就能保持这个小堆是这10000个数中最大的50个了。

如果是取出最小的50个数,那就是建大堆了。遇到比堆顶小的就替换、调整等。

二叉树的遍历

用链表建二叉树。

typedef struct BinaryNode
{int val;struct BinaryNode* left;struct BinaryNode* right;
}BTNode,*pBTNode;

如上述代码所示,树的一个节点存储三个值,一个是它的数据,一个是它指向的左子树指针,一个是指向右子树的指针。如果左子树和右子树都是空,就指向空。

这样由链表构建的一个二叉树。可以通过三种遍历方式来读取整个二叉树的数据。

前序:根----左子树----右子树

中序:左子树----根----右子树

后序:左子树----右子树----根

前中后序的命名是根据访问根的顺序来命名的。以前序遍历来举例:

http://www.yayakq.cn/news/237881/

相关文章:

  • 工信部 网站备案规定泸州房产网
  • paypal网站做外贸招商网官网
  • 付网站建设费会计分录中医院网站建设方案
  • 做网站欢迎页什么意思做电影收费网站
  • 小蘑菇网站建设下载短视频平台
  • 2022磁力链接搜索引擎推荐泰州seo管理
  • 网站设计 网站建设怎样做理财网站
  • 网站建设方案的企业自建网站系统
  • 南宁网站建设哪家公司实力强做网站推广复杂吗
  • 网站开发一般多钱使用模块化的网站
  • 站长工具seo综合查询黄全网搜索指数查询
  • 论坛网站建设公司网站建设推广视频
  • asp.net 网站设计湖南金科建设有限公司网站
  • 西安网站托管维护wordpress 自动 发微博
  • 个人无网站怎样做cps广告网页制作软件都有哪些
  • 做网站图标的软件青柠在线观看免费高清电视剧
  • 营销网站制作方法青岛网站开发公司电话
  • wordpress+站群软件做网站还是网页设计
  • 公司网站建设大概多少钱西安logo设计
  • 网页制作免费网站阿里云做电影网站吗
  • 建设网站的一般步骤搜索引擎排名优化技术
  • 静态网站开发的目的在谷歌上怎么做网页
  • 个人网站名称举例网站推广的企业
  • 医疗网站建设管理域名如何做网站
  • 美妆销售网站开发的目的女人说wordpress主题
  • 通州做网站公司宁波建筑公司有哪些
  • 如何做餐饮的网站公司做阿里巴巴网站要多少钱
  • 沧州商贸行业网站建设外贸网站模板推荐
  • 做一个网站系统多少钱自己做个网站怎么做
  • 做网站界面用的软件网站管理过程