算法
迷糊小财迷
这个作者很懒,什么都没留下…
展开
-
算法序列--树
树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。 树的结点 结点:使用树结构存储的每一个数据元素都被称为“结点”。例如图中,数据元素 A 就是一个结点; 父结点(双亲结点)、子结点和兄弟结点:对于图中的结点 A、B、C、D 来说,A 是 B、C、D 结点的父结点(也称为“双亲结点”),而 B、C、D 都是 A 结点的子结点(也称“孩子结点”)。对于 B、C、D 来说,它们都有相同的父结点,所以它们互为兄弟结点。 树根结点(简称“根结点”):每一个非空树都有且只有一个被称为根的结点。原创 2020-07-17 21:47:46 · 189 阅读 · 0 评论 -
递归及分治思想
递归 1、定义 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。 构成递归需具备的条件: 子问题须与原始问题为同样的事,且更为简单; 不能无限制地调用本身,须有个出口,化原创 2020-07-15 22:27:36 · 726 阅读 · 0 评论 -
算法序列--栈和队列
栈(Stack)是一个后进先出(last in first 偶通,LIFO)的线性表,要求只在表尾进行删除和插入操作。 栈的元素必须后进先出 操作只能在栈的表尾进行 表尾为栈的栈顶(top),相应的表头为栈底(bottom) 栈的插入操作(Push):进栈,压栈。类似子弹放入弹夹的动作。 栈的删除操作(Pop): 出栈,弹栈。如同弹夹的子弹弹出。 栈本质是一个线性表,有两种存储形式,顺序存储结构和链式存储结构。 队列(queue)只允许在一端进行插入操作,而在另一端进行删除操作的线性表。 与栈相反,队原创 2020-07-09 21:09:53 · 242 阅读 · 0 评论 -
算法序列----线性表
线性表:由零个或多个数据元素组成的有限序列。 1、属于一个序列; 2、第一个元素没有前驱,最后一个没有后继; 3、有限的。 两种物理存储结构: 1、顺序存储; 2、链式存储。 顺序存储: 1、存储位置就是顺序的位置; 2、数组的最大长度; 3、当前长度 length 链式存储: 1、使用任意存储单元存储数据元素; 2、除了存储数据元素之外,还要存储它的后继元素的存储地址(指针); 头指针:链表指向第一个节点的指针,如链表有头节点则指向头结点的指针; 无论链表是否为空,头指针不为空; 头指针是链表的必须元素。原创 2020-07-02 22:28:57 · 109 阅读 · 0 评论 -
算法序列--算法特性
算法有五个基本特性:输入、输出、有穷性、确定性和可行性。 输入 –0个或者多个输入 输出 –至少有一个或多个输出; 有穷性 –在执行特定有限步骤之后,自动结束而不会无限循环; 确定性 –每个步骤都是被精确定义的 可行性 –每一步骤都是可以执行有限次数完成 算法设计的要求: 正确性: 1、没有语法错误 2、对于合法输入能够产生满足要求的输出 3、对于非法输入能够产生满足规格的说明 4、对于故意刁难的测试输入有满足要求的输出 可读性: 便于阅读,了解和学习 健壮性: 对于不合法数据输入,可做出相关处理。 ..原创 2020-06-29 22:58:56 · 103 阅读 · 0 评论