C语言算法
文章平均质量分 83
熊小刚
成都WEB小前端——————加油!!!
展开
-
并查集详解(HDU 1232通畅工程)
并查集(集合的合并与查找) 在一些有N个元素的集合合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。(摘自百度百科) 其中主要有三个函数:Init();初始化一个并查集,主要是根据题目需要建立一个原始的点集,因为还没有处理点与点的关系,初始化每个点的父亲结点为本身。原创 2017-03-19 20:35:28 · 445 阅读 · 0 评论 -
数据结构之链表
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 相比于线性表顺序结构,操作复杂。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一原创 2017-03-15 15:37:05 · 297 阅读 · 0 评论 -
数据结构之简单线性表
线性表是一种基本的数据结构。 线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。这里我们只讨论顺序存储的线性表。在内存中一连续的一段空间来存储。线性表可以实现在n个连续的空间(即线性表长度为n)插入,删除,查找,清空等操作。详细用法如下: 1.线性表的定义以及初始化struct node//定义一个结构原创 2017-03-15 13:18:00 · 429 阅读 · 0 评论 -
最长公共子序列LCS
首先,我们说到了子序列,就不得不区别它与字串的概念。子序列是指字符串中不连续的一段字符,而字串是字符串中连续的一段,大家应该都明白了吧。 再来说说LIS,指的是两个字符串中最长公共子序列。如字符串“abcde”与“afcgeh”最长公共子序列为“ace”,最长公共子序列的长度为3。我们首先想到的是在一个字符串中取出一个子序列,再与另一个字符串的子序列比较,最后找到最长的一个子序列。假设两原创 2017-03-13 19:36:32 · 390 阅读 · 0 评论 -
C语言KMP字符串匹配算法
Kmp算法是用于求一长字符串和短字符串按一定规律匹配的情况,可以求是否能在长串中找到短串 其思想就是通过一个next数组对短串进行处理,找到短串前后某两个位置是否具有相同的前后缀,用next[i]表示最后以b[i]结尾的前缀和后缀与模式串前缀的最长匹配数。原创 2016-07-19 14:50:51 · 838 阅读 · 1 评论