码迷,mamicode.com
首页 >  
搜索关键字:最坏情况    ( 494个结果
[经典面试题]给定一个有序(非降序)数组A,可含有重复元素,求最小的i使得A[i]等于target,不存在则返回-1
【题目】 给定一个有序(非降序)数组A,可含有重复元素,求最小的i使得A[i]等于target,不存在则返回-1。 【分析】 此题也就是求target在数组中第一次出现的位置。这里可能会有人想先直接用原始的二分查找,如果不存在直接返回-1, 如果存在,然后再顺序找到这个等于target值区间的最左位置,这样的话,最坏情况下的复杂度就是O(n)了,没有完全发挥出二分查找的优势。 这里的...
分类:编程语言   时间:2015-01-05 13:02:16    阅读次数:392
[算法]二叉查找树
【简介】 二叉查找树是一种数据结构,它支持多种动态集合操作。 在二叉查找树上执行的基本操作的时间与树的高度成正比。对于一棵含有n个节点的完全二叉树,这些操作的最坏情况运行时间为O(n)。 【结构体】 一棵二叉查找树按二叉树结构来组织的。 // 二叉查找树节点 struct TreeNode { int val; TreeNode *left; Tree...
分类:编程语言   时间:2015-01-02 16:06:45    阅读次数:209
快速选择select算法
问题描述: 在一个数组中找出第k小的数。 算法: 快速选择select算法。 策略:五分化中项的中项做pivot 复杂度:最坏情况下O(n) 对比: 1、RANDOMIZED-SELECT,以序列中随机选取一个元素作为主元,可达到线性期望时间O(N)的复杂度。 2、SELECT,快速选择算法,以序列中“五分化中项的中项”,或“中位数的中位数”作为主元(枢纽元),在最...
分类:编程语言   时间:2014-12-26 01:01:11    阅读次数:745
HDU 1005
这道题类似数学中的找规律不断往前计算f[n],直到出现一组数据(两个相邻的数)和前面的(两个相同的数)相同,那么就形成了循环因为始终mod7,那么每个数字只有0~6 7种可能,两个为一组,最多49种可能,也就是往前计算最坏情况也只要计算49次就好了 1 #include 2 #include 3.....
分类:其他好文   时间:2014-12-21 17:59:54    阅读次数:164
leetcode Find Minimum in Rotated Sorted Array II
和上题一样,这里要求可以重复数字。那么需要考虑的就比较多一步了。如果中间的值和左边的值相等的话,并且中间下标不等于左边下标的话,那么就存在问题了,因为我们不知道最小的到底会出现在哪里。那么就只能left++,继续判断了,所以最坏情况还是O(n)只要在上题基础上,稍微修改一下就行了。class Sol...
分类:其他好文   时间:2014-12-18 13:32:36    阅读次数:133
伸展树的原理及实现源代码(有图文详解和C++实现代码)
伸展树的原理及实现源代码(有图文详解和C++实现代码) 伸展树(Splay Tree)是一种二叉搜索树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。它的优势在于不需要记录用于平衡树的冗余信息。在伸展树上的一般操作都基于伸展操作。 为什么需要伸展树(Splay Tree) 各种二叉搜索树存在不足。比如:对于一个有n个节点的平衡二叉搜索树,虽然最坏情况下每次查找的时间复杂度不会超过O(logn),但是如果访...
分类:编程语言   时间:2014-11-25 16:30:49    阅读次数:227
如何理解算法中的渐进符号?
我们分析一个算法的时候,常常需要用到数学去描述其性能。最常用的的是ø。比如在一段程序中有 For(I = 0,I        For(J = 0; j For (cnt = 0; cnt 我们会说其最坏情况是n^2+ n,这时候,实际上我们没有考虑机器因素,我们把每一条指令的执行时间都当做单位1来看,如果我们考虑到机器因素,比如在A机器上,每条指令执行的速度是c1,那么他的最坏情况...
分类:编程语言   时间:2014-11-24 22:31:37    阅读次数:309
C#排序算法的比较
首先通过图表比较不同排序算法的时间复杂度和稳定性。排序方法平均时间最坏情况最好情况辅助空间稳定性直接插入排序O(n2)O(n2)O(n)O(1)是冒泡排序O(n2)O(n2)O(n)O(1)是简单选择排序O(n2)O(n2)O(n2)O(1)是希尔排序-O(nlog2n)~O(n2)O(nlog2n...
分类:编程语言   时间:2014-11-06 14:38:58    阅读次数:305
第八章 线性时间排序
摘要: 本章先回顾了前面介绍的合并排序、堆排序和快速排序的特点及运行运行时间。合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O(n^2),平均情况下达到O(nlgn),因此合并排序和堆排序是渐进最优的。这些排序在执行过程中各元素的次序基于输入元素间的比较,称这种算法为比较....
分类:编程语言   时间:2014-11-03 14:15:19    阅读次数:301
第七章——快速排序
快速排序对于n个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n2)的排序算法,虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中隐含的常数因子非常小。1、快速排序的描述 快速排序算法采用的....
分类:编程语言   时间:2014-11-03 11:23:38    阅读次数:280
494条   上一页 1 ... 41 42 43 44 45 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!