摘要: Dijkstra算法采用的是一种贪心的策略,声明一个数组dist来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,初始时,原点 s 的路径权重被赋为 0 (dist[s] = 0)。若对于顶点 s 存在能直接到达的边(s,m),则把dist[m]设为w(s, m),同时把所 阅读全文
posted @ 2021-06-09 21:18 hexiang| 阅读(116) 评论(0) 推荐(0)
摘要: 1.什么是内存抖动? 页面的频繁更换,导致整个系统效率急剧下降,这个现象称为内存抖动。 抖动一般是内存分配算法不好,内存太小引或者程序的算法不佳引起的页面频繁从内存调入调出。 阅读全文
posted @ 2021-06-09 18:53 hexiang| 阅读(85) 评论(0) 推荐(0)
摘要: 首先利用结构体存边,排序(快排,或者建堆),遍历所有边,利用并查集判断边两个端点是否在同一个集合中。 acwing-859 #include<bits/stdc++.h> using namespace std; const int N = 100010; struct edge{ int a, b 阅读全文
posted @ 2021-06-09 18:50 hexiang| 阅读(47) 评论(0) 推荐(0)
摘要: bfs(宽度优先搜索)利用队列 void BFS(Graph G, int num) //num为从该点开始进行搜索 { queue<int>Queue; cout << num <<" "; visit[num] = 1; Queue.push(num); //访问完该点后入队列 while (! 阅读全文
posted @ 2021-06-09 18:45 hexiang| 阅读(162) 评论(0) 推荐(0)
摘要: 分析:因为前序(根左右)最先出现的总是根结点,所以令root为前序中当前的根结点下标(并且同时把一棵树分为左子树和右子树)。start为当前需要打印的子树在中序中的最左边的下标,end为当前需要打印的子树在中序中最右边的下标。递归打印这棵树的后序,递归出口为start > end。i为root所表示 阅读全文
posted @ 2021-06-09 18:40 hexiang| 阅读(389) 评论(0) 推荐(0)