|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||
java.lang.Objectde.hska.java.aufgaben.sortieren.NatuerlichesMischen
public class NatuerlichesMischen
Natürliches Mischen ist eine Verbesserung der nicht-rekursiven Variante von
Mergesort bzw. Direktem Mischens.
Bim natürlichen Mischen wird nicht mit stetig grösser werdener Schrittweite
von 2, 4, 8, ..., 2log2(n) sondern mit variabler Schrittweite:
Es werden immer die nächsten beiden aufsteigend sortierten Folgen verschmolzen.
In der Folge 7 4 6 3 1 2 8 5
7 | 4 6 | 3 |1 2 | 8 | 5 4 6 7 | 3 | 1 2 | 8 | 5 4 6 7 1 2 3 | 8 | 5 4 6 7 1 2 3 5 8 4 6 7 | 1 2 3 | 5 8 1 2 3 4 6 7 | 5 8 1 2 3 4 5 6 7 8
Im besten Fall hat mein ein bereits aufsteigend sortiertes Feld, der Zeitaufwand beträgt O(n). Im schlimmsten Fall können wir natürlich nicht besser werden als O(n log2n ). Durch die erhöhte Anzahl von Vergleichen ist dieser Algorithmus aber in der Praxis vermutlich langsamer als Direktes Mischen.
| Constructor Summary | |
|---|---|
NatuerlichesMischen()
|
|
| Method Summary | |
|---|---|
void |
sortieren(int[] a)
Sortiert die Zahl in a aufsteigend mit Natürlichem Mischen. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public NatuerlichesMischen()
| Method Detail |
|---|
public void sortieren(int[] a)
sortieren in interface Sortieren
|
|||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||
(c) Prof. Dr. Christian Pape --- Übersicht aller Java-Programmieraufgaben