随笔分类 - up 笔记
摘要:最短路 多源最短路径 Floyed-Warshall算法 弗洛伊德算法,是最简单的多元最短路径算法,可以计算图中任意两点的最短路径。时间复杂度为O(N3) 算法描述: 设置dis[u][v] 表示从u到v的距离 (1) 初始化 将相连接的点的距离设置为 \(dis[u]
阅读全文
摘要:搜索 1.定义 搜索算法是利用计算机的高性能来有目的的穷举一个问题解空间的部分或所有的可能情况,从而求出问题的解的一种方法。现阶段一般有枚举算法、深度优先搜索、广度优先搜索、A* 算法、回溯算法、蒙特卡洛树搜索、散列函数等算法。在大规模实验环境中,通常通过在搜索前,根据条件降低搜索规模;根据问题的约
阅读全文
摘要:快速排序(Quicksort) 1.定义 快速排序是对冒泡排序的一种改进算法。 2.基本思路 快速排序的思路大概就是在冒泡排序的基础之上增添了二分的思想。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,
阅读全文
摘要:堆 1.定义 堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。 2.性质 1.堆中某个节点的值总是不大于或不小于其父节点的值; 2.堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐
阅读全文
摘要:话说二分和三分的题还没有整理过,就趁这两题来整理下笔记 先讲讲关于二分,对于二分的具体边界长期以来对我来说都是个玄学问题,都是边调边拍改对的。思路大体是确定左边界l,和有边界r,判断满足条件缩小范围。 放个大概的代码 二分用处很大,一般用在二分答案以及二分查找,一般看到最大的最小或最小的最大都是二分
阅读全文
摘要:栈 1.定义 栈是限定仅在表头进行插入和删除操作的线性表。要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质。"栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。首先系统或者数据结构栈中数据内容的读取与插
阅读全文
摘要:字典树(trie tree) 1.定义 字典树又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效
阅读全文