huangfox

冰冻三尺,非一日之寒!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年6月28日

摘要: 一)定义希尔排序( shell sort )是 D .L.希尔( D.L.Shell )提出的“缩小增量”的排序方法。它的作法不是每次一个元素挨一个元素的比较。而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小;最后增量为 1 ,这样记录移动次数大大减少,提高了排序效率。二)希尔排序的实现(java)public static void sort02(int a[]) { double d1 = a.length; while (true) { d1 = Math.ceil(d1 / 2); int d = (int) d1; //步长 for ... 阅读全文
posted @ 2012-06-28 17:23 huangfox 阅读(363) 评论(0) 推荐(0) 编辑

摘要: 一)定义直接插入排序( straight insertion sort )是一种最简单的排序方法。它的基本操作是将一个记录插入到一个长度为 m (假设)的有序表中,使之仍保持有序,从而得到一个新的长度为 m + 1 的有序表。例如:二)插入排序实现(java)// 升序 public static void sort(int[] a) { for (int i = 1; i < a.length; i++) { int j = i; int temp = a[j]; while (j > 0 && temp < a[j - 1]) { a[j] = a[j - 阅读全文
posted @ 2012-06-28 15:28 huangfox 阅读(374) 评论(0) 推荐(0) 编辑

摘要: 一)排序的定义所谓排序,就是要整理文件中的记录,使之按关键字递增(或递减)次序排列起来。其确切定义如下:输入:n个记录R1,R2,…,Rn,其相应的关键字分别为K1,K2,…,Kn。输出:Ril,Ri2,…,Rin,使得Ki1≤Ki2≤…≤Kin。(或Ki1≥Ki2≥…≥Kin)。二)排序的分类1.按是否涉及数据的内、外存交换分在排序过程中,若整个文件都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内部排序(简称内排序);反之,若排序过程中要进行数据的内、外存交换,则称之为外部排序。注意:内排序适用于记录个数不很多的小文件外排序则适用于记录个数太多,不能一次将其全部记录放人内存的大 阅读全文
posted @ 2012-06-28 14:31 huangfox 阅读(714) 评论(0) 推荐(0) 编辑

摘要: 首先需要说明的问题:对于B树有人说是bTree,有人说是b-Tree,在本文我们统一使用英文描述(bTree、b-Tree、b+-Tree、b*-Tree),减少歧义。我理解bTree为二叉树,b-Tree、b+-Tree、b*-Tree为多叉树,且b+-Tree为b-Tree的变种,b*-Tree为b+-Tree的变种。我更倾向于将b树理解为b-Tree(有没有人读成b减树吧!?),而bTree就读成二叉树。一)b-Treeb-Tree是一种多路搜索树:定义任意非叶子结点最多只有M个儿子;且M>2;根结点的儿子数为[2, M];除根结点以外的非叶子结点的儿子数为[M/2, M];每个结 阅读全文
posted @ 2012-06-28 14:29 huangfox 阅读(836) 评论(0) 推荐(0) 编辑

摘要: 一)AVL定义在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis,他们在1962年的论文《An algorithm for the organization of information》中发表了它。节点的平衡因子是它的左子树的高度减去它的右子树的高度(有时相反)。带有平衡因子1、0或 -1的节点被认为是平衡的。带有平衡因 阅读全文
posted @ 2012-06-28 13:30 huangfox 阅读(1040) 评论(0) 推荐(0) 编辑

摘要: 一)二叉查找树定义二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;它的左、右子树也分别为二叉排序树。二叉排序树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。每次插入的新的结点都是二叉排序树上新的叶子结点,在进行插入操作时,不必移动其它结点,只需改动某个结点的指 阅读全文
posted @ 2012-06-28 08:46 huangfox 阅读(367) 评论(1) 推荐(0) 编辑