
数据结构(Datastructure)
zxy119
这个作者很懒,什么都没留下…
展开
-
Liner search vs. Binary search in Array
原理Liner search:从数组的第一个元素开始搜索.....逐个向下...一直找到数组中的最后一个元素....O(N)...Binary search:先把数组从最中间的元素分为均等的上半区和下半区..上半区的元素是都大于要搜索的value..下半区反之...按照这种方式循环....知道找到为止........O(logN).....限制就是能进行Binary search的Array原创 2006-02-05 16:18:00 · 789 阅读 · 0 评论 -
External Storage
以前所说的数据结构都是放在主存里面的,比如对一个数组的排序 ,就是将数组完全的放到内存里面,然后再进行排序。如果这个数组大小是几M或者几是M,那么都可以放到主存当中,但是当这个数组与500M或者更高呢?很显然是不可能放到主存中的,只能先存储在外存,然后分块的读到内存中来。。。。。 数据存储在外存和存储在内存有很大的不同,在内存的数据可以很容易的将某部分数据进行原创 2006-08-23 22:53:00 · 774 阅读 · 0 评论 -
Hash Table的补充
上一篇文章已经说了Hash Table作为一个数组以开放式寻址的方式实现 ,用开放式寻址去解决Key的冲突比较麻烦,不管是用线性探针,二次方探针,即便是二次Hash也还是有缺陷,一旦数组变的比较满的时候,算法的效率就会大打折扣,而且用开放式寻址就不能真正意义上的去删除一个数据项,如果删除一个数据项,以后的搜索某个数据就会发生错误。 用Linked List来代替数组中的元原创 2006-09-10 20:35:00 · 1576 阅读 · 1 评论 -
Hash Table
刚到学校的时候把宽带的密码搞忘了,跑了两次新华公园的电信这才可以上了。前几天因为忙着做一个定单的项目,没有抽时间来看数据结构。到了今天才把软件的大体框架完成,准备拿过去给客户看了。刚才抽了点时间看了下Hash Table,现在就把看的东西记下来。。。 Hash Table这种数据结构比以前见到的Binary Tree的搜索,插入,删除所需要的时间还要短,时间复杂度逼近O(1)。在原创 2006-09-09 22:12:00 · 1587 阅读 · 0 评论 -
Heap
Heap中文翻译过来叫做堆,但他并不是大家所说的内存中的堆栈区,而是一种用数组来实现的弱序的完全二叉树。他是一种数据结构。Heap 很像前面所说的二叉搜索树,但是他并没有二叉搜索树那样有严格的顺序规定。二叉搜索树中,父接点必须大于它的左孩子,而小于他的右孩子;但是在Heap中,只要规定父接点大于两个子接点就可以了,而且其中的每个元素并不是通过Link来连接的,而是对这个完全二叉树进行编原创 2006-09-14 20:48:00 · 966 阅读 · 0 评论 -
Binary tree
以前有学过的LinkedList和Orded Array。。这两种数据结构有利有弊。 LinkedList在插入和删除某个Node的时候只需要更改这个Node的指向下(上)一个Node的referrence就可以了,而Order Array因为在插入和删除某个Node之后必须保持整个数组的有序性,必须要做很多的Node移动,比如在一个升序的数组中要删除其中一个Node,就原创 2006-08-12 02:48:00 · 731 阅读 · 0 评论 -
2-3-4Tree
这几天看数据结构看的有点辛苦啊~前几天看2叉树的时候觉得还是不难,但是看到红黑树的时候真的是把我弄晕了~~~~ 前面已经说了,2叉树比以前知道的数据结构,如LinkedList和Order Array都要有更高的效率,LinkedList在insert的时候效率很高但是search效率很低,Order Array在search的时候效率很高但是在insert的时候效率怀念低,而2原创 2006-08-22 17:31:00 · 1116 阅读 · 0 评论 -
回忆排序
有关排序的东西还是半年前看的,很多东西都忘了。所以今天拿出来再回忆一下。。简单的排序方法有:冒泡排序,选择排序,插入排序。其中冒泡排序算法最差,效率最低。算法基本思路是从树组的第1个元素开始,将它与其数组的其他元素进行比较,大的放在后面,这样每论下来能选出一个最大的,这样就进行了由小到大的排序。选择排序不同于冒泡排序的是,它是从最左边开始,也就是将数组中小的元素先进行原创 2006-08-23 23:43:00 · 624 阅读 · 0 评论