社区
数据结构与算法
帖子详情
线性表的插入运算的平均时间为什么是 O(n) 而不是 O(n/2)?
quakecs
2006-05-09 11:49:32
下面是书上的内容
================
用数组实现表时,在表中做插入运算,平均要移动表中一半的元素,因而算法所需的平均时间仍为Ο(n)。
问题
====
既然是平均移动一半的元素,平均时间应该是 O(n/2) 啊?
...全文
1339
24
打赏
收藏
线性表的插入运算的平均时间为什么是 O(n) 而不是 O(n/2)?
下面是书上的内容 ================ 用数组实现表时,在表中做插入运算,平均要移动表中一半的元素,因而算法所需的平均时间仍为Ο(n)。 问题 ==== 既然是平均移动一半的元素,平均时间应该是 O(n/2) 啊?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pkurao
2006-06-30
打赏
举报
回复
好好看看什么是大O吧
一般国外的数据结构书比较强调数学知识跟数据结构、算法的结合。
knuth《具体数学》
《离散数学及其应用》
《The Art of Computer Programming》
《Introduction to Algorithms》
《算法引论:一种创造性方法》
这几本书都还可以,你只要挑想看的部分先看下,否则太多了
see00966
2006-06-27
打赏
举报
回复
哦
chenhu_doc
2006-06-27
打赏
举报
回复
Ο(n)是度量算法复杂度的,不是度量程序运行时间的。O(n)表示程序的运行时正比于n,正比于n/2当然正比于n了。这是一个定性的分析而非定量的分析,如果做定量的分析,那个还要考虑每次查找的时间。那么一个程序在特定的语言,特定的CPU和内存,特定的编程风格下,运行的时间为:n/2*K +c, K为每个插入的运行时间。C为附加的时间,包括在进入循环体之外变量初始化,资源申请,资源释放,函数调用等操作所用的时间。这个公式对度量算法复杂度来说,是不是显得画蛇添足了。
matrass_zhao
2006-06-23
打赏
举报
回复
这个帖子怎么还没沉下去?搂主在这儿丢死人了。
jk012cgf
2006-06-22
打赏
举报
回复
平均时间应该是 n/2没错啊,可你的书上确实是:“因而算法所需的平均时间仍为Ο(n)”是这样?如果真是这样,那么书上的说法错误,因为“Ο(n)”是什么,是时间复杂度,可不是平均时间,平均时间绝对是n/2。看插入运算:长度为n的线性表,在第i个位置插入:i=1,2,3……n+1,好了,而插入位置的概率为1/(n+1)插到最后当然不用移动,第1个元素前移动n个元素n次,第2个元素前移动n-1个元素n-1次,来看移动的平均次数(1/n+1)*(((1+n)*n)/2)=n/2.这不是完了。
极深研几
2006-06-13
打赏
举报
回复
cite:billmo1986(潘安+宋玉)
"建议找几本国外版本的数据结构看看,里面很详细的。"能不能推荐几本?
ljkong
2006-06-12
打赏
举报
回复
ft,一样一样一样的,看楼上这么多解释
billmo1986
2006-06-09
打赏
举报
回复
是呀,二者相等的
严蔚敏的数据结构书对这个讲的很不清楚
建议找几本国外版本的数据结构看看,里面很详细的。
jp1984
2006-06-09
打赏
举报
回复
n ~ n/2 (n->inf)
so O(n) = O(n/2)
atiansk2006
2006-06-09
打赏
举报
回复
认同楼上所说的.
imdg
2006-06-03
打赏
举报
回复
O(n) == O(n/2)
chmsky
2006-06-02
打赏
举报
回复
O(n/2)是移动的期望值
O(n/2)就是O(n)
Zephyrzzz
2006-05-30
打赏
举报
回复
从另一个角度想,其实查找插入位置也需要时间,你可以理解为加入查找时间的复杂度吧,虽然不加也是这样:)
sclzmbie
2006-05-29
打赏
举报
回复
good
merlinran
2006-05-28
打赏
举报
回复
“O(n)表示程序的运行时正比于n,正比于n/2当然正比于n了。”
O(n)表示算法复杂度的上界。theta(n)才表示与n成比例。
casablancaliu
2006-05-27
打赏
举报
回复
恩 同意楼上的
beatles89
2006-05-25
打赏
举报
回复
dext(德克斯特) 说得很对;
时间复杂度指的是数量级上的度,所以n=n/2。
xl5338870
2006-05-23
打赏
举报
回复
建议LZ好好看看大O表示法,怎么会问这个问题?
treeroot
2006-05-22
打赏
举报
回复
一样
AKQJ10
2006-05-22
打赏
举报
回复
线性的ax+b都是O(n)
加载更多回复(4)
线性表
的习题
对于
线性表
的学习,需要习题来巩固基础,这是一套能帮你解决这个问题的习题
算法与数据结构
线性表
答案.pdf
算法与数据结构
线性表
答案.pdf
数据结构 第一章
线性表
数据结构 这主要是老师上课时候关于第一章的一些总结,很有参考意义 !
【数据结构】第二周
线性表
的顺序表示和实现.pdf
该资源为个人观看青岛大学王卓老师数据结构课程课堂笔记
数据结构笔试题基础.doc
数据结构笔试题基础.doc
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章