Laufzeiten von Algorithmen?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Nein, das klappt nicht immer. Komplexitätsklassen beschreiben das Laufzeitverhalten von Algorithmen nur grob für große Eingaben, sind also nicht akkurat, weil kleinere Faktoren entfallen.

Ein Algorithmus mit 3*n + log(n) + 5 Schritten wäre beispielsweise in der Komplexitätsklasse O(n), braucht aber offensichtlich mehr als n Schritte.

Woher ich das weiß:Studium / Ausbildung – Informatikstudent

kabik334 
Beitragsersteller
 18.06.2024, 17:51

kappt meine aussage zumindest bei Binäre,linare suche sowie den einfachen suchalgos(z.b bubble,selection)? Für die Klausur reicht mir das :D

Seliba  18.06.2024, 17:59
@kabik334

Nein, funktioniert nicht. Bubble Sort zum Beispiel ist im worst case O(n^2), braucht aber nur n^2 - n Schritte. Ich glaube nicht, dass du die konkrete Anzahl von Schritten angeben musst, und wenn doch, vermutlich in Verbindung mit einem kompletten Sortiervorgang des Algorithmus. Wenn du den auf dem Papier ausführst, solltest du die Anzahl der Schritte einfach ablesen können :)

kabik334 
Beitragsersteller
 18.06.2024, 18:06
@Seliba

vielleicht hab ich mit den sortieralgos zu weit gegriffen, bis jetzt gabs es immer eine aufgabe wo ich lineare und binäre suche vergleichen musst und angeben musste wie viele vergleiche bzw iterationen gebraucht werden im ein element zu finden. lineare suche ist klar ,bei binär bin ich gerade unsicher. Die anzahl der verleiche ergibt sich doch dadruch wie oft ich mein array teilen muss oder?

Seliba  18.06.2024, 18:23
@kabik334

Ja, schon mehr oder weniger. Bestenfalls eben einmal, schlimmstenfalls log2(n) + 1 (aufgerundet) mal, aber alles was da nicht reinfällt muss man eben manuell nachrrechnen weil es von den konkreten Elementen abhängt. Die Komplexitätsklassen helfen dir bei sowas wirklich nicht.