首页 > 其他分享 >堆排序优化版Dijkstra

堆排序优化版Dijkstra

时间:2022-11-10 20:47:54浏览次数:43  
标签:ver int 堆排序 Dijkstra heap 优化 dis

Dijkstra依旧基于贪心

用堆排序动态维护剩余点中dist[] 最小的点

堆排序优化Dijkstra算法 稀疏图,用邻接表,稠密也可以

 

void add(int a,int b,int c)
{
    e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;

void dijkstra()
{
    memset(dis,0x3f,sizeof dis);
    dis[1]=0;
    //定义生成小根堆
    priority_queue<PII ,vector<PII>, greater<PII>> heap;
    heap.push({0,1});  //距离,编号

    while(heap.size())
    {
        auto t=heap.top();//最小堆直接得到dist最小的节点
        heap.pop();

        int ver=t.second,distance=t.first;
        if(st[ver]) continue;

  st[ver] = true;


        for(int i=h[ver];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(dis[j]>distance+w[i])
            {
                dis[j]=distance+w[i];
                heap.push({dis[j],j});
            }
        } 
    }

}

标签:ver,int,堆排序,Dijkstra,heap,优化,dis
From: https://www.cnblogs.com/-Rebecca/p/16878686.html

相关文章

  • 朴素Dijkstra
     朴素dijkstra其实就是数据结构学的,很简单。 朴素dijkstra算法就是暴力枚举n个点,每次枚举找到离本次枚举点最近的点a,然后用点a来更新所有其他点的距离void d......
  • Android Study 之冷启动优化(解决启动短暂白屏or黑屏)
    LZ-Says:话说真正负责项目后才发现,想要软件越来越好,就要从细节抓问题,去解决问题,这样我们的软件才会越来越好~前言今天下班路上闲的无聊随便点了几个app,包括正在负责的几个项......
  • MySQL-数据库优化
     数据库优化: 数据库设计:1.字段选型:数字类型:tinyintsmalintmediumintintbigint字符类型:charvarchar事件类型:datedate......
  • .NET性能优化-是时候换个序列化协议了
    计算机单机性能一直受到摩尔定律的约束,随着移动互联网的兴趣,单机性能不足的瓶颈越来越明显,制约着整个行业的发展。不过我们虽然不能无止境的纵向扩容系统,但是我们可以分布......
  • 拓端数据tecdat|matlab代写使用Copula仿真优化市场风险
     使用Copula仿真优化市场风险 此示例演示了使用具有胖尾边缘分布的多变量copula模拟计算投资组合的风险价值和条件风险值(预期缺口)。然后使用模拟来计算最优风险收益组合的......
  • Linux 性能优化和内核观察 - CPU 篇(一)
    简介中央处理器(centralprocessingunit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。所有的计算机程序都运行在CPU之上,在大多数情况下CPU......
  • logback-spring.xml文件详解,日志优化
    依赖<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.3</version></dependency><dependency><groupId......
  • 浅谈性能优化之图片压缩、加载和格式选择
    原文链接:浅谈性能优化之图片压缩、加载和格式选择在认识图片优化前,我们先了解下【二进制位数】与【色彩呈现】的关系。二进制位数与色彩在计算机中,一般用二进制数来......
  • Webpack构建速度优化
    前言当我们的项目越来越大,webpack的配置项越来越多时,构建速度会越来越慢,所以我们需要通过一些配置来提高webpack的构建速度。目录缩小范围noParseIgnorePlugin优化......
  • ModStartBlog v6.1.0 界面显示优化,富文本升级
    系统介绍ModStart是一个基于Laravel模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。系统完全开源,基于Apache2.......