Frage zur Laufzeitkomplexität best, average and worst case (informatik)?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Du beschreibst zwar ein Problem, aber keinen Algorithmus dazu.

Die Problembeschreibung suggeriert, dass im ersten Schritt n Gespräche gleichzeitig stattfinden. Dann wäre alles spätestens nach n Runden fertig. Wenn der Algorithmus alle Paare für eine Runde in konstanter Zeit bestimmen kann, liegt die Gesamtlaufzeit in 𝓞(n) (worst case).

Bestenfalls passt alles schon in der ersten Runde. Dann ist liegt die Gesamtlaufzeit in 𝓞(1) (best case).

Für die mittlere Laufzeit musst Du abschätzen, wie viele Paare in jeder Runde im Durchschnitt ausscheiden und wieviele Kandidaten die übrigen Männer/Frauen noch haben. Für die erste Runde ist das einfach: Im Durchschnitt scheidet genau ein Paar aus, und die übrigen haben zwei Kandidaten weniger. Ab dann wird es kompliziert: Im Schnitt scheiden zwar immer mehr Paare aus, aber möglicherweise sind diese bei einigen Teilnehmern schon aus der Liste gestrichen. Ich vermute, dass die Gesamtaufzeit effektiv auf 𝓞(√n) schrumpft, kann es aber nicht beweisen.

_________________________________________

Falls Gespräche nicht parallel stattfinden können, kann man leicht einen Algorithmus finden, der in 𝓞(n²) liegt: Ein Mann redet nacheinander mit allen n Frauen und scheidet bei seiner "richtigen" aus. Das braucht höchstens n Gespräche in der ersten Runde, n-1 in der zweiten usw. Insgesamt sind das bis zu n+(n-1)+(n-2)+...+2∊𝓞(n²) Gespräche.

Schlimmstenfalls müssen alle diese Gespräche tatsächlich geführt werden (denk Dir ein Beispiel aus).

Bestenfalls passt bei jedem Mann gleich das erste Gespräch. Dann ist man nach n Gesprächen durch.

Und im Mittel führt jeder halb so viele Gespräche pro Runde, aber n/2+(n-1)/2+(n-2)/2+...+2/2 liegt ebenso in 𝓞(n²). Man spart also im Mittel nur die halbe Zeit.

Aber vielleicht gibt es ja einen anderen Algorithmus, der zumindest im Mittel besser abschneidet?

Danke. Sehr hilfreich!!!

0