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

建设网站赚钱猛兽领主网站建设在电子商务中意义

建设网站赚钱猛兽领主,网站建设在电子商务中意义,聚名网官网登录,注册做网站的公司有哪些什么是最小堆: 堆是一种二叉树,最小堆中所有父亲节点的值都要比自己的子节点的值要小。而根节点称为堆顶。根据定义我们可以得到堆中最小元素就在堆顶。(节点左上角是编号,内部是元素值) 假设该图中的堆顶元素是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.dtcms.com/wzjs/569176.html

相关文章:

  • 四川省建设工程质量安全协会网站手机微信网页版登录入口
  • 福建省住房与城乡建设厅网站北京网站备案地址
  • seo外包优化网站山东关键词优化推广
  • 广州市专业网站建设影视logo设计制作器
  • 电子商务网站开发目的和意义企业邮箱是干嘛用的
  • 深圳汇鑫科技网站建设dw网站模板
  • xp asp 网站建设黑龙江建设网三类人员
  • 做网站程序什么是网络设计方案
  • 南宁手机平台网站建设电脑优化是什么意思
  • 网站手机端做app开发工具成全视频免费高清观看在线韩剧
  • 大连做网站公司怎么做网页
  • 校园网站建设费用在哪人网站要以接it项目做
  • 网站风格确认书网站开发实训心得800
  • 网站改版 重定向wordpress mega
  • 国外网站流量php充值网站源码
  • 高端营销网站定制房产中介 网站模板
  • 网站建站华为云怎么搭建购物网站
  • 建站平台加盟建设企业网站企业网上银行登录官网下载
  • 网站开发的过程防控措施持续优化
  • 商丘做网站建设国外网站建设软件有哪些
  • 成都网站优化平台wordpress悬浮
  • 建设银行官方网站首页企业网络科技公司起名字大全免费
  • 长沙高端网站建设服务在wordpress中图标
  • 运营网站赚钱企业网站建设发展平台
  • 网站想举报怎么做朗域装饰公司怎么样
  • 加强学校就业信息网站建设和管理线上注册公司入口
  • 北仑静态网站建设网站缓存优化怎么做
  • 旅游网站建设的组织性购物型网站怎么快速被百度收录
  • 电子商务网站开发规划腾讯云建立wordpress
  • 影视类网站建设莱芜都市网最新招聘信息