10 2015 档案
摘要:1插入类排序(1)直接插入排序 算法大致流程:给定初始序列L,L从前往后依次取出一个数据,将其直接插入到有序序列中。 算法的复杂度分析:时间复杂度:最坏的情况下,每从无序序列中取一个元素,就要遍历一遍有序序列,复杂度为O(n2);最好的情况下,每从无序序列中取出一个元素,直接放在了有序序列的后面...
阅读全文
摘要:Dijkstra算法是解决单源最短路径的问题,就是某个点到其余各个点的最短路径,Floyd算法是解决任意两点间最短路径问题的。 算法的大致流程如下: 设置两个二维矩阵A和path,A记录任意两个顶点最短路径长度,path记录当前两顶点最短路径上要经过的中间节点。 n个顶点,从0到n-1,每...
阅读全文
摘要:Dijkstra算法用于求解单源最短路径问题。 Dijkstra算法最核心的步骤在于,每次从剩余节点中选取一个节点v加入已访问节点集合的时候,我们便以v为中间节点,查看从源点出发经过v到剩余节点k和不经过v到剩余节点k哪个更短,如果经过v到剩余节点k更短的话,我们需要更新从源点到k的距离值,以...
阅读全文
摘要:最小生成树 最小生成树就是将一个图中的若干边去掉,使之成为一棵树,这棵树的各条边的权值之和最小。 构造最小生成树有两个典型的算法——Prim算法和Kruskal算法。下面就分别介绍这两个算法。两个算法都是开始将各个顶点孤立,然后依次选取若干边将顶点连接起来构成一棵树。Prim算法 算法的流程大...
阅读全文
摘要:图主要有深度优先遍历(DFS)和广度优先遍历(BFS)。1 深度优先遍历——DFS 深度优先类似于树的先序遍历,从要访问的节点(0)出发,选取和它相邻的任何一个节点(3),访问之,再访问和3相邻的节点(4),访问之,直到访问到没有相邻节点的节点,比如4没有相邻节点了,那么就回溯一层,访问3的未被访...
阅读全文
摘要:要完整地表示一个图,就需要明确图中有什么,很简单,节点和边。 所以,在用邻接表表示一个图的时候,我们需要分别表示其节点和边,然后用边将节点连接起来即可。 使用邻接表,文字上的描述就是,将所有节点放入一张邻接表中,对于每个节点的邻接节点,用一个链表将其连接起来。1 邻接表中边、节点、图定义 1...
阅读全文
摘要:并查集,实现将本来不相交的集合合并,并进行查找。并查集归根结底还是树,实际上就是将森林合并成树的过程,通过合并的时候,各个节点能最终找到相同的祖宗,那么判断是否在一个集合中时,只需要比较是否是一个祖宗就好了。 1 #include 2 int father[100]; 3 void init...
阅读全文
摘要:每个节点最多有两个子节点的树构成二叉树。 (1)满二叉树 除了叶节点以外,其余每个节点都有两个子节点。 (2)完全二叉树 如果将二叉树从上到下,从左到右依次编号的话,一棵树各个节点的编号和满二叉树上的编号对应一致,则称这棵树为完全二叉树,也就是说,完全二叉树是满二叉树从右向左,从下到上...
阅读全文
摘要:---恢复内容开始--- 在看数据结构的串的讲解的时候,讲到了KMP算法——一个经典的字符串匹配的算法,具体背景自行百度之,是一个很牛的图灵奖得主和他的学生提出的。 一开始看算法的时候很困惑,但是算法思想很简单,就是在暴力匹配的基础上得出的。暴力匹配 这里有必要说一下暴力匹配,暴力匹配更简单,...
阅读全文
摘要:链表的建立可以使用尾插法,也可以使用头插法,头插法就是从头节点开始,向前扩展节点,最后生成带头节点的单向链表,使得内容与输入相反。链表的定义与(1)中相同,这里只介绍链表的建立函数。 1 LNode *create(int n) 2 { 3 int m; 4 LNode *head=...
阅读全文
摘要:链表是最基本的数据结构之一,建立单项链表步骤如下定义链表节点定义三个指针——头指针,尾指针,当前结点指针。并分别申请内存,初始化判断是不是头指针,如果是,则当前结点赋值给头指针,尾指针的后继为空;如果当前不是头指针,在尾指针后追加当前结点完成插入操作后,更新尾指针和尾指针的后继重新申请一块内存为新的...
阅读全文
摘要:C语言中,使用malloc函数向内存中动态申请空间。函数的原型是extern void *malloc(unsigned int num_bytes);可见,函数返回的是指针类型,参数是要申请的空间的大小。例如,我们在申请一个Node节点的时候。#include#includetypedef str...
阅读全文
摘要:在C语言中定义一个结构体,要最好使用typedef,使用typedef,实际上就是为我们的结构体起了一个新的名字,即定义了一个新的类型,在后面书写自己代码的时候,就可以直接使用自己定义的新的类型第一变量。例如#includetypedef struct{ int num; struct ...
阅读全文