社区
数据结构与算法
帖子详情
线性表的插入运算的平均时间为什么是 O(n) 而不是 O(n/2)?
quakecs
2006-05-09 11:49:32
下面是书上的内容
================
用数组实现表时,在表中做插入运算,平均要移动表中一半的元素,因而算法所需的平均时间仍为Ο(n)。
问题
====
既然是平均移动一半的元素,平均时间应该是 O(n/2) 啊?
...全文
1291
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)
《数据结构 1800题》
(2)在相同的规模 n下,复杂度O(n)的算法在
时间
上总是优于复杂度 O(2 n)的算法 (3)所谓
时间
复杂度是指最坏情况下,估算算法执行
时间
的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B...
数据结构与算法-练习题
插入
n/2 删除 n-1/2 查询 n+1/2 6若某
线性表
中最常用的操作是在最后一个元素之后
插入
一个元素和删除第一个元素,则采用( )存储方式最节省
运算
时间
。A、单链表B、仅有头指针的单循环链表C、双链表D、仅有尾指针的...
数据结构基础系列(2):
线性表
数据结构课程是计算机类专业的...系列课程包含11个部分,本课为第2部分,
线性表
的逻辑结构,
线性表
的顺序表和链表两种存储结构,以及在各种存储结构中基本
运算
的实现,还通过相关的应用案例介绍了相关知识的应用方法。
数据结构选择题(2).doc
在n个结点的顺序表中,算法的
时间
复杂度是O(1)的操作是( b) 选择一项: a. 删除第i个结点(1 i n) b. 访问第i个结点(1 i n)和求第i个结点的直接前驱(2 i n)c. 将n个结点从小到大排序 d. 在第i个结点后
插入
一...
数据结构自测卷集及答案
解: 显然,
平均
查找长度= O(log 2 n) 次(2 5 )。但具体是多少次,则不应当按照公式来计算( 即( 21×log 2 21)/20=4.6次并不正确! )。因为这是在假设 n=2 m -1的情况下推导出来的公式。应当用穷举法罗列...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章