C で記述された 2 つのループがあり、最初の実行n時間nは入力文字列の長さです。入力文字列が*& 201 +ACD 3491 AASD 3.
ループは各文字をスキャンし、数字が検出されると、数字の長さを計算し、その距離だけポインターをインクリメントします。したがって、ポインターが整数をp指して読み取ると、数値 ( ) になり、3 ずつインクリメントされます。一方が実行時間で、もう一方が実行時間である 2 つのネストされたループの時間の複雑さはです。2sscanf201pNMO(N * M)
私のアルゴリズムの時間計算量も であると言っても過言ではありません。その特定の反復でスキャンされる桁数はO(N * M)どこでしょうか? Mそうでない場合、全体の時間計算量はどのくらいになるでしょうか?
編集:
ここにいくつかのコードがあります
char c;
while ((c = fgets(fp)) != EOF) {
// scans characters, if a digit is encountered, get digit_length
for (int i = 0; i < digit_length; i++)
p++;
}