社区
数据结构与算法
帖子详情
线性表的插入运算的平均时间为什么是 O(n) 而不是 O(n/2)?
quakecs
2006-05-09 11:49:32
下面是书上的内容
================
用数组实现表时,在表中做插入运算,平均要移动表中一半的元素,因而算法所需的平均时间仍为Ο(n)。
问题
====
既然是平均移动一半的元素,平均时间应该是 O(n/2) 啊?
...全文
1360
24
打赏
收藏
线性表的插入运算的平均时间为什么是 O(n) 而不是 O(n/2)?
下面是书上的内容 ================ 用数组实现表时,在表中做插入运算,平均要移动表中一半的元素,因而算法所需的平均时间仍为Ο(n)。 问题 ==== 既然是平均移动一半的元素,平均时间应该是 O(n/2) 啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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" 本资源是关于算法与数据结构的
线性表
答案,涵盖了
线性表
的基本...答案:n/2。 5. 若长度为 n 的无序
线性表
采用顺序存储结构,在其中查找某个元素的
平均
比较的次数为?答案:(n-1)/2。
【数据结构】第二周
线性表
的顺序表示和实现.pdf
查找成功时,查找的
平均
时间
复杂度是O(n/2),最坏情况下是O(n),而最好情况下(即目标元素在表的开头)是O(1)。 总的来说,
线性表
是数据结构的基础,它的顺序存储结构在某些场景下提供高效的数据访问,但在
插入
和...
数据结构笔试题基础.doc
在顺序表的
插入
运算
中,需要将新结点 x
插入
到表的第 I 个位置上,使长度为 n 的
线性表
变成长度为 n+1 的
线性表
。该算法的
时间
主要花费在循环的结点后移语句上,执行次数是 n-I+1。当 I=n+1,最好情况,
时间
复杂度 o...
数据结构复习资料
在顺序表的操作中,
插入
操作(如insert_sqlist)可能导致大量结点的移动,最坏情况下需要移动N个结点,
时间
复杂度为O(n),
平均
时间
复杂度为O(n/2)。删除操作(如delete_sqlist)同样涉及到结点移动,最坏和
平均
时间
...
数据结构 耿国华版 期末考试练习题
"数据结构耿国华版期末考试练习题" 本资源摘要信息涵盖了数据结构耿国华版期末考试练习题的第...2.
线性表
L=(a1,a2,…,an)用数组表示,假定删除表中任一元素的概率相同,则删除一个元素
平均
需要移动(n-1)/2个元素。
数据结构与算法
33,029
社区成员
35,337
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章