gpt4 book ai didi

algorithm - 带条件的循环的运行时间(步数)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:41:27 29 4
gpt4 key购买 nike

我不确定如何根据输入大小 N 确定运行时间,尤其是当它进入具有某些限制的循环时。这就是我尝试过的。我猜常数是正确的。它看起来如何?

i = 1;                                //1
k = n; //1
while (i <= k) { //N+1
while (i <= k && A[i] < 0) { //i+2
i = i + 1; //2i
}
while (i <= k && A[k] >= 0) { //i+2
k = k - 1; //2i
}
printf("..."); //1
i = i + 1; //1
k = k - 1; //1
}

最佳答案

这被称为从两端燃烧蜡烛。 ik 将在中间某处相遇,但数组中的每个元素都恰好被访问一次。所以运行时间是O(n)

外层的 while 循环只是在等待进程完成,所以不考虑运行时间的计算。第一个内部 while 循环将 i 向右移动,直到它被卡住。第二个内部 while 循环将 k 向左移动,直到它卡住。

线条

i = i + 1;
k = k - 1;

ik 移动到它们被卡住的点上方。

结果是i访问了部分数组元素,k访问了其他数组元素,但数组的每个元素只访问一次。

关于algorithm - 带条件的循环的运行时间(步数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39758490/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com