做了一道跑大数据的最短路挂了,基于vector的二维模拟邻接表实现Dijkstra算法(*【模板】)

代码:

#include <stdio.h>
#include <string.h>
#include <string>
#include <vector>
#include <algorithm>
#define INF 2100000000

using namespace std;
int n;
struct node
{
    int dd;
    int w;
}t;
vector<node>q[500001];
unsigned int dis[500001];
bool vis[500001];

void Dijkstra(int s, int e)
{

    int i, j;
    memset(vis, false, sizeof(vis));

    for(i=0; i<=n; i++)
    {
        dis[i] = INF;
    }

    int len=q[s].size();
    for(i=0; i<len; i++)
    {
        if(q[s][i].w < dis[q[s][i].dd] )
            dis[q[s][i].dd]=q[s][i].w; //从起点开始的dis数组更新
    }
    vis[s]=true;

    for(int k=0; k<n-1; k++)
    {
        int pos, mm=INF;
        for(i=1; i<=n; i++)
        {
            if( !vis[i] && dis[i]<mm )
            {//当前节点未被访问过且权值较小
                mm=dis[i]; pos=i;
            }
        }
        vis[pos]=true;

        //再次更新dis数组
        len=q[pos].size();
        for(j=0; j<len; j++)
        {
            if( !vis[q[pos][j].dd] && dis[ q[pos][j].dd ]>q[pos][j].w+dis[pos] )
                dis[q[pos][j].dd ] = q[pos][j].w + dis[pos];
        }
    }
    printf("%d\n", dis[e] );
}

int main()
{
    int m;
    int i;
    int u,v, w;
    int s, e;

    while(scanf("%d %d", &n, &m)!=EOF)
    {
        for(i=0; i<=n; i++)
            q[i].clear();
        for(i=0; i<m; i++)
        {
            scanf("%d %d %d", &u, &v, &w);
            t.dd=v; t.w=w;
            q[u].push_back(t);
            t.dd=u; t.w=w;
            q[v].push_back(t);
        }
        scanf("%d %d", &s, &e);
        Dijkstra(s, e);
    }
    return 0;
}
时间: 2024-10-12 17:39:09

做了一道跑大数据的最短路挂了,基于vector的二维模拟邻接表实现Dijkstra算法(*【模板】)的相关文章

阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景

1月10日,做一款优秀大数据引擎,要找准重点解决的业务场景.这是我们送给开发者的第15个感悟. 沐远在社区分享了他的博文,<使用spark分析云HBase的数据><hive数据导入云hbase>,粉丝评论说请收下我的膝盖. 李伟(沐远)阿里云数据库技术专家专注大数据分布式计算数据库领域, 研发Spark及自主研发内存计算,目前为广大公有云用户提供专业的云HBase数据库及计算服务. 做一款优秀大数据引擎,要找准重点解决的业务场景,打磨一套易用的API,构架与上下游联动的生态. 推荐

大数据能做什么,为什么学习大数据

Hadoop和大数据是这两年最火的词儿们之一,越来越多的公司对这个东西感兴趣,但是我接触到的大多数公司里的人,无论是技术人员还是老板.都不知道怎么能把这些东西用于改善自己公司的业务.在解答的过程中,提炼出几个要点,记录一下. 大数据和云是不是一回事? 这是最容易混淆的概念之一,我个人认为这是两回事,云服务,无论是云主机还是云存储还是云的其他应用,都是向用户提供一个接口,但这个接口的后端是虚拟机技术,或者分布式存储技术,或者其他分布式计算技术等等.简而言之,云的概念就是我向你提供服务,而你不需要关

说说这些年做的云计算和大数据项目

入行十几年了,做了不少分布计算.并行计算.内存计算.海量数据处理的项目,按照现在的分类,这些都属于云计算/大数据范畴.今天说说我做过的其中三个项目,只三个.         第一个是我们接到的视频分享网站的视频转码的订单,网站名字就不说了,有替人宣传嫌疑.他们情况是这样,视频网站的内容用MP4格式在网页上播放,但是上传的格式多种多样,我们必须把这些视频统一转换成MP4格式,视频转码的工作想必大家都在自己的电脑上试过,通常一个100M左右的视频转码需要20分钟以上(CPU是Pentium IV).

