Time complexity 什么是*<;伪码中的a[j]?

Time complexity 什么是*<;伪码中的a[j]?,time-complexity,pseudocode,Time Complexity,Pseudocode,我正在尝试codechef中针对数据结构和算法的实践中给出的时间复杂度mcq问题。其中一个问题有一行a*

我正在尝试codechef中针对数据结构和算法的实践中给出的时间复杂度mcq问题。其中一个问题有一行a* 我知道,如果没有一个and语句,复杂性将是O(n^2)。但是a对我来说是完全陌生的。我在互联网上搜索过它,但我得到的只是关于a星算法和星号的信息!我试着用python运行带有print语句的程序,但它说*无效。这是否意味着指向数组中第一个元素的指针之类的东西

查找以下函数的时间复杂度

    n = len(a)
    j = 0
    for i =0 to n-1:
        while (j < n and a* < a[j]):
            j += 1
n=len(a)
j=0
对于i=0到n-1:
而(j

答案是O(n)。但是有嵌套循环,所以它应该是O(n^2)。需要帮助!谢谢

实际上,
a*
的意思并不重要。问题是确定算法的时间复杂度。请注意,尽管有两个嵌套循环,但内部
while
循环不是完全独立的循环。它的索引是
j
,从0开始递增,上限为
n
。因此,内部循环最多只能运行
n
次。这意味着总体复杂度仅为O(n)。

没有固定的标准“伪代码”语言,伪代码只是以类似于真实编程语言的方式表示算法的常用名称。您的伪代码类似于Python,其他人可以使用类似于C或Pascal的东西。这意味着没有共同的参照系,不同的事物可能意味着什么。这包括像
a*
这样的表达式。但即使是i循环也会递增,对吗?所以对于每个i,j循环运行n次,对吗?你能帮我吗explain@ExponentialScholiast:否,
j
循环不会为每个
i
运行
n
次。请注意,
j
仅在算法开始时设置为0一次,并且从不重置为0。因此在整个算法中,
j
循环最多只能运行
n次。