数据结构线性表A.pptVIP

  • 3
  • 0
  • 约1.38万字
  • 约 54页
  • 2017-12-30 发布于湖北
  • 举报
数据结构线性表A

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2.2.3 顺序表的运算效率分析 算法时间主要耗费在移动元素的操作上,因此 计算时间复杂度的基本操作(最深层语句频度) T(n)= O (移动元素次数) 而移动元素的个数取决于插入或删除元素的位置。 思考:若插入在尾结点之后,则根本无需移动(特别快); 若插入在首结点之前,则表中元素全部要后移(特别慢); 应当考虑在各种位置插入(共n+1种可能)的平均移动次数才合理。 讨论1:若在长度为 n 的线性表的第 i 位前 插入一个元素,则向后移动元素的次数f(n)为: f(n) = n – i + 1 时间效率分析: 2.2.3 顺序表的运算效率分析 * 推导:假定在每个元素位置上插入x的可能性都一样(即概率P相同),则应当这样来计算平均执行时间: 将所有位置的执行时间相加,然后取平均。 若在首结点前插入,需要移动的元素最多,后移次数为n; 若在a1后面插入,要后移n-1个元素,后移次数为n-1; …… 若在an-1后面插入,后移次数为1; 若在尾结点an之后插入,则后移次数为0; 故插入时的平均移动次数为:n(n+1)/2÷(n+1)=n/2≈O(n) 共有多少种插入形式?——连头带尾有n+1种! 所有可能的元素移动次数合计:

文档评论(0)

1亿VIP精品文档

相关文档