我无法找到代码的时间复杂度

时间:2018-02-09 02:43:08

标签: c++ time-complexity

我有一个家庭作业来创建一个线性时间算法来排序一个只包含a,b和c的字符数组。上面的算法是成功的,但我不确定for循环内的递归调用是否是线性时间。

void setter(char C[], int lo, int hi)
{

  for(int j = lo; j < hi; ++j)
  {
    if(C[j] > C[j+1])
    {
        swap(C[j],C[j+1]);
        setter(C,0,j+1,);
    }

  }


}

1 个答案:

答案 0 :(得分:0)

我相信你的算法的时间复杂度是O(n ^ 2)。由于会跳过很多递归调用,因此生成证明有点单调乏味。

尝试对线性时间复杂度算法进行排序。 计算每个a,b,c的出现次数。然后生成输出数组。