这个给定算法中的“基本操作”究竟是什么

时间:2017-03-19 06:50:48

标签: c++ algorithm complexity-theory analysis

所以我有这个算法,我正在尝试确定算法分析问题的基本操作。

这是代码:

{{1}}

我目前的印象是这个算法的基本操作是函数内部循环中的两个if语句。 令我感到困惑的是,我不确定基本操作是否是布尔表达式本身,如果array [j]< array [i]并且如果array [j]等于array [i]。或者天气基本操作是当任一if语句为真时发生的代码执行。有人可以在算法分析方面给我一个可靠的解释,这个算法的基本操作是什么:)请非常感谢

1 个答案:

答案 0 :(得分:1)

基本操作可能是:

  • 数组索引
  • 条件,即if (x == y)
  • 作业,即x = 10
  • 甚至是基本的数学运算,即y + 2

请注意,这不是一个详尽无遗的清单。另请注意,某些代码的最坏情况需要执行最大数量的基本操作;因此,在以下代码中,您将在最坏的情况下看到三个基本操作。

if (variable == true) {
  int x = y + 2;
}

...这是因为我们真的只是编写了几个上面的列表项。我们必须执行第一个条件,无论是一个(一个基本操作),但在那之后,"最坏的情况"是variable = true时,因为我们继续执行任务。当然,为了计算x将通过赋值假设的非显而易见的值,我们必须执行另一个基本操作(y和2之间的算术),这给我们总共三个基本操作

所以在你的情况下,在内循环中执行的基本操作是条件,给定其中一个条件的变量的递增(基本赋值),以及

中的两个条件加算术
if(numsmaller < n && n <= (numsmaller + numequal)

线。

希望这有帮助。