谈谈这些年做的云计算和大数据项目

入行十几年,做了不少分布计算.并行计算.海量数据处理的项目,按照现在的讲法,这些都属于云计算/大数据范畴.今天说说我做过的其中三个项目,只三个. 第一个是我们接到的视频分享网站的视频转码的订单,网站名字就不说了,有替人宣传嫌疑.他们情况是这样,视频网站的内容用MP4格式在网页上播放,但是上传的格式多种多样,我们必须把这些视频统一转换成MP4格式,视频转码的工作想必大家都在自己的电脑上试过,通常一个100M左右的视频转码需要20分钟以上(CPU是Pentium IV).为了提高转码效率,让用户以接

做了五年大数据开发工程师总结的的大数据学习路线

先扯一下大数据的4V特征: 数据量大,TB->PB 数据类型繁多,结构化.非结构化文本.日志.视频.图片.地理位置等: 商业价值高,但是这种价值需要在海量数据之上,通过数据分析与机器学习更快速的挖掘出来: 处理时效性高,海量数据的处理需求不再局限在离线计算当中. 现如今,正式为了应对大数据的这几个特点,开源的大数据框架越来越多,越来越强,先列举一些常见的: 文件存储:Hadoop HDFS.Tachyon.KFS 离线计算:Hadoop MapReduce.Spark 流式.实时计算:Storm

大数据能做什么——无所不能的大数据

大数据能够用来做什么?当前,大数据分析技术已经在很多领域实现了应用,赛事预测.流感预测.商业分析.用户行为分析……这些人们曾经无法实现的功能和应用,正在大数据的帮助下成为现实.下面,就来看看大数据带来的新奇应用吧! 恋爱预测 大数据可以对人们的行为进行分析,从而得出一些结论.或许在你不愿意承认自己已经坠入爱河的时候,大数据就已经猜透了你的心思,知道你即将展开一段恋情. 目前,已经有一些企业和技术人员开始利用大数据技术进行恋爱预测.据国外媒体报道,Facebook的数据科学家Carlos Diuk

提升大数据数据分析性能的方法及技术(二)

上部分链接 致谢:因为我的文章之前是在word中写的,贴过来很多用mathtype编辑的公式无法贴过来,之前也没有经验. 参考http://www.cnblogs.com/haore147/p/3629895.html,一文完成公式的迁移. 同时,说一句,word中用mathtype写的公式用ALT+\可以转换成对应的latex语法公式. 5 数据流过滤技术 信息大爆炸时代的到来使得针对数据进行深层次的挖掘成为数据处理的核心任务[21].但是在上面已经提到了,源数据的来源和数据的组成格式都是各种

(原创)大数据时代:数据分析之基于微软案例数据库数据挖掘案例知识点总结

随着大数据时代的到来,数据挖掘的重要性就变得显而易见,几种作为最低层的简单的数据挖掘算法,现在利用微软数据案例库做一个简要总结. 应用场景介绍 其实数据挖掘应用的场景无处不在,很多的环境都会应用到数据挖掘,之前我们没有应用是因为还没有学会利用数据,或者说还没有体会到数据的重要性,现在随着IT行业中大数据时代的到来,让我一起去拥抱大数据,闲言少叙,此处我们就列举一个最简单的场景,一个销售厂商根据以往的销售记录单,通过数据挖掘技术预测出一份可能会购买该厂商产品的客户名单,我相信这也是很多销售机构想要

零基础学习云计算及大数据DBA集群架构师【企业级运维技术及实践项目2015年1月27日周三】

Nginx 基于 ip 的虚拟主机配置 { #serverb (1)/etc/nginx/conf.d/* [[email protected] conf.d]# vim ip.conf server { listen 192.168.1.88:80; root 88.com; index index.html; } server { listen 192.168.1.87:80; root 87.com; index index.html; } [[email protected] ~]# i