码迷,mamicode.com
首页 >  
搜索关键字:最坏情况    ( 494个结果
算法系列笔记3(二叉查找树)
(1)二叉查找树的性质:设x为二叉查找树的一个结点。如果y是x左子树中的一个结点,则key[y]≤key[x]。如果y是x的右子树中的一个结点。则key[x]≤key[y]. (2)二叉查找树的结点中除了key域和卫星数据外,还包括left、right和p分别指向结点的左儿子、右儿子和父节点。 (3)构造一棵二叉查找树最好情况下时间复杂度为O(nlgn),最坏情况为O(n^2)。随机化构造一棵...
分类:编程语言   时间:2015-02-02 23:05:44    阅读次数:322
C++ SUNDY算法(BM算法的改进)
字符串查找算法中,最著名的两个是KMP算法Knuth-Morris-Pratt)和BM算法(Boyer-Moore)。两个算法在最坏情 况下均具有线性的查找时间。BM算法往往比KMP算法快上3-5倍。但是BM算法还不是最快的算法,这里介绍一种比BM算法更快一些的查找算法。 例如我们要在"substringsearchingalgorithm"查找"search" 第一步,把子串与文本左边对齐...
分类:编程语言   时间:2015-02-01 16:14:46    阅读次数:245
排序比较
各种排序运行时间比较以下表格展现各算法的运行时间:算法最坏情况运行时间平均情况/期望运行时间插入排序θ(n2)θ(n2)归并排序θ(nlgn)θ(nlgn)堆排序O(nlgn)—快速排序θ(n2)θ(nlgn)建立一个类,将之前写的各种排序算法纳入其中,Code如下: class SortMe...
分类:编程语言   时间:2015-01-28 21:04:02    阅读次数:337
Chapter 7 快速排序
快速排序---实际排序应用中最好的选择期望时间复杂度为θ(nlgn)最坏情况复杂度为θ(n2)----由于隐含常数因子小及原址排序,故广泛用7.1 快速排序描述采用分治思想分解:将数组A[p..r]划分为两个子数组A[p..q-1]和A[q+1,r],划分的依据是使A[p..q-1]的值全都小于或等...
分类:编程语言   时间:2015-01-28 17:39:36    阅读次数:182
POJ 3783 Balls 动态规划
题意:给定B (B 方法就是动态规划了。  虽然刚开始一直以为是个贪心或者构造 dp[i][j] 表示有i层楼, 剩余j个球时, 最坏情况要确定K 所需的次数 那么在这些楼层里 我们可以选择在k层(1 有两种情况,破跟不破 (1)不破,  则排除掉了k层,剩余i-k层  则转化为 dp[i - k][j] (2)破了 则剩余i - 1层, 球剩k - 1个   转化为 dp...
分类:其他好文   时间:2015-01-24 21:25:43    阅读次数:291
【转】浅谈算法和数据结构: 九 平衡查找树之红黑树
http://www.cnblogs.com/yangecnu/p/3627386.html前面一篇文章介绍了2-3查找树,可以看到,2-3查找树能保证在插入元素之后能保持树的平衡状态,最坏情况下即所有的子节点都是2-node,树的高度为lgN,从而保证了最坏情况下的时间复杂度。但是2-3树实现起来...
分类:编程语言   时间:2015-01-18 18:27:08    阅读次数:354
Leetcode#45 Jump Game II
原题地址最朴素的想法是,对于每个位置,挨个尝试一遍不同的跳法,这样总能找到最优解,最坏情况下A[i]=n,那么时间复杂度为O(n^2)。显然会超时,所以在这个朴素的算法上改进。如果用动态规划求解,考虑如何划分子问题。一个很自然的想法是将起跳点为子问题边界,令p[i]表示从第i个位置起跳,到终点所需最...
分类:其他好文   时间:2015-01-18 15:40:58    阅读次数:237
二路归并 && 插入归并 && 原地归并
插入归并 归并排序的时间复杂度为O(nlgn),空间复杂度为O(n); 但是一般来讲,基于从单个记录开始两两归并的排序并不是特别提倡,一种比较常用的改进就是结合插入排序,即先利用插入排序获得较长的有序子序列,然后再两两归并(改进后的归并亦是稳定的,因为插入排序是稳定的)。之所以这样改进是有原因的:尽管插入排序的最坏情况是O(n^2),看起来大于归并的最坏情况O(nlgn),但通常情况下,由于插...
分类:其他好文   时间:2015-01-17 18:03:28    阅读次数:222
AVL树
一. 介绍 在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G.M. Adelson-Velsky和E.M. Landis,他们在196...
分类:其他好文   时间:2015-01-14 12:43:01    阅读次数:194
数据结构基础(18) --红黑树的设计与实现(1)
红黑树是一种自平衡的二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组(C++ STL 中的map/set)。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。红黑树虽然很复杂,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的...
分类:其他好文   时间:2015-01-11 20:26:14    阅读次数:273
494条   上一页 1 ... 40 41 42 43 44 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!