算法与设计模式
文章平均质量分 85
ayanwan
这个作者很懒,什么都没留下…
展开
-
线性表
1、线性表:具有相同类型数据元素的有限序列线性表的长度:有限序列中所含元素的个数头元素:线性表的第一个元素,无前驱尾元素:线性表的最后一个元素,无后继基本操作:增删改查2、顺序表:线性表的顺序存储,用一段连续的地址依次存储,c语言中用一维数组(1)顺序表的存储结构:#define MAXLENGTH 20struct sequencelist{原创 2015-07-20 23:33:44 · 818 阅读 · 0 评论 -
插入排序、比较排序
一、插入排序 插入排序就是将一个待排数据按其大小插入到一个有序表的适当位置,并插入后仍有序。分为三类:直接插入排序;折半插入排序;希尔插入排序。 【直接插入排序】 例如,把{4,3,1,2}进行排序,算法过程见图:通常,有序的序表是r[1]、r[2].....,而r[0]是哨兵,用于存放需要排序的数据,属于赋值空间。所以,算法时间复杂度是:原创 2015-07-15 09:44:08 · 2724 阅读 · 0 评论 -
数据结构概述
一.算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。1、算法的基本特征:可行性,确定性,有穷性,拥有足够的情报。2、算法的基本要素:算法中对数据的运算和操作、算法的控制结构。3、算法设计的基本方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。4、算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求二.算法的复杂度原创 2015-08-15 16:03:00 · 842 阅读 · 0 评论 -
查找
由于查找运算的使用频率很高,几乎在任何一个计算机系统软件和应用软件中都会涉及到,所以当问题所涉及的数据量相当大时,查找方法的效率就显得格外重要。在一些实时查询系统中尤其如此。查找的基本概念1、查找表和查找 一般,假定被查找的对象是由一组结点组成的表(Table)或文件,而每个结点则由若干个数据项组成。并假设每个结点都有一个能惟一标识该结点的关键字。 查找(Sea原创 2015-09-12 23:10:34 · 846 阅读 · 0 评论 -
加法乘法原理、排列组合、线性规划
1、加法原理与乘法原理加法原理:分类思想。一个事件的发生,分为几类事件的发生,通俗的说是好几种情况的发生。乘法原理:分步思想。一个事件的发生,分为几个子事件分步发生,这里要注意:(1)子事件:如何把事件划分为几个子事件呢,子 事件是独立的,内部发生的概率一样。(2)分步,子事件安步骤完成2、排列:根据乘法原理,把事件分为m步,挑选一个有原创 2015-08-22 10:32:39 · 5339 阅读 · 1 评论 -
二叉树
二叉树的基本概念关于二叉树有一点需要注意:二叉树并不是树的一种特殊形式,二叉树时有序树。二叉树又有几种特殊的形式:最优二叉树(哈弗曼树)、二叉排序树(二叉查找树)、二叉堆。哈弗曼树的特点就是带权路径长度最小,因此还叫最优二叉树。另外,哈弗曼树是完全二叉树。二叉排序树它或者是一棵空树;或者是具有下列性质的二叉树: 1,若左子树不空,则左子树上所有结点的原创 2015-08-20 17:01:24 · 979 阅读 · 0 评论 -
二叉树基本概念
一、树的基本概念(1)树(Tree)的概念:树是一种递归定义的数据结构,是一种重要的非线性数据结构。 树可以是一棵空树,它没有任何的结点;也可以是一棵非空树,至少含有一个结点。(2)根(Root):有且仅有一个结点的非空树,那个结点就是根。(3)子树(Subtree):在一棵非空树中,除根外,其余所有结点可以分为m(m≥0)个互不相交的集合。每个集合本身原创 2015-07-05 15:45:29 · 2502 阅读 · 0 评论 -
排序法总结与比较
排序:对一序列对象根据某个关键字进行排序;稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 例如:插入排序、冒泡排序、归并排序、计数排序、基数排序、桶排序不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 例如:选择排序(5 8 5 2 9)、快速排序、堆排序内排序:不占用额外内原创 2015-08-16 21:49:07 · 858 阅读 · 0 评论 -
栈与队列
【栈】 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。也就是:后进先出(Last In First Out),简称为LIFO线性表。栈的基本运算有六种:构造空栈:InitStack(S)判栈空: StackEmpty(S)判栈满: StackFull(S)进栈: Push(S,x) 可形象地理解为压入,原创 2015-07-22 10:05:21 · 760 阅读 · 0 评论