项目简介
本项目致力于运用不同数据结构对经典的Dijkstra算法进行优化,以此提升该算法在处理大规模图数据时的效率。项目包含了基础Dijkstra算法的实现,以及运用堆、zkw线段树、分块等多种优化策略,并且通过实际测试对比各算法的性能。
项目的主要特性和功能
- 实现基础Dijkstra算法,可计算单源最短路径。
- 采用堆数据结构优化Dijkstra算法,降低查找最小距离节点的时间复杂度。
- 利用zkw线段树进一步优化Dijkstra算法,提高效率。
- 通过分块处理图数据,优化Dijkstra算法在稠密图上的表现。
- 在特定图结构(如树)上,使用点双联通分量算法优化Dijkstra算法。
- 提供数据生成工具,能生成不同类型的图数据,还可进行二进制压缩以优化数据读取效率。
安装使用步骤
1. 环境准备
- 操作系统:Windows 10
- 编译器:g++
- 开发环境:Visual Studio Code
2. 编译源码
在项目根目录下执行以下命令编译源码:
cmd
g++ -O2 file.cpp -o file.exe -Wl,--stack=1073741824
3. 运行程序
编译完成后,运行生成的可执行文件 file.exe
,程序会自动读取输入数据并输出最短路径结果。
4. 数据生成
使用 generate_data.cpp
生成测试数据:
```cmd
generate_data.exe
INPUTDATANAME: text(文件名) MODE: 0/1/2(模式) ```
5. 数据压缩
使用 gettxt.exe
压缩生成的文本数据:
```cmd
gettxt.exe
INPUTFILE: textinfo文件名(无后缀) DATA SUCCESSFULLY LOAD ```
6. 结果分析
程序运行后,结果将输出到 results
文件夹中,可通过 log.xlsx
文件对比不同算法的运行时间。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】