上一页 1 ··· 4 5 6 7 8
摘要: HashTable算法概要:哈希表示表示集合和字典的另外一种有效的方法,通过将关键码映射到表中某个位置来存储元素,然后根据关键码用同样的方式直接访问。1、有限的连续地址,可以用数组来表示。2、Hash函数采用除留余数法。3、处理冲突的方法,用开放地址法,实现线性探测再散列法,二次探测再散列法,随即探测再散列法,后两种方法有一些对条件的限制。4、给定一系列的键值,分配一个数组,用哈希函数处理地址,在哈希函数中调用冲突处理函数。5、查找函数。哈希表的类定义代码如下:class HashT{public: HashT(){} //构造函数 ~HashT(){} //析构函数 //哈希函数 ... 阅读全文
posted @ 2013-04-08 11:02 李VS超 阅读(427) 评论(0) 推荐(0) 编辑
摘要: 简单的说,排序就是将一组杂乱无章的数据按一定的规律顺次排列起来。如果在元素序列中有两个元素R1和R2,它们的排序码也相等,且在排序之前R1和R2前面,如果排序之后,R1仍然也在R2之前,则称排序方法是稳定的,否则称这个排序算法是不稳定的。排序方法根据在排序过程中数据元素是否完全在内存,分为两大类:内排序和外排序。排序算法的性能评估:排序算法的执行时间是衡量算法好坏的最重要的参数。排序的时间开销可用算法执行中的数据比较次数和数据移动次数来衡量。算法的性能一般根据平均情况来计算,对于那些受元素排序码初始排列及元素个数影响较大的,需要按最好情况和最坏情况来进行估算。插入排序的基本思想:每一步将一个待 阅读全文
posted @ 2013-04-06 18:58 李VS超 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 二叉树的定义是递归的,一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两颗分别称为左子树和右子树、互不相交的二叉树组成。该数据结构的难点有两个:1、理解在递归算法中根结点指针保持不变,所以可以把该指针作为参数传入。变的事root->lNode及其下一个递归定义结点的指针值。2、递归算法的执行流程。二叉树的设计和实现:1、二叉树采用链式存储,结点包含三个域,左结点链接域,右结点链接域,数据域。2、分别用结构体和类来表示二叉树的结点和抽象数据类型。3、重要的方法有:1)二叉树的建立。2)二叉树的输出。3)前序、中序和后序遍历输出。4、二叉树的定义是递归的,所以递归算法在 阅读全文
posted @ 2013-04-05 13:15 李VS超 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 贪心算法通过一系列的选择来得到问题的解。它所做的每一个选择都是当前状态下局部最好选择。从许多的贪心算法求解的问题可以看到可用贪心算法求解的问题一般具有两个重要的性质:贪心选择性质和最优子结构性质。1、贪心选择性质贪心选择性质是 指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。与动态规划算法的不同之处是贪心算法只依赖在当前状态下做出最优选择,然后再去解做出这个选择后产生的相应的子问题。贪心算法依赖于以往做出的选择,但是绝不依赖未来做出的选择。所以贪心算法是自顶向下解决问题的。2、最优子结构性质当一个问题的最优解包含其子问题的最优解时,称此问题具有最优子结构性质。一个问题是否 阅读全文
posted @ 2013-04-04 20:36 李VS超 阅读(3629) 评论(1) 推荐(0) 编辑
摘要: 链式栈的实现:1、栈的特点栈顶插入元素和删除元素。2、链式栈的结点:也是一个数据域和一个链接域。3、栈采用类来实现:1)需要设定一个一个栈顶指针 top,指向第一个元素2)本数据结构需要实现三个重要的方法:入栈,出栈,输出栈内元素三个方法栈的结点仍然包含一个数据域和一个链接域:struct StackNode{ int data; StackNode *link;};栈的抽象数据类型使用类来表示,重要的方法有入栈、出栈和输出栈中内容三个:class Stack{protected: StackNode *top; //先声明一个栈顶指针public: Stack() //构造函数 { t... 阅读全文
posted @ 2013-04-01 11:01 李VS超 阅读(411) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8