随笔分类 - 数据结构与算法
摘要:最小生成树Prim算法: 切分定理 在介绍Prim算法之前,我们现在弄明白两个概念,(横切边与切分定理) 思路分析 因此我们的算法不仅要对每个节点进行标记是否访问过,同时还需要一种数据结构来随时添加元素,并且取出最小边,当然这种数据结构就是堆这种数据结构,下面我们再来一个示例,一步一步分析下
阅读全文
摘要:对于图这种数据结构,一般有两种遍历即深度优先(dfs),和广度优先(bfs),假设我们有如下这张图: 访问过程 现在假设计算0到其它点的路径,根据深度优先遍历: 1、获取0的所有邻边 1、2、5、6(默认此顺序) 2、再获取1的邻边(无),获取2的邻边(无),获取5的邻边(0,3,4) 3、0访问过
阅读全文
摘要:冒泡排序 算法思想 冒泡排序经常是我们所接触到的第一个排序算法,因此思想也相对比较简单,它的原理就是按照索引(数组,集合等)顺序从前往后依次与它后面的元素一个一个进行比较。 算法分析 代码实现 选择排序 算法思想 选择排序的核心思想就是从待排序的元素中找出最小的元素,我们可以把一组数据分为两部分,左
阅读全文
摘要:对于图这种数据结构,一般有两种遍历即深度优先(dfs),和广度优先(bfs),假设我们有如下这张图: 访问过程 现在假设计算0到其它点的路径,根据 ,广度优先遍历需要借助于队列这种数据结构,思路分析: 注意:访问某一个顶点时,要进行标记是否被访问过以及其巧妙利用数组的索引跟顶点 计算路径 那如何找到
阅读全文
摘要:图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表) 邻接矩阵 邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于n个顶点的图而言,矩阵是row和col表示的是1.....n个点,相连为1,不相连为0 邻接表 邻接矩阵需要为每个顶点都分配n个边的空间,其实还有很多表都是不存在,会造成空间的
阅读全文

浙公网安备 33010602011771号