5.顺序表(续)

阅读: 评论:0

5.顺序表(续)

5.顺序表(续)

顺序表主要操作的性能分析

顺序表所有操作的实现中,最复杂、最耗时的就是查找、插入和删除操作的实现。分析顺序表主要操作的性能,主要分析这三个操作实现代码的时间代价。


1.查找操作的性能分析

程序2-8所示的函数Search是顺序表的顺序查找算法,算法的时间代价用数据比较次数来衡量。在查找成功的场合,若要找的正好是表中第一个元素,数据比较次数为1,这是最好的情况;若要找的是表中最好的第n个元素,数据比较次数为n(设表的长度为n),这是最坏的情况。若要计算平均数据比较次数,需要考虑个个元素的查找概率pi及找到该元素时的数据表交次数ci。查找的平均数据比较次数ACN(Average Comparing Number)为

ACN=∑pi•ci (∫1~n)

计算平均值是为了了解算法对表操作的整体性能。若仅考虑相等查找概率大情形,有p1=p2=…=pn=1/n,且查找第一个元素的数据比较次数为1,查找第二个元素的数据比较次数为2,……,查找第i个元素的数据比较次数为i,则

ACN=∑(1/n)i=(1/n)∑i=(1/n)(1+2+…+n)
=(1/n)•(n+1)n/2=(n+1)/2(∫1~n)

即平均要比较(n+1)/2个元素

在查找不成功的场合,需要把整个表全部检测一遍,数据比较次数达到n次


2.插入与删除操作的性能分析

在顺序表中插入一个新元素时,如果要求插入后仍保持各元素原来的互相位关系,就必须做元素的成块移动。

[例 2-1] 在新元素x插入到指定位置后i前,必须把从i到n的所有元素成块向后移动一个元素位置,空出第i个位置后才可插入新元素,如下表所示

01234567
data25345716480963
插入50⬆️
01234567
data2534575016480963

在顺序表中删除一个元素时,如果要保持表中个元素原来的互相位置关系,就必须做元素的成块移动。

[例 2-2] 删除第i个元素后必须把从i+1到n的所有元素成块向前移动一个元素位置,如下表所示

0123456
data25345716480963
删除16⬇️</

本文发布于:2024-01-30 15:17:08,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659903120928.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:顺序
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23