Mergesort |
12.12.2007, 11:16 | Auf diesen Beitrag antworten » | ||||||||||
JROppenheimer | Mergesort ich habe hier einen Mergesort-algorithmus, aber in er mergefunktion gibt es eine zeile, die ich nicht verstehe, ich poste hier mal die merge funktion:
ich weiss leider nicht, was zeile 14 sein soll ... habe dieses konstrukt noch nie gesehn. kann mir einer verraten, was das macht? *edit: verzeiht mir,dass das mnicht richtig eingerückt ist, die jeweiligen forschleifen haben im rumpf nur eine zeile jeweils ... |
||||||||||
|
|||||||||||
12.12.2007, 11:28 | Auf diesen Beitrag antworten » | ||||||||||
Tobias | Der Ausdruck in der Übsicht:
A [k] = (B[i] < B[j])? B[i++] : B[j--]; ist also die Kurzform für folgenden äquivalenten Code:
|
||||||||||
12.12.2007, 11:45 | Auf diesen Beitrag antworten » | ||||||||||
JROppenheimer |
Wenn das so ist, dann funktioniert das aber nicht, denke ich. Angenommen ich habe ein Array B, das wie folgt aussieht: B = [2,3,1] Die for Schleife würde schon bei k=1 einen Fehler machen, wenn das so ist, wie Du sagst. k=1 i=links (also 1) j=rechts (in dem Fall also 3) Immer vorausgesetzt die Indize laufen von 1 bis ... nicht von 0 ... bis Im Zustand, wie oben beschrieben wäre A[1] = B[2] = 3 ... somit wäre das Array falsch sortiert ... sehe ich das richtig? *edit: das hier bestätigt meine meinung, dass das mit dem ausdruck ein bisschen anders geht, wenn ichd as richtig sehe: aufgetüftelt |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|