社区
数据结构与算法
帖子详情
关于几个算法时间问题
shengb1981
2009-11-21 09:17:30
近期学习了《算法导论》一书,后自己整理笔记,遇到一些概念搞晕了,请高人指点。
比如几个排序算法的运行时间分析:
插入排序:最好情况Ω(n) 最坏情况Θ(n^2) 平均情况Ο(n^2)
归并排序:最好情况Θ(nlgn) 最坏情况Θ(nlgn) 平均情况Θ(nlgn)
快速排序:最好情况Ο(nlgn) 最坏情况Θ(n^2) 平均情况Ο(nlgn)
而之前的《数据结构》一书中都是以Ο(n) Ο(n^2) Ο(nlgn)的形式出现的,到底哪个对,懵了~~~~
...全文
82
5
打赏
收藏
关于几个算法时间问题
近期学习了《算法导论》一书,后自己整理笔记,遇到一些概念搞晕了,请高人指点。 比如几个排序算法的运行时间分析: 插入排序:最好情况Ω(n) 最坏情况Θ(n^2) 平均情况Ο(n^2) 归并排序:最好情况Θ(nlgn) 最坏情况Θ(nlgn) 平均情况Θ(nlgn) 快速排序:最好情况Ο(nlgn) 最坏情况Θ(n^2) 平均情况Ο(nlgn) 而之前的《数据结构》一书中都是以Ο(n) Ο(n^2) Ο(nlgn)的形式出现的,到底哪个对,懵了~~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shengb1981
2009-11-23
打赏
举报
回复
谢谢各位的点拨,我会踏踏实实的学的!
hh_xj
2009-11-22
打赏
举报
回复
相信楼主都知道Ω,Θ,Ο,他们代表渐进性相同的一族函数。是一个函数集。Ω代表下界,Ο代表上界,这种表示法不是紧凑的,比如用O(nlgn)代表的算法运行时间实际上可能是 T(n) = Cn,但T(n)属于O(nlgn)。
计算算法的运行时间T(n)要算法的不同运行情况,有最好的情况和最坏的情况和我们期望的平均情况。我们用最坏情况来衡量算法性能。如果不加说明,O代表算法的最坏情况,Ω代表算法的最好表现,如果是Θ集,那么最好情况和最坏情况下的T(n)函数在渐进性上相同。比如快排T(n) = O(n^2)。但是如果加了一定的说明的话,如平均情况下,快排的T(n) = O(nlgn),这时的O仅代表在这种平均情况下得出的T(n)的渐进性。如果不加这个平均情况,这个T(n) = O(nlgn)容易让人误解,因为最坏情况下T(n) = Θ(n^2)。
总之,理解O, Θ, Ω的意义,和算法的运行细节,就可以判断了。
申明:词不达意!有错的话不要被我误导
linglongyouzhi
2009-11-21
打赏
举报
回复
同意这种看法,还是要理解算法的原理才是正道啊
[Quote=引用 1 楼 zhangxfeng112 的回复:]
LZ问这个问题,就知道你一点都没理解各个算法。。。
那就去看每种算法啊,来这问是不是想把高人的回答当标准答案或者是定理背下来呀?
那样有用么?你觉得有意思么?
别的不知道,我只知道什么时候,什么规模该选什么算法。。。
还有插入排序,它的时间主要是花费在移动数据上,折半查找可以忽略,所以时间复杂度计算的是移动次数,所以平均时间发杂读应该是Ο(n^2),可能是你之前看的书写错了,要么就是你记错了。
[/Quote]
perfecttt
2009-11-21
打赏
举报
回复
仔细的看看书吧,咬文嚼字,书上的是真理,别人说的不一定对。呵呵。
zhangxfeng112
2009-11-21
打赏
举报
回复
LZ问这个问题,就知道你一点都没理解各个算法。。。
那就去看每种算法啊,来这问是不是想把高人的回答当标准答案或者是定理背下来呀?
那样有用么?你觉得有意思么?
别的不知道,我只知道什么时候,什么规模该选什么算法。。。
还有插入排序,它的时间主要是花费在移动数据上,折半查找可以忽略,所以时间复杂度计算的是移动次数,所以平均时间发杂读应该是Ο(n^2),可能是你之前看的书写错了,要么就是你记错了。
如何计算
时间
算法
复杂度
在进行
算法
分析时,语句总的执行次数T(n)是关于
问题
规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。
算法
的
时间
复杂度,也就是
算法
的
时间
量度,记作:T(n}=0(f(n))。它表示随
问题
规模n的增大,
算法
执行...
算法
导论------递归
算法
的
时间
复杂度求解
1.
算法
设计与分析概述 在总结递归
算法
的
时间
复杂度分析之前,应该明确几组概念。... 非递归
算法
时间
复杂度分析较为简单,通常是计算
算法
中基本语句执行次数,一般都是一个关于
问题
规模n的表达式,
算法
时间
复杂度计算
首先了解一下
几个
概念。一个是
时间
复杂度,一个是渐近
时间
复杂度。前者是某个
算法
的
时间
耗费,它是该
算法
所求解
问题
规模n的函数,而后者是指当
问题
规模趋向无穷大时,该
算法
时间
复杂度的数量级。 当我们评价一...
算法
时间
复杂度的计算:从几道题目讲起
引子 最近再来回顾一下
算法
相关的知识,那自然,首先要学习的就是
时间
复杂度的概念,以及其计算方式。...下面,我将给出
几个
简单的
算法
,并计算其
时间
复杂度。
算法
案例 案例一 public void fun(int n...
算法
的
时间
复杂度和空间复杂度-总结
(1)
时间
频度 一个
算法
执行所耗费的
时间
,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个
算法
都上机测试,只需知道哪个
算法
花费的
时间
多,哪个
算法
花费的
时间
少就可以了。并且一...
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章