伪代码中的 a*<a[j] 是什么?
What is a*<a[j] in pseudocode?
我正在尝试在数据结构和算法练习下的 codechef 中给出的时间复杂度 mcq 问题。其中一个问题有一行 a*< a[i]。那一行是什么意思?
我知道如果没有 and 语句,复杂度会是 O(n^2)。但是 a*< 对我来说完全陌生。我在互联网上搜索它,但我得到的只是关于星号算法和星号的信息!我用打印语句 运行 python 中的程序进行了尝试,但它说 * 无效。这是否意味着指向数组中第一个元素的指针之类的东西?
求以下函数的时间复杂度
n = len(a)
j = 0
for i =0 to n-1:
while (j < n and a* < a[j]):
j += 1
答案的复杂度为 O(n)。但是有嵌套循环,所以它应该是 O(n^2)。需要帮助!谢谢
实际上 a*
的含义并不重要。问题是确定算法的时间复杂度。请注意,尽管有两个嵌套循环,但内部 while
循环并不是一个完全独立的循环。它的索引是 j
,从 0 开始并且只递增,上限为 n
。所以内循环总共只能运行最多n
次。这意味着整体复杂度仅为 O(n)。
我正在尝试在数据结构和算法练习下的 codechef 中给出的时间复杂度 mcq 问题。其中一个问题有一行 a*< a[i]。那一行是什么意思?
我知道如果没有 and 语句,复杂度会是 O(n^2)。但是 a*< 对我来说完全陌生。我在互联网上搜索它,但我得到的只是关于星号算法和星号的信息!我用打印语句 运行 python 中的程序进行了尝试,但它说 * 无效。这是否意味着指向数组中第一个元素的指针之类的东西?
求以下函数的时间复杂度
n = len(a)
j = 0
for i =0 to n-1:
while (j < n and a* < a[j]):
j += 1
答案的复杂度为 O(n)。但是有嵌套循环,所以它应该是 O(n^2)。需要帮助!谢谢
实际上 a*
的含义并不重要。问题是确定算法的时间复杂度。请注意,尽管有两个嵌套循环,但内部 while
循环并不是一个完全独立的循环。它的索引是 j
,从 0 开始并且只递增,上限为 n
。所以内循环总共只能运行最多n
次。这意味着整体复杂度仅为 O(n)。