随笔分类 - [8] 算法与数据结构
摘要:图 定义 无向图、有向图 子图、入度、出度 连通图、强连通图 总结: 连通无向图的最小生成树中,顶点数 = 边数 + 1 强连通有向图的 边数 至少等于 顶点数。 AOV网 AOV网(顶点表示活动的网)顶点表示活动,弧表示活动发生优先关系的有向图。在AOV网中,通过进行拓扑排序可以得到一个有序序列或
阅读全文
摘要:树 二叉树 基本概念 二叉树是一个有限的结点集合,该集合或者为空,或者由一个根结点及其两棵互不相交的左、右二叉子树所组成。 二叉树的结点中有两棵子二叉树,分别称为左子树和右子树。因为二叉树可以为空,所以二叉树中的结点可能没有子结点,也可能只有一个左子结点(右子结点),也可能同时有左右两个子结点。 如
阅读全文
摘要:归并排序 时间复杂度是 O(nlogn),空间复杂度是O(n); 归并排序算法中,归并最后到底都是相邻元素之间的比较交换,并不会发生相同元素的相对位置发生变化,故是稳定性算法。 C代码: #include <stdio.h> #include <stdlib.h> void printArray(i
阅读全文
摘要:C代码: #include <stdio.h> void printArray(int a[], int len) { for(int i=0; i<len; ++i) { if(0==i) printf("[%d,",a[i]); else if(i < len-1) printf("%d,",a
阅读全文
摘要://串的模式匹配 //1.朴素的模式匹配算法 int Index1(char S[], char P[], int pos) {//查找并返回串P在主串S中从pos位置开始的位置,否则返回-1 int i, j, slen, plen; i = pos; j = 0; slen = strlen(S
阅读全文
摘要:一、算法效率的度量 最终,在分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤。 在分析一个算法的运行时间时,重要的是把基本操作的数量与输入规模关联起来,即基本操作的数量必须表示成输入规模的函数。例如 f(n) = 2n+1, ... 判断一个算法的效率时,函数中的常数
阅读全文
摘要:参考:数据结构(C语言版)-严蔚敏 #include <stdio.h> #include <stdlib.h> ///////////////// 函数结果状态代码 ///////////// #define TRUE 1 #define FALSE 0 #define OK 1 #define
阅读全文
摘要:线性表 线性表(Linear List)是n个数据元素的有限序列。特点:(1)唯一的首元素 (2)唯一的尾元素(3)除首元素之外,每个元素都有唯一的前驱(4)除尾元素之外,每个元素都有唯一的后继线性表的顺序存储结构(用一组地址连续的存储单元依次存储元素):数组线性表的链式存储结构(用一组地址任意的存
阅读全文