数据结构线性表复杂度如何判断

如图第二小题 答案中的代码为什么是O(1)?for循环n/2难道不是O(n)吗?
第二小题:

img

答案:

img

我知道了 这个是空间复杂度

兄弟,是空间复杂度,不是时间复杂度啊。时间复杂度是O(n),但空间复杂度是O(1),因为只增加了一个temp临时变量

问的是空间复杂度,你在搞时间复杂度,不审题呀

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7522196
  • 这篇博客你也可以参考下:两个升序数组合并为一个升序数组,时间复杂度O(n)
  • 除此之外, 这篇博客: 数据结构(C语言第2版) 课后习题答案之第二章 线性表中的 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是(   )。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • A.访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)

    B在第i个结点后插入一个新结点(1≤i≤n)

    C删除第i个结点(1≤i≤n)

    D.将n个结点从小到大排序

    解析:顺序表是一种随机存取结构,

    可直接通过数组的下标直接定位,时间复杂度是O(1),A正确。

    插入一个新结点的时间复杂度为O(n2),B错误。

    排序的时间复杂度为O(n2 )或O(n log2 n),D错误。