Hallo zusammen,
leider weiß ich nicht, ob ich hier richtig bin, aber leider komme ich bei einem Problem nicht weiter:Ich habe eine Frage zu folgendem Algorithmus:
Ich habe ein sortierte Feld A, auf das nur 1x obiger Misch-Algorithmus angewendet wurde.
Jetzt ist es meine Aufgabe, einen vergleichsbasierten Algorithmus zu entwerfen, der in linearer Laufzeit dieses einmal gemischte Feld wieder (rück-)sortiert.
Leider komme ich hier nicht weiter. Kann mir vielleicht jemand einen Tipp geben?
Vielen Dank!
leider weiß ich nicht, ob ich hier richtig bin, aber leider komme ich bei einem Problem nicht weiter:Ich habe eine Frage zu folgendem Algorithmus:
Code:
Mischen(Feld A)
n1 = ⌊(A.länge + 1)/2⌋
n2 = A.länge − n1
L = neues Feld[1..n1]
R = neues Feld[1..n2]
L[1..n1] = A[1..n1]
R[1..n2] = A[n1 + 1..A.length]
i=j=1
für k = 1 bis A.length mache {
b = Random(0,1)
wenn(b==0 und i≤n1) oder j>n2 dann {
A[k] = L
i=i+1
}
sonst {
A[k] = R[j]
j=j+1
}
}
Ich habe ein sortierte Feld A, auf das nur 1x obiger Misch-Algorithmus angewendet wurde.
Jetzt ist es meine Aufgabe, einen vergleichsbasierten Algorithmus zu entwerfen, der in linearer Laufzeit dieses einmal gemischte Feld wieder (rück-)sortiert.
Leider komme ich hier nicht weiter. Kann mir vielleicht jemand einen Tipp geben?
Vielen Dank!
Zuletzt bearbeitet von einem Moderator: