稳定性:快速 希尔 选择 堆排序不稳定 时间复杂度:平均情况下,快速、希尔、归并和堆排序的时间复杂度均为O(nlog2(n)),其他都是O(n^2)。最坏情况下,快排的时间复杂度为O(n^2) ...
分类:
编程语言 时间:
2016-08-05 17:43:09
阅读次数:
205
虽然avl树和红黑树在数据搜索和排序方面都是有效的数据结构,但是都显得特别麻烦,跳跃表就显得特别简单,虽然简单 不影响他性能,在平均情况下,其插入、删除、查找数据时间复杂度都是O(log(N)),其最坏情况下都为O(N)。 跳跃表的构造源于一种用于查找的基础数据结构 链表。跳跃表就是在普通链表的情况 ...
虽然avl树和红黑树在数据搜索和排序方面都是有效的数据结构,但是都显得特别麻烦,跳跃表就显得特别简单,虽然简单 不影响他性能,在平均情况下,其插入、删除、查找数据时间复杂度都是O(log(N)),其最坏情况下都为O(N)。 跳跃表的构造源于一种用于查找的基础数据结构 链表。跳跃表就是在普通链表的情况 ...
分类:
数据库 时间:
2016-08-04 13:16:25
阅读次数:
295
快速排序最坏情况运行时间为O(n2),但实际中通常都是用于排序的最佳的实用选择,因为其平均性能相当好:期望的运行时间为O(nlgn),且O(nlgn)记号中隐含的常数因子很小。 快速排序是一种就地排序。同时,是一种不稳定的排序。本文内容主要参照算法导论。 快速排序主要利用了分治的思想。一般分为三步进 ...
分类:
编程语言 时间:
2016-07-31 10:14:12
阅读次数:
261
AVL树是平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(logn)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。它能保持二叉树的高度平衡,尽量降低二叉树的高度,减少树的..
分类:
其他好文 时间:
2016-07-17 18:04:35
阅读次数:
193
1.归并排序 时间复杂度 平均情况与最坏情况为 O(nlog(n)) public class MergeSort { //将一个数组中的两个有序区间[p,q]和(q,r]合成为一个有序区间[p,r] //没有返回值也可,因为数组传的是引用 public int[] merge(int a[],in ...
分类:
编程语言 时间:
2016-07-12 17:08:49
阅读次数:
230
2.1插入排序 扑克牌这个栗子不错。以后得多用扑克牌来形象化思考排序问题。 根据伪代码用java实现插入排序 循环不变式。。。。。。。 2.2分析算法 RAM模型,输入规模,运行时间(假定第i行的每次执行需要时间Ci), 最坏情况与平均情况分析,增长量级 2.3设计算法 分治法 归并排序 Merge ...
分类:
编程语言 时间:
2016-07-10 13:59:18
阅读次数:
192
红黑树
红黑树(英语:Red–black tree)是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由鲁道夫·贝尔发明的,他称之为"对称二叉B树",它现代的名字是在Leo
J. Guibas和Robert Sedgewick于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实...
分类:
其他好文 时间:
2016-07-09 12:15:03
阅读次数:
1936
一,B树的定义及介绍 为什么会有B树? 熟悉的树的结构有二叉树查找树或者平衡二叉树……平衡二叉树保证最坏情况下各个操作的时间复杂度为O(logN),但是为了保持平衡,在插入或删除元素时,需要进行旋转啊...一系列操作,因此实现起来比较复杂。而对于二叉查找树,基本操作在最坏情况下会出现O(N)的时间复 ...
分类:
其他好文 时间:
2016-06-25 21:38:55
阅读次数:
141
线性时间排序 各种排序算法总结已经介绍了几种能在O(n*log(n))时间内培训n个数的算法。归并排序和堆排序达到了最坏情况下的上界;快速排序在平均情况下达到该上界。这些算法都有一个有趣的性质:在排序的最终结果中,各元素的次序依赖于它们之间的比较。这类算法为比较算法,还有一类算法是线性时间复杂度的排 ...
分类:
编程语言 时间:
2016-06-21 09:16:48
阅读次数:
183