ich das wissen will, ist die Zeitkomplexität dieses Codes (big-O):Zeitkomplexität - Big O - anzeigen Zahlen von Intervall, das nicht in einer Datei sind
(es liest eine Textdatei wie folgt: auf der ersten Zeile sind eine Nummer n und in der zweiten Zeile ist eine Liste mit aufsteigenden Nummern - Max. n Zahlen - und es zeigt alle Zahlen von 1 bis n, die nicht in der Textdatei ist)
#include <iostream>
#include <fstream>
using namespace std;
int interval(int a, int b, int &ok) {
for(int i=1; i<(b-a); i++) {
cout << a+i << " "; ok=1;
}
}
int main()
{
int n=0, ok=0, a=0, b=0;
ifstream fisier("numere.in");
fisier >> n;
while(fisier >> b) { b
interval(a,b,ok);
a = b;
} interval(b,n+1,ok);
if(ok == 0) cout << "Nu exista";
return 0;
}
Ich denke es ist n * logn aber ich bin unsicher. Danke
Welche Zeile läuft n.log (n) mal? –
Wie sind Sie zu dem Schluss gekommen, dass die Komplexität O (n log n) sein könnte? Warum bezweifelst du deine Analyse? – user2079303
Danke! Ich verstehe jetzt, warum es nicht n * logn ist. Ich dachte, dass es nlogn war, denn wenn die Datei zB 100 in der ersten Zeile und 2 2 2 2 2 2 2 2 2 (100 mal in der zweiten Zeile) ist, dann wird zuerst auf n und "for" etwa n wiederholt aber ich lag falsch. –