03 2016 档案

摘要:归并排序最坏情况下时间复杂度为O(NlogN),它所使用的比较次数几乎是最优的。同时归并排序是分治策略和递归策略的一个非常好的实例。归并排序的基本操作是合并两个已经排序的表。对于一个要排序的数组,归并算法首先将数组分为两部分,然后分别对这两部分递归调用自己,这个递归算法的递归终止条件是数组长度为一, 阅读全文
posted @ 2016-03-23 22:19 libs5510 阅读(238) 评论(0) 推荐(0)
摘要:排序大致分为两类,内部排序和外排序。内部排序指要排序的数据量很小,可以将全部数据读入内存,然后在其中进行排序。外部排序指数据量很大,数据无法全部读入内存,必须在磁盘或者磁带上完成的排序。首先来研究内排序,有几种简单的排序算法如插入排序,冒泡排序,选择排序时间复杂度为O(N*N),另外有一种希尔排序( 阅读全文
posted @ 2016-03-16 19:14 libs5510 阅读(244) 评论(0) 推荐(0)
摘要:在java中,修饰符分为访问权限修饰符和非访问权限修饰符。可以被修饰符修饰的java语言元素有类,变量,方法和接口。下面分别描述在这四个元素上使用修饰符的作用。 类 java中声明类的格式为: 访问修饰符 修饰符 class 类名 extends 父类名称 implements 接口名称{} 其中访 阅读全文
posted @ 2016-03-10 20:00 libs5510 阅读(274) 评论(0) 推荐(0)
摘要:利用分离连接法解决冲突需要用到链表数据结构,同一个链表中保存的数据是关键字经过hash后映射到相同hash表位置的数据,当在hash表中查找数据时,首先对关键字进行hash找到链表在hash表中的位置,然后在链表中查找数据。插入删除操作遵循相同的步骤,首先找到要操作的数据,然后在链表上进行处理。这里 阅读全文
posted @ 2016-03-06 21:41 libs5510 阅读(414) 评论(0) 推荐(0)
摘要:二叉树提供了对一组数据进行各种操作的强大功能,特别是在处理有序数据时二叉查找树非常方便。例如FindMax和FindMin操作,在表数据结构中这两个操作时间复杂度为O(N),但在二叉查找树中这两个操作只需要O(logN)的时间复杂度。但在很多情况下,数据的顺序并不是应用所关心的问题。这一类应用只需要 阅读全文
posted @ 2016-03-06 16:16 libs5510 阅读(170) 评论(0) 推荐(0)
摘要:文本输入输出 进行文本输出的类是PrintWriter,这个类提供格式化输出字符的功能,它是Writer的子类。类似于System.out的使用,PrintWriter的实例提供了很多类似的输出功能。System.out是PrintStream的实例,PrintStream是OutputStream 阅读全文
posted @ 2016-03-04 21:55 libs5510 阅读(263) 评论(0) 推荐(0)
摘要:除了二叉查找树之外,还有许多其他类型的树,这些树因为其独特的性质,在很多特定的领域获得了广泛的应用。这里简单介绍两种特别的树,伸展树和B树。 伸展树 伸展树是二叉查找树的扩展,是一种特殊的二叉查找树。但不同与普通的二叉平衡查找树如AVL树,伸展树没有严格的平衡条件,但是伸展树仍然可以保证其基本操作的 阅读全文
posted @ 2016-03-02 20:05 libs5510 阅读(248) 评论(0) 推荐(0)
摘要:二叉查找树在最坏情况下高度可能为N-1,即插入元素时后插入的元素总比以前插入的元素大或者小。为了解决这种不平衡的情况,引入了平衡条件来限制树中节点的深度不能过深,其中最老的一种平衡树称为AVL树。这种树限制树中每个节点的左右子树的高度相差不能超过一。(另一种更严格的树限制节点的左右子树高度必须相等, 阅读全文
posted @ 2016-03-01 11:27 libs5510 阅读(317) 评论(0) 推荐(0)