
常见算法整理
文章平均质量分 59
对面『胶己人』
This is my note, not my blog
展开
-
算法整理(一)排序
冒泡排序:void bubble_sort(vector<int> & nums) { int n = nums.size(); for (int i = 0; i < nums.size(); ++i)原创 2018-03-23 15:12:50 · 430 阅读 · 1 评论 -
算法整体(二)DFS,BFS,图的环问题,拓扑排序
图的存储结构主要分两种,一种是邻接矩阵,一种是邻接表。邻接矩阵是一个n * n 的数组,n为节点数目,经常表示为vector<vector<int> >&graph 邻接表其实也是类似,只不过如果两个节点之间没有边,那么不需要存储。DFS(深度优先遍历)基本思想:首先从图中某个顶点v0出发,访问此顶点,然后依次从v0相邻的顶点出发深度优先遍历,直至图中...原创 2018-04-19 16:59:43 · 1189 阅读 · 0 评论 -
算法整理(三)图中的路径问题
单源最短路BFS如果图中没有权值,直接用BFS就可以解决Dijkstra算法又称迪杰斯特拉算法,是一个经典的最短路径算法,主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止,使用了广度优先搜索解决赋权有向图的单源最短路径问题,算法最终得到一个最短路径树。时间复杂度为O(N^2)①先取一点v[0]作为起始点,初始化dis[i],d[i]的值为v[0]到其余点v[i]...原创 2018-04-20 12:43:11 · 633 阅读 · 0 评论 -
算法整理(四)全排序——字典序讲解
三种方法:全排序字典序讲解:【例】 如何得到346987521的下一个(即只比这个大一点点) 1,从尾部往前找第一个P(i-1) < P(i)的位置4 6 <- 9 <- 8 <- 7 <- 5 <- 2 <- 1 最终找到6是第一个变小的数字,记录下6的位置i-1 2,从i位置往后找到最后一个大于6的数4 6 ...原创 2018-04-20 14:24:36 · 1214 阅读 · 0 评论