A17 oder H2004/H2002

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

A17 oder H2004/H2002
Aufgabe 17: Entscheidungsbaum f¨ur Merge
[Klausuraufgabe Herbst 2002 und Herbst 2004]
Der Sortieralgorithmus Mergesort beruht auf einer Prozedur merge, die aus zwei sortierten
Listen [a1, a2, . . . , am] (mit a1 a2 . . . am) und [b1, b2, . . . , bn] (mit b1 b2 . . . bn) die
sortierte Liste der m+n Elemente {a1, . . . , am, b1, . . . , bn} (die der Einfachheit halber paarweise
verschieden sein sollen) konstruiert.

  1. Konstruieren Sie den entsprechenden Entscheidungsbaum f¨ur die Vergleichsoperationen von
    merge im Fall m = 3, n = 2.
  2. Wieviele Bl¨atter hat der Entscheidungsbaum in Abh¨angigkeit von m und n?
  3. Betrachten Sie speziell den Fall m = n: wie verh¨alt sich diese Anzahl der Bl¨atter aus a) in
    Abh¨angigkeit von der Listenl¨ange n asymptotisch f¨ur n ! 1?
    (Hinweis: verwenden Sie Stirlings Formel: n! (n/e)n · p2n)
  4. Welche Folgerungen ergeben sich aus der asymptotischen Anzahlaussage f¨ur die Vergleichs-
    Komplexit¨at von merge-Algorithmen?

dort hätte ich eine Frage zur 3

muss ich dort 4!/n! ausrechnen oder wie genau muss ich diese Aufgabe verstehen?


Hallo Bibi!

Einfacher ist es, Du ersetzt n! gleich durch n^n.

2n über n = (2n)! / ( (2n-n)!*n! ) = (2n)! / ( n! * n! )

Nun wendest Du das oben gesagte an, also n! verhält sich wie n^n

(2n)^2n / (n^n * n^n ) = 4^n*n^2n / n^2n = 4^n;

War das Deine Frage?

Herzliche Grüße,
Marco


n! verhaelt sich anders. aber das schreib ich morgen; im moment bin ich dazu nimmer faehig. der entscheidende punkt ist dass n! ~= (n/e)^n
mit enstprechender umformung (morgen :slight_smile: ) kann man ein niedrigeres Wachstumsverhalten erhalten. also vorsicht bei der behauptung


Ich hatte irgendwann in der Vorlesung aufgeschrieben, dass n! etwa wie (n/e)^n wächst und das wiederum wächst etwa wie n^n. Scheinbar doch nicht so zwanglos einsetzbar…

bin gespannt auf deine lösung,
gruß, marco


Also ich dachte immer, dass die Stirling-Formel so wäre:

n! ~ (n/e)[sup]n[/sup]√(2πn)

Kann man das wirklich so einfach alles rausstreichen?

Wächst (n/e)[sup]n[/sup] wirklich wie n[sup]n[/sup]? Und wenn ja, warum? Und wann kann ich Faktoren weglassen (von Konstanten mal abgesehen)?


@marco ja das war meine Frage :slight_smile: bin mal gespannt auf was wir uns einigen was richtig ist :wink:


also mittlerweile glaub ich nicht mehr so recht dran dass (n/e)^n so wächst wie n^n womöglich hab ich da was falsches notiert. (-: gut, dass man mich korrigiert, thx.


Okay, die Stirlingsche Formel (Quelle: Wikipedia) lautet:

n! ~ (n/e)n√(2πn)

Wenn man das jetzt verwendet, um (2n über n) zu berechnen, kommt bei mir raus:

(2n über n) ~ c*4^n / √n

wobei c ne Konstante ist. Wächst also fast wie 4^n, aber halt nicht ganz.

Übrigens wächst n! schwächer als n^n, was man ja auch an der Stirlingschen Formel sieht. Denn zwischen n^n und (n/e)^n besteht ein Unterschied von e^n, und das ist ziemlich groß.