Merge Insertion

Merge Insertion

Merge Insertion ist ein rekursives, vergleichsorientiertes Sortierverfahren, das mit weniger Vergleichen als Mergesort auskommt.

Idee des Algorithmus

Der tatsächliche Aufbau des Algorithmus ist schwer zu verstehen. Deshalb soll an dieser Stelle die Idee von Merge Insertion kurz erläutert werden.

Mergesort benötigt immer die gleiche Anzahl Vergleiche abhängig von der Eingabelänge n, egal ob n eine Zweierpotenz ist oder nicht. Diese Tatsache macht sich Merge Insertion zu Nutze und schafft es deshalb, mit weniger Vergleichen als Mergesort auszukommen. Die Idee ist, die Eingabe bei der Rekursion nicht in möglichst gleichgroße Teillisten aufzuspalten, sondern immer die nächstgrößere Zweierpotenz zu bearbeiten. Dadurch benötigt Merge Insertion im Vergleich zur informationstheoretischen unteren Schranke S(n)\ge \lceil \log_2 n! \rceil nur eine sehr geringe Anzahl Vergleiche mehr, als theoretisch notwendig.

Algorithmus als Pseudocode

procedure MergeInsertion(S1,...,Sn):

 1. Sortiere die Eingabe S1,...,Sn mit je einem Vergleich in \lfloor n/2 \rfloor disjunkte Paare.
    Ergebnis: bi < ai mit i=1{,}...{,}\lfloor n/2 \rfloor
 2. Sortiere die größeren Elemente a_1{,}...{,}a_{\lfloor n/2 \rfloor} rekursiv mit MergeInsertion.
 3. Nenne das Ergebnis aus Schritt 2 die Hauptkette: b_1{<}a_1{<}a_2...{<}a_{\lfloor n/2 \rfloor}
    Füge nun die restlichen Elemente b_2{,}...{,}b_{\lceil n/2 \rceil} durch Binäres Einfügen in der Reihenfolge 
    b3,b2,b5,b4,b11,b10,b9,b8,b7,b6,... in die Hauptkette ein.

Literatur


Wikimedia Foundation.

Игры ⚽ Нужно решить контрольную?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Merge sort — Example of merge sort sorting a list of random dots. Class Sorting algorithm Data structure Array Worst case performance O(n log n) …   Wikipedia

  • Insertion sort — Infobox Algorithm class=Sorting algorithm data=Array time= О(n²) space= О(n) total, O(1) auxiliary optimal=Not usuallyInsertion sort is a simple sorting algorithm, a comparison sort in which the sorted array (or list) is built one entry at a time …   Wikipedia

  • Insertion — (Roget s Thesaurus) >Forcible ingress. < N PARAG:Insertion >N GRP: N 1 Sgm: N 1 insertion insertion implantation introduction Sgm: N 1 insinuation insinuation &c.(intervention) 228 Sgm: N 1 planting planting &c. >V. Sgm: N 1 inj …   English dictionary for students

  • Comparison sort — Sorting a set of unlabelled weights by weight using only a balance scale requires a comparison sort algorithm A comparison sort is a type of sorting algorithm that only reads the list elements through a single abstract comparison operation (often …   Wikipedia

  • Sortieralgorithmen — Ein Sortierverfahren ist ein Algorithmus, der dazu dient, eine Liste von Elementen zu sortieren. Voraussetzung ist, dass auf der Menge der Elemente eine strenge schwache Ordnung definiert ist, z. B. die lexikographische Ordnung von Zeichenketten… …   Deutsch Wikipedia

  • Sortieralgorithmus — Ein Sortierverfahren ist ein Algorithmus, der dazu dient, eine Liste von Elementen zu sortieren. Voraussetzung ist, dass auf der Menge der Elemente eine strenge schwache Ordnung definiert ist, z. B. die lexikographische Ordnung von Zeichenketten… …   Deutsch Wikipedia

  • Liste von Algorithmen — Dies ist eine Liste von Artikeln zu Algorithmen in der deutschsprachigen Wikipedia. Siehe auch unter Datenstruktur für eine Liste von Datenstrukturen. Inhaltsverzeichnis 1 Klassen von Algorithmen nach Komplexität 2 Klassen von Algorithmen nach… …   Deutsch Wikipedia

  • Sortierverfahren — Ein Sortierverfahren ist ein Algorithmus, der dazu dient, eine Liste von Elementen zu sortieren. Voraussetzung ist, dass auf der Menge der Elemente eine strenge schwache Ordnung definiert ist, z. B. die lexikographische Ordnung von… …   Deutsch Wikipedia

  • Sorting algorithm — In computer science, a sorting algorithm is an algorithm that puts elements of a list in a certain order. The most used orders are numerical order and lexicographical order. Efficient sorting is important for optimizing the use of other… …   Wikipedia

  • List of terms relating to algorithms and data structures — The [http://www.nist.gov/dads/ NIST Dictionary of Algorithms and Data Structures] is a reference work maintained by the U.S. National Institute of Standards and Technology. It defines a large number of terms relating to algorithms and data… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”