
算法与数据结构
FlowShell
这个作者很懒,什么都没留下…
展开
-
迭代算法与递归算法
迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。 利用迭代算法解决问题,需要做好以下三个方面的工作: 一、确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代转载 2009-10-11 11:26:00 · 2930 阅读 · 0 评论 -
穷举法
枚举法,常常称之为穷举法,是指从可能的集合中一一枚举各个元素,用题目给定的约束条件判定哪些是无用的,哪些是有用的。能使命题成立者,即为问题的解。采用枚举算法解题的基本思路:(1) 确定枚举对象、枚举范围和判定条件;(2) 一一枚举可能的解,验证是否是问题的解下面我们就从枚举算法的的优化、枚举对象的选择以及判定条件的确定,这三个方面来探讨如何用枚举法解题。例1:百钱买转载 2009-10-11 12:59:00 · 2575 阅读 · 0 评论 -
魔方阵的构造
奇阶魔方阵 N=2*M+1(M=1,2,3,……)奇数魔方阵的布阵规律:1.把1放在N*N方阵中的第一行中间一列,即放在位置为(1,(N+1)/2); 2.后一个数存放的行数比前一个数存放的行数减1,若这个行数为0,则取行数为N; 3.后一个数存放的列数比前一个数存放的列数加1,若这个列数为N+1,则取列数为1; 4.如果前一个数是N的倍数,则后一个数存放的列数不变,而行数加1原创 2010-05-29 15:21:00 · 1204 阅读 · 0 评论 -
二叉树
二叉树的各种遍历,深度等。原创 2010-08-18 09:08:00 · 666 阅读 · 0 评论 -
栈的简单实现
栈的实现原创 2010-08-17 21:27:00 · 735 阅读 · 0 评论 -
散列表
<br /> 我们知道数组能够提供对元素的快速访问但难于扩展;链表易于扩展但不能对其元素进行快速访问。对于大量元素的数据来说,我们当然希望两全其美。散列表提供了达到此目标的一种方法。<br /> 散列表又称哈希表,它有以下几个术语:<br />1.关键字:元素的存储部分,数据库的元素通过它进行存储,查找等操作(也称作散列关键字)<br />2,散列表元:散列数组的某个位置,其后跟着另外一个包含其元素的结构<br />3,散列函数:对关键字和散列表元提供映射的函数<br />4,完全散列函数:对关键转载 2010-11-09 10:50:00 · 10978 阅读 · 1 评论 -
红黑树
红黑树 一棵红黑树是指一棵满足下述性质的二叉搜索树(BST, binary search tree): 1. 每个结点或者为黑色或者为红色。 2. 根结点为黑色。 3. 每个叶结点(NIL)都是黑色的。 4. 如果一个结点是红色的,那么它的两个子节点都是黑色的(也就是说,不能有两个相邻的红色结点)。 5. 对于每个结点,从该结点到其所有子孙叶结点的路径中所包含的黑色结点数量必须相同。 红黑树的每个节点上的属性除了有一个key、3个指针:parent、lchild、rchild以外,还多了一个属转载 2010-11-09 15:13:00 · 1152 阅读 · 0 评论