为什么这个伪代码中每行的操作数是这些?

发布于 2025-01-20 13:02:44 字数 279 浏览 0 评论 0原文

我正在观看课程中有关数据结构的演讲,但我并不真正了解讲师将每一行转化为操作的部分。 有人可以解释一下他们如何获得2n +1、2(N-1),2(n-1),2(n-1),1,最后是8n-2。我尽力理解它,但我不能。

I am watching a lecture on data structures from my course and I don't really understand the part where the lecturer translates each line into operations.
Can someone please explain how they are obtaining 2n +1, 2(n-1), 2(n-1), 2(n-1), 1 and finally 8n-2. I have tried my best to understand it but I can't.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

像你 2025-01-27 13:02:44

计数器表示运算次数(例如加法、减法、乘法、访问索引等)。简单来说,这些操作中的每一个都可以在单个(或最小)时间单位内完成。例如:

currentMax <- A[0]

有两个操作,第一个操作是访问第零个索引。其次,将其分配给变量 currentMax。

类似地,在循环中,如果您在每次迭代中执行一个操作,则最终将执行总共“n”个操作,其中 n 是数组的长度。

for i <- 1 to n-1 do

让我们看一下这一行,对于第一次迭代,您将值 1 赋给 i,这将是 1 次操作。在每次迭代中,您将从 n 中减去 1(用于评估 n-1),并且您还需要将 i 与 n-1 进行比较,这将是另一个操作。因此,对于 n 次迭代,您将执行 n * 2。这就是您如何在伪代码中获得此语句的 2n+1 。

The counter denotes the number of operations (e.g. addition, subtraction, multiplication, accessing index etc.). In simple terms, each of these operations can be done in a single (or smallest) unit of time. For example:

currentMax <- A[0]

There are two operations, one accessing the zeroth index. Second, assigning it to the variable currentMax.

Similarly in the loop, if you are doing one operation in each iteration, you will end up doing total "n" operations where n is the length of the array.

for i <- 1 to n-1 do

Let's walk through this line, for the first iteration you are assigning value 1 to i, that will be 1 operation. In each iteration, you will subtract 1 from n (for evaluating n-1) and you also need to compare i with n-1 which will be another operation. So, for n iterations, you will perform n * 2. That's how you get 2n+1 for this statement in pseudocode.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文