2015年6月22日
摘要: 数据结构排序算法总结这章的内容比较经典,都是一些很好的算法,将来很可能会用得到,总结一下,加深一下印象。文章篇幅有点大。 一:插入排序 1)直接插入排序 2)折半插入排序3)希尔排序二、交换排序1)冒泡排序 2)快速排序三、选择排序1)简单选择排序 2)堆排序 四、归并排序五、基数排序一、插入排序... 阅读全文
posted @ 2015-06-22 21:13 星梦缘vs惜 阅读(171) 评论(0) 推荐(1) 编辑
摘要: 一、KMP算法的思想由D.E.Knuth、J.H.Morris和V.R.Pratt共同提出了一个改进算法,消除了Brute-Force算法中串s指针的回溯,完成串的模式匹配。时间复杂度为O(s.curlen+t.curlen),这就是Knuth-Morris-Pratt算法,简称KMP 算法。1、K... 阅读全文
posted @ 2015-06-22 16:26 星梦缘vs惜 阅读(373) 评论(0) 推荐(0) 编辑
摘要: 一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆... 阅读全文
posted @ 2015-06-22 16:22 星梦缘vs惜 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 1 //定义一个散列表的结构 2 #define HASHSIZE 12 //初始大小 3 #define NULLKEY -32768//默认值,散列表中不可能出现的值 4 typedef struct 5 { 6 int *elem;//数据元素的基址,均匀分配数组 7 int eco... 阅读全文
posted @ 2015-06-22 16:14 星梦缘vs惜 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 前面已经介绍过B-树,接下来,我们主要介绍一下B+树。1、B+树的概念B+树是应文件系统所需而生的一种B-树和变形树。一棵m阶B+树和m阶的B-树的差异在于:(1)有n棵子树的结点中含有n个关键字。(2)所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身关键字的大... 阅读全文
posted @ 2015-06-22 14:27 星梦缘vs惜 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 一、哈希表相关概念1、哈希函数的基本概念哈希表又称散列表。哈希表存储的基本思想是:以数据表中的每个记录的关键字 k为自变量,通过一种函数H(k)计算出函数值。把这个值解释为一块连续存储空间(即数组空间)的单元地址(即下标),将该记录存储到这个单元中。在此称该函数H为哈希函数或散列函数。按这种方法建立... 阅读全文
posted @ 2015-06-22 14:24 星梦缘vs惜 阅读(853) 评论(1) 推荐(1) 编辑
摘要: 前面讨论的查找都是内查询算法,被查询的数据都在内存。当查询的数据放在外存,用平衡二叉树作磁盘文件的索引组织时,若以结点为内外存交换的单位,则找到需要的关键字之前,平均要进行lgn次磁盘读操作,而磁盘、光盘的读写时间要比随机存取的内存代价大得多。其二,外存的存取是以“页”为单位的,一页的大小通常是10... 阅读全文
posted @ 2015-06-22 14:21 星梦缘vs惜 阅读(396) 评论(0) 推荐(0) 编辑