
算法
文章平均质量分 95
幻想乡的漏气威严
是个车万狗,还是个码农,还是个死宅,没救了没救了
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【算法】堆排序与优先队列——傻瓜式教学
q原创 2020-12-06 17:55:17 · 579 阅读 · 2 评论 -
【算法】线段树详解
一.线段树概述原创 2020-12-02 14:09:09 · 1573 阅读 · 2 评论 -
【算法】单源最短路径——dijkstra算法
一,概念单源最短路径给定一个带权有向图G=(V,E),其中每条边的权是一个实数。另外,还给定V中的一个顶点,称为源。要计算从源到其他所有各顶点的最短路径长度。这里的长度就是指路上各边权之和。这个问题通常称为单源最短路径问题。dijkstra算法简介迪杰斯特拉算法(Dijkstra),是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。需要注意的是,dij原创 2020-11-29 13:29:53 · 35878 阅读 · 8 评论 -
【算法】ST表——静态RMQ问题的求法
一.概念原创 2020-11-28 14:33:22 · 298 阅读 · 0 评论 -
【算法基础】并查集(傻瓜式教学)
一.概念 并查集(Disjoint Set),在一些有N个元素的集合应用问题中,通常应用于判断一个图里是否有环或者两个结点是否在同一个集合里。二.图解首先对于这么一个图,我们可以随机遍历图的每一条边我们可以设 parent[i] = x 表示结点 i 的父节点为 x并且初始化 parent [ i ] = i这样一开始parent数组为然后就遍历每条边,记录每个结点的父节点但是要注意的是,当我们随机遍历的时原创 2020-11-26 00:18:58 · 1426 阅读 · 3 评论 -
排序算法之快速排序
快速排序首先我们来看看百度百科上是怎么说快速排序的:快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列简单的来说,就是先确定一个key,然后分别把比key大和比key小的数分配到两边,然后递归求解,这样得到的结果一定是一个有序列。看图理解快一点假设一开始的序列是这样的,我们假设要排原创 2020-09-21 22:34:24 · 183 阅读 · 2 评论 -
排序算法之归并排序
归并排序归并排序,是一种基于分治思想的一种有效的,稳定的排序算法。它的时间复杂度为O(nlogn),空间复杂度为T(n),这里主要讲述一下二路归并排序对于归并排序,简单的分为三步走划分问题:把序列分成左右两边元素尽量相等的两个序列递归求解:把分出的两个序列分别排序合并问题:把两个已经排序好的序列合并成一个下面是图解自己画的,可能丑了不要打我首先是划分的过程,这一部分直接通过递归就能做到了划分过程的代码void MergeSort(int arr[],int left,int right原创 2020-09-20 19:49:46 · 2431 阅读 · 3 评论 -
对于KMP算法的一些自我理解
说明KMP算法要说难不难,说简单也不简单,不懂的时候完全不懂。看了好多博客说理解后又发现是如此简单,在KMP算法中最重要的也就是关于next数组的求解了,这也是最主要的难点,所以便打算把我自己的理解写出来用于加深自己的印象首先对于一个算法,首先我们要明确KMP做什么?还有怎么实现的问题?KMP算法是由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,用于字符串模式匹配的算法。例如在一个字符串里找另一个字符串出现的位置。我们设有两个字符串变量p和t,我们要在p中找到t在p出现的所有位原创 2020-09-11 11:49:47 · 334 阅读 · 1 评论