码迷,mamicode.com
首页 >  
搜索关键字:最坏情况    ( 494个结果
树状数组和线段树
一、树状数组 在解题过程中,我们有时需要维护一个数组的前缀和 S[i]=A[1]+A[2]+...+A[i] 。但是不难发现,如果我们修改了任意一个 A[i],S[i] 、 S[i+1]...S[n] 都会发生变化。可以说,每次修改 A[i] 后,调整前缀和 S[] 在最坏情况下会需要 O(n) 的时间。当 n 非常大时,程序会运行得非常缓慢。因此,这里我们引入“树状数组”,它的修改与求和都是...
分类:编程语言   时间:2015-07-16 22:15:40    阅读次数:209
算法导论 第十二章:二叉查找树(Binary Search Trees)
二叉查找树具有如下性质:        x是二叉查找树中的一个节点,如果y是x左子树中的一个节点,则y.key ≤ x.key ; 如果 y 是 x 右子树中的一个节点,则 x.key ≥ y.key.         在二叉树上执行的基本操作的时间与树的高度成正比。当这棵树是完全二叉树时,这些操作的最坏情况运行时间为Θ(lgn);如果该树是含n个节点的线性链,则这些操作的最坏情况的运行时间为...
分类:编程语言   时间:2015-07-16 19:57:41    阅读次数:157
算法导论 第十三章:红黑树
红黑树(red-black tree)是一种“平衡”查找树,它能保证最坏情况下,基本的动态集操作时间为O(lgn). 性质: 1)每个节点要么是红的,要么是黑的 2)根节点和叶子节点(NIL)是黑色的 3)若一个节点是红色的,则他的两个孩子节点是黑色的 4)对于每一个节点x,从该节点到其子酸节点的所有路径上包含相同数目的黑节点(#black nodes = black-height(x)...
分类:编程语言   时间:2015-07-16 19:54:30    阅读次数:141
081 Search in Rotated Sorted Array II
在 033Search in Rotated Sorted Array 稍作改进, 但是最坏情况下 复杂度为O(n)class Solution: # @param A, a list of integers # @param target, an integer to be searc...
分类:其他好文   时间:2015-07-08 14:21:27    阅读次数:132
《算法导论》— Chapter 11 散列表
1 序在很多应用中,都要用到一种动态集合结构,它仅支持INSERT、SEARCH以及DELETE三种字典操作。例如计算机程序设计语言的编译程序需要维护一个符号表,其中元素的关键字为任意字符串,与语言中的标识符相对应。实现字典的一种有效数据结构为散列表。 散列表是普通数组的推广,因为可以对数组进行直接寻址,故可以在O(1)的时间内访问数组的任意元素。对于散列表,最坏情况下查找一个元素的时间与在链表中...
分类:编程语言   时间:2015-07-07 17:00:31    阅读次数:131
《算法导论》 — Chapter 7 快速排序
序快速排序(QuickSort)也是一种排序算法,对包含n个数组的输入数组,最坏情况运行时间为O(n^2)。虽然这个最坏情况运行时间比较差,但是快速排序通常是用于排序的最佳实用选择,这是因为其平均性能相当好,期望的运行时间为O(nlgn),且O(nlgn)中隐含的常数因子很小,另外它还能够进行就地排序在虚拟环境中也能很好的工作。原理快速排序也和合并排序一样,基于分治法,分为分解、解决、合并三个步骤;...
分类:编程语言   时间:2015-07-01 12:12:12    阅读次数:126
真正理解红黑树,真正的(Linux内核里大量用到的数据结构,且常被二货问到)
作为一种数据结构,红黑树可谓不算朴素,因为各种宣传让它过于神秘,网上搜罗了一大堆的关于红黑树的文章,不外乎千篇一律,介绍概念,分析性能,贴上代码,然后给上罪恶的一句话,它最坏情况怎么怎么地...              我们想,一棵二叉树怎么就是最坏情况,那就是它退化为一个链表,这样查找就成了遍历。问题是,平衡二叉树怎么会退回链表!它是怎么保持平衡的?能不能简单地阐述?当然可以!一般的讲述红黑树...
分类:系统相关   时间:2015-06-28 01:19:29    阅读次数:201
HDU ACM 2178 猜数字
分析:最坏情况下,在1到m间,最多只要猜log2(m)+1(取整)次,所以=>m=2^n-1。即猜n次,猜到的最大数为2^n-1.也可认为,在数1到2^n-1间,都可以在n次内猜出来。 #include #include using namespace std; int main() { int T,n; scanf("%d",&T); while(T--) { printf("...
分类:其他好文   时间:2015-06-26 16:20:30    阅读次数:130
UVa - 524 - Prime Ring Problem
回溯法直接搞定,注意判断素数的时候为了提高效率,直接查到小于50的素数手工打表了。。。这个方法在校赛的时候也曾经用过,当时因为超时,直接找了前2000个素数打表。。。 注意:如果最坏情况下的枚举量很大,应该使用回溯法而不是生成-测试法。...
分类:其他好文   时间:2015-06-25 14:09:29    阅读次数:132
.NET 集合类型性能分析
集合AddInsertRemoveItemSortFindList如果集合重置大小,就是O(1)或O(n)O(n)O(n)O(1)O(n log n),最坏情况O(n^2)StackPush(),如果栈必须重置大小,就是O(1)或O(n)n/aPop,O(1)n/an/an/aQueueEnqueu...
分类:Web程序   时间:2015-06-24 16:07:40    阅读次数:178
494条   上一页 1 ... 35 36 37 38 39 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!