
算法学习
记录一些笔试中考到的算法
YMWM_
云端建图
HD地图数据编译
视觉导航完好性
展开
-
最小生成树基础算法
1 prim算法时间复杂度:O(结点数*结点数)集合定义为:已经在最小生成树中的结点核心做法:每次找到离集合最近的点,最终答案加上它的距离,用它去更新不在集合中的距离辅助数组:dist[N] 点到集合的距离st[N] 点是否在集合中2 kruskal算法时间复杂度:O(边数)集合定义:已经在最小生成树中的结点核心做法:按照边权从小到大遍历,如果这条边连接的两个结点之前不连通的话,选择这条边,并p[find(a)] = find(b),否则不选择。辅助数组:p[N] 结点的父节点i原创 2021-10-05 21:20:29 · 207 阅读 · 0 评论 -
dijkstra算法C++实现
dijkstra算法C++实现原创 2021-04-07 22:16:53 · 12619 阅读 · 8 评论 -
01背包问题模板
题目描述:背包容积为m,物品总数为n,每个物品具有相应的体积v和价值w,每个物品只有一件,问背包能装物体的最大价值。代码如下#include <iostream>using namespace std;const int N = 1010;int f[N];//f[i]表示体积小于等于i的背包能装物体的最大价值int m, n;//m表示总体积,n表示物品数量int main(){ cin >> m >> n;原创 2021-03-19 13:26:29 · 223 阅读 · 0 评论 -
快速排序算法模板
函数声明为viod QS(int a[], int l , int r),其中第一个参数表示一维数组,第二个参数表示数组中要排序的范围的左边界,第三个参数表示数组中要排序范围的右边界。注意左右边界都可以取到,比如数组a内容为{1, 3, 5, 7, 10, 90, 33},l = 0,r = 6,表示对数组中下标从0到6这七个数进行排序。#include <iostream>using namespace std;int a[100010];void QS(int a[], int原创 2020-11-24 21:24:08 · 260 阅读 · 0 评论