【问题标题】:Question about "running times" of a for loop关于 for 循环的“运行时间”的问题
【发布时间】:2020-05-22 14:35:34
【问题描述】:

我开始阅读“算法简介,第三版”一书,但我遇到了一些对我来说不够清楚的东西,关于“插入排序”算法。

请先看图:

首先,作者定义了n = A.lengthA.length是数组A的长度。

所以,假设数组“A”的长度为 5。如果我运行一个 for 循环,从 j = 2(如图所示)到 A.Length = 5,我会说第一行将运行 4 次,这意味着对于任何 n 它将运行 n - 1 次。另一方面,作者写道,第一行将运行 n 次。

我错过了什么?

【问题讨论】:

    标签: python algorithm sorting insertion-sort


    【解决方案1】:

    第一行可能是指检查条件的次数。如果您的循环运行n-1 次,则检查迭代器上的条件n 次(包括最后,当它变为假时)。在循环体内,所有语句都已按预期标记为n-1

    【讨论】:

    • 你是冠军。
    • @OneWhoAsksSomeQuestions 如果这令人满意地回答了您的问题,请考虑接受答案。
    【解决方案2】:

    这个 n 可能表示插入排序所具有的外部 for 循环的时间复杂度 -> O(n^2),而不是它的实际循环计数。

    【讨论】:

      猜你喜欢
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-29
      相关资源
      最近更新 更多