誰かが次のコードの時間の複雑さを教えてもらえますか?以下のコードの時間の複雑さは?
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char a[100]= "Gosh I am confused :D";
int i,count= -1,display_ToVal= strlen(a)-1, display_FromVal;
for(i=strlen(a)-1 ; i>=0 ; i=i+count)
{
if ((a[i] == ' ' || i == 0) && count == -1)
{
cout << " ";
display_FromVal = i;
count = 1;
if (i == 0)
cout << a[i];
continue;
}
else if(count == 1 && i == display_ToVal)
{
cout << a[i];
display_ToVal = display_FromVal - 1;
i = display_FromVal;
count = -1;
if(display_FromVal == 0)
break;
else
continue;
}
else if (count == 1)
cout << a[i];
else
continue;
}
return 1;
}
私は、これはO(n)のに分類することができるかどうかに関して、本当に混乱しています。助けてください、事前にありがとうございます。
あなたが疑問に思っていることをO(N)に教えていただければ、わかりやすくお伝えすることができます。 –
Nitpick:入力サイズはnとは何ですか?書かれているように、コードは何も入力せず、一定の時間内に実行されます。 "Duh、string length"は実際には完全な答えではありません。なぜなら、その動作は入力の別のパラメータである文字列内のスペースに依存するように見えるからです。 –
@Cristopher:複雑さは、とにかく文字列のサイズに依存します。 ここでの正しい質問は、ここでは最高、平均、最悪の場合の時間の複雑さです。 – Elalfer