码迷,mamicode.com
首页 >  
搜索关键字:最坏情况    ( 494个结果
常见排序算法的复杂度
算法名称 平均情况 最好情况 最坏情况 辅助空间直接插入排序 O(n^2) O(n) O(n^2) O(1)希尔排序 O(nlgn)-O(n^2) O(n^1.3) O(n^2) O(1)起泡排序 O(n^2) O(n) O(n^...
分类:编程语言   时间:2015-04-12 15:59:07    阅读次数:116
在最坏情况下,找到n个元素中第二小的元素需要n+lgn-2次比较
首先两两比较找到最大的元素,需要n-1次,即二叉树的非叶子节点的个数。之后次最大的一定在和最大的元素比较过的元素中,共有lgn-1个,即树的高度。故加起来就是n+lgn-2#includeusing namespace std;class Node{public: Node(); Nod...
分类:其他好文   时间:2015-04-03 18:45:19    阅读次数:166
100层楼2个鸡蛋
有一栋楼共100层,一个鸡蛋从第N层及以上的楼层落下来会摔破, 在第N层以下的楼层落下不会摔破。给你2个鸡蛋,设计方案找出N,并且保证在最坏情况下, 最小化鸡蛋下落的次数。设最坏情况下的次数为K,如果第一个鸡蛋第一次就在x层摔坏,则第二个鸡蛋应该从第1层开始试到x-1层,最坏还要试x-1次,则总测试...
分类:其他好文   时间:2015-04-02 01:04:04    阅读次数:311
树状数组与线段树
一:树状数组        树状数组是对一个数组改变某个元素和求和比较实用的数据结构。两中操作都是O(logn)。 需求:有时候我们需要频繁地求数组的前k项和或者求数组从小标i到j的和,这样每次最坏情况下的时间复杂度就会为O(N),这样效率太低了。而树状数组主要就是为了解决这样一个问题。树状数组在求和及修改都可以在O(lgN)时间内完成。        树状数组需要额外维护一个数组,我们设为...
分类:编程语言   时间:2015-04-01 21:59:03    阅读次数:177
O(n*lgn)时间复杂度的逆序对统计算法实现思想
逆序对定义:设A[1..n]是一个包含n个不同数的数组。如果在i A[j],则(i,j)就称为A中的一个逆序对(inversion)。 现给出一个算法,其可以用O(n*lgn)的最坏情况运行时间,确定n个元素的任何排列中逆序对的数量。 简单的算法实现思想:我们可以单纯的通过从前往后的逐一比对来确定逆序对的数量,虽然实现简单,但这样一来时间复杂度将会上升为O(n*n),不符合我们的要求。 ...
分类:编程语言   时间:2015-03-28 17:16:05    阅读次数:355
【Weiss】【第03章】练习3.22、3.23、3.24:无代码题,栈的思考题
【练习3.22】a.提出支持栈的Push和Pop操作以及第三种操作FindMin的数据结构,其中FindMin返回该数据结构的最小元素,所有操作在最坏情况下的运行时间都是O(1)。b.证明,如果我们加入第四种操作DeleteMin,那么至少有一种操作必须花费Ω(logN)时间。【练习3.23】说明如...
分类:其他好文   时间:2015-03-21 01:05:39    阅读次数:169
快速排序的随机化算法
快速排序在最坏情况下的复杂度较高,采取随机化算法选择每次的分割点,能够在一定程度上使每次划分的平衡性更好。 // // main.cpp // eoj1807 // // Created by Fangpin on 15/3/15. // Copyright (c) 2015年 FangPin. All rights reserved. // #include #include #...
分类:编程语言   时间:2015-03-15 16:54:45    阅读次数:147
数据结构学习笔记——排序
1. 分类2. 7种内排序算法的各种指标排序方法平均情况最好情况最坏情况辅助空间稳定性移动次数的平均情况移动次数的最好情况移动次数的最坏情况冒泡排序O(n2)O(n)O(n2)O(1)稳定O(n2)0O(n2)简单选择排序O(n2)O(n2)O(n2)O(1)稳定O(n)0O(n)直接插入排序O(n...
分类:编程语言   时间:2015-03-10 23:03:32    阅读次数:353
各种符号表实现的渐进性能总结
最坏情况下的成本 平均情况下的成本 是否高效低支持有序性的相关操作 关键接口 查找 插入 查找 插入顺序查找(无序链表) N N ...
分类:其他好文   时间:2015-03-09 23:46:45    阅读次数:279
数组模拟实现邻接表
图的边的表示方法,有很多。像邻接矩阵、边集数组、邻接表等。其中,第三者的时空复杂度应该是最优的。但是实现却需要比较麻烦的链表,但是我们也可以用数组来模拟链表,使编程的复杂度进一步降低。 这种算法:遍历所有的边的时间复杂度是O(M),M表示边的总数,空间复杂度也是O(M)。在最坏情况下,查询i与j是....
分类:编程语言   时间:2015-03-08 20:02:58    阅读次数:185
494条   上一页 1 ... 38 39 40 41 42 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!