05 2015 档案

摘要:本文转载自:http://www.cnblogs.com/yangecnu/p/Introduce-B-Tree-and-B-Plus-Tree.html维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运... 阅读全文
posted @ 2015-05-24 21:46 vincently 阅读(179468) 评论(16) 推荐(49)
摘要:在计算机科学中,排序是一门基础的算法技术,许多算法都要以此作为基础,不同的排序算法有着不同的时间开销和空间开销。排序算法有非常多种,如我们最常用的快速排序和堆排序等算法,这些算法需要对序列中的数据进行比较,因为被称为基于比较的排序。基于比较的排序算法是不能突破O(NlogN)的。简单证明如下: ... 阅读全文
posted @ 2015-05-24 20:04 vincently 阅读(1010) 评论(0) 推荐(0)
摘要:归并排序是以O(NlogN)最坏情形运行时间运行,而所使用的比较次数几乎是最优的。它是递归算法的一个很好的实例。 归并排序的也遵循分治的思想。直观上其操作如下: 分解:分解待排序的n个元素的序列成各具n/2个元素的子序列。 解决:使用归并排序递归地排序两个子序列。 合并:合并两个已排序的... 阅读全文
posted @ 2015-05-24 11:19 vincently 阅读(1016) 评论(0) 推荐(0)
摘要:与归并排序一样,快速排序使用也使用了分治的思想。下面是对一个典型的子数组A[p,...,r]进行快速排序的三步分治过程: 分解:数组A[p,...,r]被划分成两个(可能为空)子数组A[P,...,q-1]和A[q+1,...,r],使得A[p,...,q-1]中每个元素都小于等于A[q],而... 阅读全文
posted @ 2015-05-22 20:26 vincently 阅读(3767) 评论(0) 推荐(0)