laufzeit zu algorithmen

Neue Frage »

wsch Auf diesen Beitrag antworten »
laufzeit zu algorithmen
Hallo Leute, habe folgende frage zu dieser Aufgabe:

Gegeben seien die folgenden Laufzeitverhalten log n, n2, 2n, n log n, n! von fünf verschiedenen Algorithmen, die das gleiche Problem lösen. Diskutieren Sie die Laufzeitverhalten und filtern Sie jeweils den effizientesten Algorithmus für kleine, mittlere und große n (element) N heraus.

Nehmen wir an, dass zwei Algorithmen dasselbe Laufzeitverhalten (z.B. O(n log n)) haben. Erläutern Sie warum dies nicht bedeutet, dass beide auch die gleiche Laufzeit haben.



log n ist doch das effizienteste Algorithmus für kleine, mittlere und große n´s ? (egal was für eine Zahl ich einsätzte mit log n habe ich das kleinste ergebnis) oder habe ich da was falsch verstanden?

zum zweiten teil: was ist der unterschied zw. laufzeitverhalten und laufzeit? warum müssen die nicht gleich sein?

vielen dank
JochenX Auf diesen Beitrag antworten »

Zitat:
zum zweiten teil: was ist der unterschied zw. laufzeitverhalten und laufzeit? warum müssen die nicht gleich sein?

algo A braucht n rechenschritte, algo B 2n; beide liegen also in O(n)

jetzt ist aber A einfach viel schneller als B.
eingesehen?
wsch Auf diesen Beitrag antworten »

Zitat:

algo A braucht n rechenschritte, algo B 2n; beide liegen also in O(n)


warum liegen beide in O(n) ? wofür steht O ?
AD Auf diesen Beitrag antworten »

Einfach mal googeln:

http://www.pohlig.de/Unterricht/Inf2002/..._O-Kalkuels.htm
wsch Auf diesen Beitrag antworten »

hab ich es richtig verstanden:

Beispiel: Algo1 braucht für 10 Elemente 10 sek, für 20 Elemente 20 sek usw, hat also O(n).
Algo2 braucht für 10 Elemente nur 5 sek, für 20 Elemente 10 sek usw, hat also auch O(n), aber eine halb so große Laufzeit.
JochenX Auf diesen Beitrag antworten »

bei meinem beispiel braucht algo B für 5 elemente 10 zeiteinheiten (rechenschritte)

wenn du dir arthurs link durchgelesen hast, dann weißt du, dass dieses O-Kalkül keine genauen sondern nur "skalierte" dinge angibt
hier geht es insbesondere darum zu testen, wie sich programme bei großen n verhalten

seien A und B in O(n) und C in O(n^2)
B braucht vielleicht für n daten 10n rechenschritte, A nur n, C braucht irgendwas mit n^2 schritten
bei wenigen n ist B also relativ ineffizient, vermutlich ist C sogar besser
bei größeren n hingegen wird klar, dass völlig unabhängig vom vorfaktor B C überlegen ist

hoffe das hilft
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »