は、次のコードを考えてみましょう:時間複雑さに疑問がある!
for(i = n-1; i >= 0; i--)
{
if(str[i] == ' ')
{
i += 2; // I am just incrementing it by 2, so that i can retrieve i+1
continue;
}
// rest of the code with many similar increments of i
}
セイは、ループが無限大にまでなったことがないと私は多くのそのような増加やデクリメントでループを横断した場合、私は複雑さが順番NまたはNのではないでしょう確信していると仮定します平方。しかし、そのような種類のソリューションには一般化された複雑さがありますか?
P.S:私は知っているが、最悪のコードをそれ `s、しかし、あなたは、文字列内のスペースを持っている場合は、まだ
だから我々は 'i'がで修正されていることを想定していますループの下部も同様ですか? – Eric
あなたの完全なコードは見えませんが、実行時間が 'Theta(N)'ではないことを確かめることはできません。 – phimuemue
文字列の最初の文字がスペースの場合は、配列の境界からインデックスを作成します。したがって、あなたのプログラムは強制的に中止されるので、アルゴリズムを終了するのに無限に時間がかかります! – Eric