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

伴奏网站防盗是怎么做的免费关键词挖掘网站

伴奏网站防盗是怎么做的,免费关键词挖掘网站,郴房网,坪地网站建设什么是最小堆: 堆是一种二叉树,最小堆中所有父亲节点的值都要比自己的子节点的值要小。而根节点称为堆顶。根据定义我们可以得到堆中最小元素就在堆顶。(节点左上角是编号,内部是元素值) 假设该图中的堆顶元素是24呢&a…

什么是最小堆:

        堆是一种二叉树,最小堆中所有父亲节点的值都要比自己的子节点的值要小。而根节点称为堆顶。根据定义我们可以得到堆中最小元素就在堆顶。(节点左上角是编号,内部是元素值)

        


         假设该图中的堆顶元素是24呢?显然不符合最小堆的定义,那么我们要怎么处理呢?

        假设7号节点的值是1呢?显然不符合最小堆的定义,那么我们要怎么处理呢?

如何调整堆:

        

        在该图中我们先让 24 与左孩子的值比较发现 左孩子比自己小,再看右孩子,发现右孩子比左孩子还小,于是1号节点值和3号节点值交换。然后再看3号节点的左孩子和右孩子值都比 24 小,但是6号节点值更小,所以3号节点值24和6号节点值交换,完成最小堆的向下调整。

        

        该图我们先让7号节点与3号节点比较,发现5 比 1大 然后交换两个节点的值,3号节点再和1号节点比较发现2比1大,然后交换节点的值,完成了最小堆的向上调整。

        如果忘记了怎么存储二叉树,参考这篇博文:树------二叉树-CSDN博客

具体代码:

void down(int i)//i为需要调整的节点编号。
{
    int t, flag = 0;

    while (2 * i <= n && flag == 0)//判断当前节点是否有左子树。
    {
        if (arr[i] > arr[2 * i])
            t = 2 * i;
        else
            t = i;//如果左子树比本节点小,记录该节点下标,否则记录该节点下标。
        if (2 * i + 1 <= n)//如果有右子树。
            if (arr[2 * i + 1] < arr[t])
                t = 2 * i + 1;//确定最终交换值的节点下标。

        if (t != i)
        {
            swap(i, t);
            i = t;
        }//如果最终交换值的下标不等于本节点,证明需要交换值。
        else
            flag = 1;//如果没有交换,证明本节点调整完毕,退出循环。
    }
}

void up(int i)//向上调整函数。
{
    int flag = 0;

    if (i == 1)//如果已经在堆顶,不需要调整。
        return;

    while (i != 1 && flag == 0)
    {
        if (arr[i] < arr[i / 2])
            swap(i, i / 2);//如果本节点小于父亲节点,交换值,负责退出循环。
        else
            flag = 1;

        i /= 2;//节点编号调整为父亲节点。
    }
}

void swap(int i, int j)
{
    int k = arr[i];
    arr[i] = arr[j];
    arr[j] = k;
}//交换函数。

注意点:

        最大堆和最小堆差不多,最大堆定义是任何父亲节点都要比子节点要大,至于如何调整,可以改变以上代码的大小判断符号。

        另外关于昨天的 Bellman-Ford算法的优化的答案博文因为某些原因今天无法更新(其实是我忘记写了。。。。。。),明天再为大家呈上。该算法博文链接如下。

        图论------贝尔曼-福德(Bellman-Ford)算法-CSDN博客

http://www.hrbkazy.com/news/4467.html

相关文章:

  • 新疆做网站首选seo的工具有哪些
  • 怎么做网站版面分析搜索引擎优化seo公司
  • 网站开发制作的流程龙岗网站推广
  • sinaappengine wordpress深圳快速seo排名优化
  • 深圳福田网站建设公司推广普通话黑板报
  • 网站群集建设搜索广告是什么意思
  • 淮北市建设局网站军事新闻最新消息今天
  • 做网站价位西安seo王
  • 西安营销型网站制作天津百度seo排名优化软件
  • 手机手机端网站建设免费网站制作软件平台
  • 广州企业网站建设韩国电视剧
  • 如何用ps做网站首页的图片黄页推广引流
  • 全国企业查询系统官网无锡整站百度快照优化
  • 信誉好的集团网站建设seo技术培训教程视频
  • 邢台做wap网站价格数据分析师35岁以后怎么办
  • 艺术网站源码山西seo谷歌关键词优化工具
  • 有没有个人做的网站赚流量费常州网络推广平台
  • 网页设计与网站建设案例课堂网站推广的6个方法是什么
  • 网站开发平台自动优化app
  • wap网站制作哪家好营销策划公司是干什么的
  • 石排镇专业建站公司广州seo优化公司排名
  • 腾宁科技做网站399元全包网络推广有哪些
  • 手机商店app下载山西seo和网络推广
  • 常州微网站建设2023年的新闻十条
  • 绵阳网站建设多少钱百度竞价推广计划
  • 网站建设制作收费视频号推广方法
  • 只能在线观看的电影网站咋么做长沙网络推广平台
  • 株洲网页seo与sem的区别和联系
  • wap网站不流行百度搜索页面
  • 焦作市网站建设科技软文营销什么意思