Data structure
文章平均质量分 79
stevenzhang1986
这个作者很懒,什么都没留下…
展开
-
静态查找表的建立及顺序查找操作
查找是数据结构中很重要的一部分,最近在看查找表,首先是静态查找表,静态查找表可以以顺序表和线性链表来表示,用Search函数来顺序查找,从表中最后一个记录开始,逐个进行记录的关键字和给定值进行比较,如果相等,则查找成功,找到所查记录,反之,若直至最后一个记录,则查找不成功。原创 2011-07-10 15:19:11 · 7672 阅读 · 0 评论 -
排序算法总结
以下表格是对各种内部排序的总结,对于是否稳定排序,自己可以以n为3或者比较小时,看其是否稳定,这样容易记住。 排序法原创 2011-09-09 10:59:40 · 336 阅读 · 0 评论 -
排序算法-归并排序
归并排序 该算法是经典的分治(divide and conquer)策略,它将问题分(divide)成一些小问题然后递归求解,而治(conquering)的阶段则是将分的阶段解得的答案修不在一起。 算法的基本操作合并两个已排序的表,因为这两个表已经是排序的,所以原创 2011-09-09 10:51:01 · 527 阅读 · 0 评论 -
排序算法-选择排序
选择排序 选择排序的思想是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。在一趟选择,如果当前元素比一个元素小,而该小的元素又出现原创 2011-09-09 10:28:40 · 278 阅读 · 0 评论 -
快速排序的几种改进
快速排序,顾名思义,快速排序的速度是很快的,平均复杂度是nlogn。 快速排序的思路: 1.分治的思想,把数组分成两份,两份分成4分,这样分到足够小,就能很好排序咯,然后把他们合起来,排序完成。 2.该分治思想和合并排序思想一样,但是处理上更搞一筹,他是把小的和原创 2011-09-05 14:05:39 · 2022 阅读 · 0 评论 -
二叉树 建立及相关操作
数据结构的知识忘了好多了。今天实现了一下二叉树及相关操作,对二叉树的遍历采用了递归的方法,当然也可以用非递归方法。附上代码: /*****************************二叉树的建立及相关操作******************************/ /原创 2011-07-08 14:31:12 · 431 阅读 · 0 评论 -
查找--- 哈希表( 散列表)
哈希表优点:把数据的存储和查找消耗的时间大大降低,几乎可以看作是常数时间,而代价是消耗比较多的内存 散列表由两部分组成:桶数组,散列函数1.桶数组散列表的桶数组是一个大小为N的数组A,其中A的每个单元可看作一只“桶”,整数N表示数组的容量,如果关键字为整数,且均匀地分散在范围[0原创 2011-07-14 09:01:15 · 1151 阅读 · 0 评论 -
二叉排序树查找效率的改进----平衡二叉树的实现
对二叉排序树查找效率进行分析,就要看其平均查找长度,由于相同n个结点的二叉排序树是不唯一的,例如: 上面两个二叉排序树的结点是相同的,但是树的形状不同,这样查找元素的时候,效率也不同,若看平均查找效率,必然是第一个图中的原创 2011-07-12 16:04:52 · 3567 阅读 · 0 评论 -
B树,B-树,B+树,B*树介绍
原文地址:http://blog.csdn.net/manesking/archive/2007/02/09/1505979.aspxB树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right); 2.所有结点存储一个关键字转载 2011-07-12 17:17:02 · 351 阅读 · 0 评论 -
动态查找表--二叉排序树的实现
动态查找表的特点是表结构本身是在查找过程中动态生成的。二叉排序树的定义是:或者是一颗空树,或者是具有下列性质的二叉树:(1)若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)它的左右子树也分别是原创 2011-07-11 21:05:10 · 1939 阅读 · 0 评论 -
排序算法-堆排序
堆排序 优先队列的结构是节点i的孩子为2*i和2*i+1节点,大顶堆要求父节点大于等于其2个子节点,小顶堆要求父节点小于等于其2个子节点。优先队列可以以O(NlogN)时间进行排序,基于该思想的算法叫做堆排序。 首先将数组构造成一个大顶堆,然后原创 2011-09-09 10:56:30 · 363 阅读 · 0 评论