Im ersten Teil der folgenden Beschreibung wird das Verfahren in Arbeits-Schritte aufgeteilt.
Im zweiten Teil wird dann der Algorithmus 'Hurryorder' anhand eines Beispiels durchgeführt.

 

 

 

 

 

 

           Einleitung:

 

 

 

           Um Daten zu sortieren gibt es viele Sortieralgorithmen.

           Alle Algorithmen haben dabei Vor- und oder Nach-Teile

           gegenüber anderen. Es ist nicht immer einfach den zweck-

           mässigsten Algorithmus auszuwählen um Daten zu

           sortieren.

 

           Eines haben diese Sortieralgorithmen jedoch immer gemein-

           sam, sie arbeiten durch Vergleichen und Austauschen der

           Sortierobjekte.

 

 

           Es scheint auch irgendwie unmöglich zu sein, etwas zu

           sortieren, ohne die Objekte untereinander vergleichen

           zu müssen ?

 

 

           Angenommen wir haben die fünf Zahlen 29,4,23,-4,18

           Wie kann man nun wissen, dass die Zahl -4 die kleinste

           ist, ohne zu vergleichen ob eine andere Zahl der auf-

           geführten kleiner ist ?...

 

 

           Das scheint unmöglich .. aber

 

 

           Eine andere Perspektive öffnet neue Wege

 

           Das Verfahren, welches im Nachhinein beschrieben wird

           zeigt die Lösung des Sortierens ohne Vergleichen.

 

 

                                                                     Seite  1

 

 

 

 

 

 

 

 

           Um die andere Arbeitsweise des neuen Sortieralgorithmus

           verstehen zu können ist es notwendig sich einigen nicht

           ganz offensichtlichen Tatsachen bewusst zu werden.

 

 

 

 

 

 

           Die gegenseitige Relation der Objekte

 

 

           Grundlegend ist einmal, dass wir alle Objekte, die wir

           irgendwie zueinander in Bezug bringen wollen, in ein uns

           verständliches Mass konvertieren.

 

           Wenn wir 5 Aepfel betrachten und diese Ihrer Grösse nach

           sortieren wollen, so betrachten wir Ihren Durchmesser.

           Möchten wir uns nicht auf unser Sinnesorgan 'Auge' ver-

           lassen, so messen wir die Aepfel aus.

 

           Wenn wir die 5 Aepfel nach Gewicht sortieren wollen, so

           nehmen wir die Waage zu Hilfe.

 

           Um die Messwerte zu sortieren, schreiben wir Diese in einem

           uns vertraulichen Mass auf, um diese dann bearbeiten zu

           können

 

 

 

 

 

 

           Der immer bekannte Bereich

 

 

           Tatsache ist auch, dass wir immer wissen, in welchen Grenzen

           wir Masse zu erwarten haben von beliebigen Objekten.

 

           Ich weiss zum Beispiel genau, dass ein Aepfel nicht leichter

           sein wird als 0 Gramm und dass dieser nicht schwerer sein

           wird als 5 Kilo... oder von mir aus, um ganz sicher zu sein

           1 Tonne.

 

           Ich möchte damit nur zum Ausdruck bringen, dass wir für

           alles was wir sortieren einen Bereich abgrenzen, in welchen

           sich das grösste wie auch das kleinste Mass erfassen lässt.

 

           Sortieren kann man ja auch nur was vorhanden ist. Etwas was

           erst erwartet wird kann nur noch in eine vorhandene Menge

           eingrückt werden. Oder man kann die Grenzen der neu ent-

           standenen Menge allenfalls anpassen und von neuem sortieren.

 

 

                                                                     Seite  2

 

 

 

 

 

 

 

 

           Was heisst überhaupt sortieren ?

 

 

           Jedes Sortierelement ist definiert durch ein binäres Muster.

           Ein binäres Muster ist eine Aneinanderreihung von kleinst-

           möglichen Informationseinheiten.

 

           Nun wird es etwas Mathematisch

 

           Die kleinste Informationseinheit beschreibt genau 2 Zu-

           stände. Allgemein werden zur Definition der beiden Zustände

           die zwei Ziffern 1 und 0 verwendet.

 

           Betrachten wir folgende völlig wilkürliche binäre Struktur

           11001. Im uns vertrauten Dezimalsystem ist dies die Zahl 25.

           Die Zahl 25 ist also exakt definiert durch vier binäre

           Zustände. Jedes Sortierelement hat eine spezielle binäre

           Auflösung. Bekannt ist auch, dass die Wertikeit eines binären

           Musters in unserer Schreibweise von rechts nach links jeweils

           pro Stelle verdoppelt wird.... 1er 2er 4er 8er usw.

 

           Wenn man von Sortieren spricht versteht man darunter meistens

           das Sortieren nach der Wertikeit. Das heisst das Sortier -

           kriterium ist Ordnen nach Wertikeit. Man kann aber Sortier -

           elemente auch nach anderen Kriterien Ordnen. Beispielsweise

           alle Muster, welche an der zweiten Stelle eine binäre 1 haben

           an den Anfang, gefolgt von denen Muster welche an dritter

           Stelle eine binäre 0 haben usw.

 

           Um zu sortieren muss man also genau wissen, nach welchen

           Ordnung sortiert werden soll.

 

 

           Definition:

 

           Sortiert ist eine Anzahl von Sortierelementen dann, wenn

           identische Sortierelemente zu einer Gruppe formiert werden.

           Identisch sind Sortierelemente wenn ihre binären Muster

           gleich sind.

 

 

                                                                     Seite  3

 

 

 

 

 

 

           Beispiel:

 

 

 

           Gegeben sind folgende Sortierelemente: B,C,A,B,A

 

 

                Sortiert:                            Unsortiert:

 

           ┌ ┐  ┌ ┐  ┌ ┐  ┌ ┐                    ┌ ┐  ┌ ┐  ┌ ┐  ┌ ┐

           │B│  │C│  │A│  │A│                    │B│  │B│  │A│  │A│

           │B│  │A│  │A│  │A│                    │C│  │B│  │B│  │A│

           │A│  │A│  │C│  │B│                    │A│  │A│  │A│  │B│

           │A│  │B│  │B│  │B│                    │B│  │A│  │B│  │C│

           │C│  │B│  │B│  │C│                    │A│  │C│  │C│  │B│

           └ ┘  └ ┘  └ ┘  └ ┘                    └ ┘  └ ┘  └ ┘  └ ┘

 

 

 

           Die Anzahl der Möglichkeiten zu sortieren ist aber nicht

           unbegrenzt. Wichtig ist die Erkenntnis, dass die Anzahl der

           Möglichkeiten zu sortieren nicht von der Anzahl Sortier-

           objekte abhängig ist,sondern von der Anzahl 'verschiedener'

           Sortierobjekte. Die Anzahl verschiedener Objekte ist ebenfalls

           begrenzt durch die binäre Musterlänge des längsten Sortier-

           objekts.

 

           Nehmen wir an, "X" sei die Anzahl der verschiedenen Sortier-

           elemente.

 

           Die Anzahl verschiedener Sortierobjekte nimmt quadratisch zu

           in Bezug auf die binäre Musterlänge.

 

           Somit kann die maximale Anzahl verschiedener Sortierobjekte

           höchstens 2 Exponent (Musterlänge des längsten Sortier-

           objektes) sein.

 

           Die Anzahl Sortiermöglichkeiten berechnet sich aus der

           Fakultät der Anzahl verschiedener Sortierobjekte.

 

 

           Binäre Musterlänge   Max.verch.Sort.Objekte.  Max.Sort.möglichk.

 

                    1                     2                     2

                    2                     4                     6

                    3                     8                    24

                    4                    16                   120

                    5                    32                   720

                    6                    64                  5040

                    7                   128                 40320

 

 

           Ein herrkömmlicher Sortieralgorithmus sortiert die Objekte

           entweder auf-, od ab-steigend bezüglich der Wertigkeit

           der Objekte. Ebenso ist die Wertigkeit der Objekte zunehmend

           von links nach rechts oder von rechts nach links.

 

 

                                                                     Seite  4

 

 

 

 

 

 

 

 

           Der aus den erwähnten Erkenntnissen resultierende und folgend

           beschriebene Sortieralgorithmus kann nun einiges mehr als ein

           herkömmlicher Sortieralgorithmus.

 

 

 

 

 

           Es ist frei wählbar in welcher Ordnung sortiert werden soll.

 

 

           Es entsteht dadurch ein Sortieralgorithmus mit fliessendem

           Uebergang, von Sortieren der Objekte zu geordnetem Suchen der

           Objekte.

 

           Dazu folgende Erklärungen:

 

           Angenommen, wir haben einige tausend Wörter bestehend aus vier

           Grossbuchstaben.

 

           Die übliche Sortierfolge ist aufsteigend von A..Z und von

           links nach rechts.

 

           Also: Das Wort mit der grössten Prioritat ist:         "AAAA"

                 Das Wort mit der nächst kleineren Priorität ist: "AAAB"

                 Das Wort mit der kleinsten Prioritat ist:        "ZZZZ"

 

 

 

 

 

           Erkenntnis:

 

 

           - Die Priorität der Objekte wird definiert durch die Ordnung

 

           - Das übliche Sortieren, beinhaltet das alfabetisch geordnete

           suchen von "AAAA". Der Erste Eintrag der sortierten Menge ist

           nämlich "AAAA" (falls vorhanden);

 

 

           Da beim neuen Sortierverfahren die Ordnung der Objekte inhalt

           der Definition ist, lässt sich auch das Objekt mit der grössten

           Priorität definieren. Will man ein bestimmtes Objekt suchen,

           so braucht man bloss diesem Objekt die grösste Prriorität zu

           geben.

 

 

                                                                     Seite  5

 

 

 

 

 

 

 

 

           Beschreibung des neuen Sortieralgorithmen

 

 

 

 

 

           Auf den folgenden Seiten, wird der neue Sortieralgorithmus

           beschrieben.

 

 

 

           Im ersten Teil der Beschreibung wird das Verfahren in Arbeits-

           schritte aufgeteilt.

 

 

           Im zweiten Teil der Beschreibung wird der Algorithmus anhand

           eines Beispiels durchgeführt. Dabei wird fortlaufend auf die

           beschriebenen Arbeits-Schritte verwiesen.

 

 

                                                                     Seite  6

 

 

 

 

 

 

 

 

                                

           ║ BEGINN DES VERFAHREN ║

                                

 

 

 

           Vorbereitung:

 

 

           Wir benötigen um das Verfahren einfacher durchführen zu

           können einige temporären Notitzen. Das heisst, für die

           einzelnen Schritte muss man sich einige Daten merken,

           welche zu einem späteren Zeitpunkt wieder gebraucht werden.

 

           Die Beschreibung nimmt bezug auf die folgenden Tabellen.

 

                  Aufbau einer

                   DATENBANK

                                  

           │ Ds.Nr. Ds.Inhalt      

                                  

               1   bla bla......  

               2   irgendwas....  

               3   2303.........  

               .   .............  

               usw.(Anz.Ds.)      

                                  

                                (Z.1)

 

             Aufbau einer         Aufbau einer           Aufbau einer

             INDEX-TABELLE     INDEX-TEMP-TABELLE     ZUSTANDS-TABELLE

                                                               

           │ I.Nr. Ds.Nr . │    │ I.Nr. Ds.Nr . │    │ I.Nr. Zustand │

                                                               

              1      2           1      .           1      .   

              2      1           2      .           2      .   

              3      3           3      .           3      .   

              .      .           .      .           .      .   

           │ usw.(Anz.Ds.) │    │ usw.(Anz.Ds.) │    │ usw.(Anz.Ds.) │

                                                               

                       (Z.2)                (Z.3)                (Z.4)

 

               Aufbau einer        Aufbau einer         Aufbau einer

              ZAEHL-TABELLE       ADREESS-TABELLE     STELLEN-TABELLE

                             ┐ ┌                  ┐ ┌               

           │ Nr. Zeichen Anz. │ │ Nr. Zeichen Adr. │ │  Nr.  Stelle 

                             ┤ ├                  ┤ ├              

           │ 1     .      .   │ │ 1     .      .   │ │   1      .   

           │ 2     .      .   │ │ 2     .      .   │ │   2      .   

           │ 3     .      .   │ │ 3     .      .   │ │   3      .   

           │ .     .      .   │ │ .     .      .   │ │   .      .   

           │ usw.(AnzZeichen) │ │ usw.(AnzZeichen) │ │ usw.(Anz.St.) │

                             ┘ └                  ┘ └              

                          (Z.5)                (Z.6)             (Z.7)

 

 

                                                                     Seite  7

 

 

 

 

 

 

 

 

           Folgende Zwischennotizen werden benötigt:

 

 

           Bezugsname:       Beschreibung:

 

 

 

           DATENBANK         Aufbau gemäss Z.1

                             In der Datenbank sind die zu sortiernden

                             Daten eingetragen. Jede Zeile entspricht

                             einem Datensatz d.h. einem Eintrag in die

                             Datenbank.

 

           INDEX-TABELLE     Aufbau gemäss Z.2

                             Die Index-Tabelle enthält für jeden Daten-

                             satz einen Eintrag. Der Eintrag ist jeweils

                             eine Datensatznummer. Auf die Datenbank wird

                             immer mittels Index-Tabelle zugegriffen. Das

                             Sortieren erfolgt, durch Tauschen der Daten-

                             satznummern in dieser Tabelle. Die Datenbank

                             wird nie verändert.

 

           INDEX-TEMP-TABELLE  Aufbau gemäss Z.3

                             das TEMP in der Bezeichnung steht für

                             'temporär' und bedeutet vorübergehend.

                             Diese Tabelle wird verwendet um Daten der

                             Index-Tabelle temporär zu speichern.

                                 Der Aufbau ist somit identisch dem der

                             INDEX-TABELLE.

 

           ZUSTANDS-TABELLE  Aufbau gemäss Z.4

                             Die Zustands-Tabelle enthält für jeden

                             Datensatz einen Eintrag. Ein Eintrag kann nur

                             die Ziffern 0 oder 1 enthalten.

 

           ZAEHL-TABELLE     Aufbau gemäss Z.5

                             Tabelle für jeweils einen Notizeintrag pro

                             Zeichen, welches beim Sortieren auftreten könnte,

                             durchnummeriert vom ersten Zeichen (Nr.1) bis

                             zum letzten Zeichen in der Reihenfolge, wie die

                             Zeichen zu sortieren sind.

                                 Der Eintrag 'Anz' enthält die Anzahl des

                             bei 'Zeichen' eingetragenen Zeichens.

 

           ADRESS-TABELLE    Aufbau gemäss Z.6

                             Tabelle mit gleicher Anzahl und Reihenfolge von

                             Einträgen wie die ZAEHL-TABELLE.

                                 Der Eintrag 'Adr' enthält die Adresse des bei

                             'Zeichen' eingetragenen Zeichens.

 

 

                                                                     Seite  8

 

 

 

 

 

 

 

 

           STELLEN-TABELLE   Aufbau gemäss Z.7

                             In dieser Tabelle wird eingetragen, in welcher

                             Reihenfolge (waagrecht) die Stellen der Daten-

                             bankeinträge sortiert werden.

                                 Für jede beim Sortieren betrachtete Stelle

                             erfolgt ein Eintrag in die STELLEN-TABELLE.

                             Die 1.Stelle ist das 1.linke Zeichen eines

                             Datenbankeintrags. Jede weitere Stelle ist

                             jeweils bezeichnend für das nächste rechte

                             Zeichen eines Eintrags.

 

                                                    

                             │ Ds.Nr. Ds.Inhalt      

                                                    

                                 1   bla bla...... <----- 1. Eintrag

                                 2   irgendwas.... <----- 2. Eintrag

                                 3   2303.........            usw.

 

                             1.Stelle 2

                             2.Stelle  3

                             3.Stelle   0

                                 usw.    3

 

 

 

 

 

 

 

 

 

 

 

           Es folgen einfache Notizen:

           (Nur 1 Zwischenresultat wird festgehalten)

 

 

           Bezugsname:       Beschreibung:

 

 

 

           AKT-STELLE        Unter diesem Bezugsnamen notieren wir die

                             Stelle nach welcher 'aktuell' sortiert wird.

                             Dieser Eintrag ist immer ein Eintrag aus

                             der STELLEN-TABELLE.

 

           SORT-START        Unter diesem Bezugsnamen notieren wir die Daten-

                             satznummer bei welcher das sortieren beginnt.

 

           SORT-ENDE         Unter diesem Bezugsnamen notieren wir die Daten-

                             satznummer bei welcher das sortieren endet.

 

 

                                                                     Seite  9

 

 

 

 

 

 

 

 

           Erklärung zur Verwendung von Notizen

 

 

 

 

           - Das Anspreche von Notizen erfolgt mit dem Bezugsnamem.

 

           Z.B.

           Für SORT-START wird 5 notiert.

           Der Eintrag von Nr. SORT-START der INDEX-TABELLE ist .......

 

 

 

 

 

           - Das Ansprechen der einzelnen Einträge von Notiz-Tabellen

             erfolgt mittels dem Bezugsnamen und der Nr. des Eintrags.

 

           Z.B.

           Eintrag von Nr.3 der INDEX-TABELLE ist ..........

           Der Inhalt von Indexnr.3 der INDEX-TABELLE ist .......

 

 

 

 

 

           - Ein Text in Klammern wird zuerst übersetzt.

 

           Z.B.

           Bei der Indexnr.(Wert von Y) der INDEX-TEMP-TABELLE wird der ....

           Angenommen Y = 2 dann liesst sich der Satz wie folgt:

 

           Bei der Indexnr.2  der INDEX-TEMP-TABELLE wird der ....

           und das bedeutet:

 

           Als 2.Eintrag der INDEX-TEMP-TABELLE wird der ....

 

 

                                                                     Seite 10

 

 

 

 

 

 

 

 

           1.Aktion

 

 

           Zu beginn des Sortierens, wird in der ZUSTANDS-TABELLE für jeden

           Datensatz eine 0 eingetragen ausser bei dem 1.Datensatz, bei

           welchem mit dem Sortieren begonnen werden soll, wird eine 1

           eingetragen.

 

 

 

           2.Aktion

 

 

           Unter AKT-STELLE wird die Stelle notiert, bei welcher das

           Sortieren beginnt. Das ist der erste Eintrag in der Stellen-

           Tabelle.

 

           Unter SORT-START wird die Ds.Nr. notiert, bei welcher das

           Sortieren beginnt, also 1. (Sortieren ab dem 1.Datensatz)

 

 

 

           3.Aktion

 

 

           Mittels ZUSTANDS-TABELLE erkennen wir unsortierte Datensätze.

           Wir betrachten die Einträge in der ZUSTANDS-TABELLE von

           Notiz SORT-START bis zur letzten Ds.Nr.

 

           Ein Sortiervorgang beginnt wenn:

 

           - in der ZUSTANDS-TABELLE eine 1 eingetragen ist und der darauf

             folgende Eintrag eine 0 ist.

 

           Ein Sortiervorgang endet wenn:

 

           - die letzte Ds.Nr. erreicht ist

           oder:

           - in der ZUSTANDS-TABELLE eine 0 eingetragen ist und der darauf

             folgende Eintrag eine 1 ist.

 

           Wir notieren uns die Datensatznummer bei welcher das Sortieren

           beginnt unter Bezugsname SORT-START.

           Wir motieren uns die Datensatznummer bei welcher das Sortieren

           endet unter Bezugsname SORT-ENDE.

           Wenn kein Sortiervorgang beginnt, wird weitergefahren mit der

           Aktion 11.

 

 

                                                                     Seite 11

 

 

 

 

 

 

 

 

           4.Aktion

 

 

           Für jedes mögliche Zeichen, welches beim Sortieren der Daten-

           sätze vorkommen könnte, notieren wir uns in die ZAEHL-TABELLE

           wie oft dieses Auftritt.

 

           Betrachtet werden die Datensätze mittels INDEX-TABELLE von

           SORT-START bis SORT-ENDE.

           Betrachte wird die Stelle AKT-STELLE dieser Datensätze.

 

 

 

           5.Aktion

 

 

           Da uns bekannt ist, in welcher Reihenfolge sortiert wird und

           wie viele gleiche Zeichen jeweils vorhanden sind, können wir

           daraus die der AKT-STELLE nach sortierten Startadressen der

           Datensätze ermitteln.

 

           Ist eine Startadresse ermittelt, tragen wir diese in die

           ADRESS-TABELLE ein.

 

 

           Berechnen der Start-Adressen wie folgt:

 

 

           1.

           Für die Start-Adresse des Zeichens welches beim Sortieren

           die höchste Priorität hat, wird der Notizeintrag von SORT-

           START verwendet.

 

           2.

           Start-Adresse des Zeichens mit der nächst kleineren Priorität,

           ist die Summe von: Start-Adresse des zuvor registrierten

           Zeichens addiert mit der Anzahl dieses zuvor registrierten

           Zeichens.

 

           3.

           Man wiederhole Punkt 2 mit allen auftretenden Zeichen.

 

           Bemerkung:

 

           Das Zeichen mit der beim Sortieren höchsten Priorität ist

           das Erste in der ZAEHL-Tabelle eingetragene.

           Das Zeichen mit der nächst kleineren Priorität ist das

           Zweite in der ZAEHL-TABELLE eingetragene.

           usw.

 

 

           (Siehe Beispiel nächste Seite)

 

 

                                                                     Seite 12

 

 

 

 

 

 

 

 

           Beispiel zur 5.Aktion:    (Berechnen der Startadresse)

 

 

           Gegeben:

 

              SORT-START = 4

 

              ZAEHL-TABELLE

                            

           │ Nr. Zeichen Anz. │

                            

           │ 1     B      3   │ <-- 1.Prio.

           │ 2     C      2   │ <-- 2.Prio.

           │ 3     A      0   │ <-- 3.Prio.

           │ 4     D      1   │ <-- 4.Prio.

                            

 

           Lösung:

 

             ADREESS-TABELLE

                            

           │ Nr. Zeichen Adr. │

                            

           │ 1     B      4  

           │ 2     C      7  

           │ 3     A      9  

           │ 4     D      9  

                            

 

           Berechnung:

           Startadresse von B ist: SORT-START = 4

           Startadresse von C ist: 4 + 3 = 7

           Startadresse von A ist: 7 + 0 = 9

           Startadresse von D ist: 7 + 1 = 9

 

 

 

 

           6.Aktion

 

 

           Eintragungen in die ZUSTANDS-TABELLE

 

 

           Bei jeder Nummer, bei welcher ein neues Zeichen beginnt,wird in

           der ZUSTANDS-TABELLE unter gleicher Nummer eine 1 eingetragen.

           Die Start-Adressen der Zeichen sind in der ADRESS-TABELLE

           ersichtlich.

 

           Wenn sich durch diese Einträge die ZUSTANDS-TABELLE nicht

           verändert hat, d.h. überall wo eine 1 eingetragen werden

           musste war schon eine 1, dann überspringen wir Aktion 7

           und Aktion 8 und fahren weiter mit der Aktion 9.

 

 

                                                                     Seite 13

 

 

 

 

 

 

 

 

           7.Aktion

 

 

           Wir betrachten mittels INDEX-TABELLE die Zeichen an Stelle

           AKT-STELLE der zu sortierenden Datensätze in der Datenbank.

 

           Wir gehen folgendermassen vor:

 

           Punkt 1

           Den Notizeintrag von SORT-START verwenden wir um den

           1.zu sortierenden Datenensatz mittels der INDEX-TABELLE

           anzusprechen.

 

           Punkt 2

           Wir betrachten das Zeichen an der AKT-STELLE des

           angesprochenen Datensatzes.

 

           X ist bezeichnend für dieses Zeichen.

           Y sei die zuvor berechnete Startadresse dieses Zeichens.

           Z ist bezeichnend für den zu sortierenden Datensatz und ist

             zu beginn gleich SORT-START.

 

           Bei der Indexnr.(Wert von Y) der INDEX-TEMP-TABELLE

           wird der Inhalt der Indexnr.(Z) der INDEX-TABELLE eingetragen.

           Die Startadresse für das Zeichen X wird um eins erhöht.

           Z wird ebenfalls um 1 erhöht. (Nächster Datensatz)

 

           Punkt 3.

           Man wiederhole Punkt 2, bis alle Datensätze welche für den

           aktuellen Sortiervorgang verarbeitet sind. Das heisst, bis

           Z gleich SORT-ENDE ist.

 

 

 

           8.Aktion

 

 

           Die Einträge der INDEX-TABELLE werden von SORT-START,

           bis und mit SORT-ENDE, mit dem Inhalt der INDEX-TEMP-

           TABELLE überschrieben.

 

 

 

           9.Aktion

 

 

           Den Notizeintrag SORT-ENDE übertragen wir in den von SORT-START.

           Zur Notiz SORT-START addieren wir 1.

 

 

                                                                     Seite 14

 

 

 

 

 

 

 

 

           10.Aktion

 

 

           Wir vergleichen die letzte Ds.Nr. mit dem Notizeintrag

           SORT-ENDE.

 

           Wenn SORT-ENDE kleiner ist als die letzte Ds.Nr. ist das

           sortieren für die AKT-STELLE noch nicht abgeschlossen und

           wir wiederholen alle Aktionen ab Aktion 3.

 

           Wenn SORT-ENDE gleich ist wie die letzte Ds.Nr. ist der Sortier-

           vorgang für die AKT-STELLE abgeschlossen und wir fahren weiter

           bei Aktion 11.

 

 

 

           11.Aktion

 

 

           Als Notizeintrag AKT-STELLE wird der nächste Eintrag aus der

           STELLEN-TABELLE übernommen.

 

 

 

           12.Aktion

 

 

           Wir betrachten die ZUSTANDS-TABELLE

 

           Sind alle Einträge der ZUSTANDS-TABELLE 1 oder ist der notierte

           Eintrag AKT-STELLE der letzte in der STELLEN-TABELLE, so ist

           die Datenbank sortiert.

 

           Andernfalls ist die Datenbank noch nicht sortiert

           und es muss ein weiterer Sortiervorgang durchlaufen werden.

           Es wird wiederholt ab Aktion 3.

 

 

 

 

 

 

 

 

                              

           ║ ENDE DES VERFAHREN ║

                               

 

 

                                                                     Seite 15

 

 

 

 

 

 

 

 

           ABLAUF DES VERFAHRENS ANHAND EINES BEISPIEL

 

 

 

 

           Folgend wird mittels den beschriebenen Aktionen (1..12) das

           Verfahren anhand eines Beispiels durchgeführt.

 

 

 

 

 

 

           ! Wichtig !

 

 

 

           Um das Beispiel durchführen zu können muss man sich unbedingt

           die Zwischenresultate korrekt notieren. Punkt für Punkt sind

           die Resultate einzutragen.

 

 

           Die benötigten Notizunterlagen sind vorgedruckt und befinden

           sich am Ende dieses Dokuments.

 

 

 

 

 

           Ausgangslage:

 

 

 

           Gegeben sei eine Datenbank mit den Einträgen von sechs

           vierstelligen Postleitzahlen. Das Zählen der Stellen erfolgt

           von links nach rechts. Die Adresse um die Postleitzahlen

           anzusprechen sind die Nummern 1....6

 

 

           Es besteht eine INDEX-TABELLE, nummeriert von 1....6.

           In der INDEX-TABELLE sind alle Nummern 1....6 gespeichert

           mit welchen die Datensätze (Postleitzahlen) der Datenbank

           angesprochen werden.

 

 

           Um die Datenbank zu sortieren, werden nicht die Daten in der

           Datenbank vertauscht, sondern lediglich die Datensatznummern

           in der INDEX-TABELLE.

 

 

                                                                     Seite 16

 

 

 

 

 

 

 

 

           Abkürzungen:

 

 

           Ds.  entspricht Datensatz

           I.   entspricht Index

           Nr.  entspricht Nummer

           Plz. entspricht Postleitzahl

           Ausgangslage fuer das Beispiel

 

 

 

 

 

 

 

             INDEX-TABELLE           DATENBANK

                                              

           │ I.Nr. Ds.Nr. │       │ Ds.Nr. Plz. 

                                             

              1      1              1   5803 

              2      2              2   2473 

              3      3             3   5303 

              4      4              4   2419 

              5      5              5   6420 

              6      6              6   5404 

                                             


 

                                                                     Vorbereitung Seite  1

 

 

 

 

 

 

 

 

                                                               

           │ AKT-STELLE         Inhalt                          

                                                                

           │ nur 1 Eintrag :    .    .    .    .    .    .    . 

                                                               

                                                               

           │ SORT-START         Inhalt                          

                                                               

           │ nur 1 Eintrag :    .    .    .    .    .    .    . 

                                                               

                                                                

           │ SORT-ENDE          Inhalt                          

                                                               

           │ nur 1 Eintrag :    .    .    .    .    .    .    . 

                                                               

 

 

 

 

             INDEX-TABELLE

                                                               

           │ I.Nr.    Ds.Nr.                                    

                                                                

              1      .    .    .    .    .    .    .    .    . 

              2      .    .    .    .    .    .    .    .    . 

              3      .    .    .    .    .    .    .    .    . 

              4      .    .    .    .    .    .    .    .    . 

              5      .    .    .    .    .    .    .    .    . 

              6      .    .    .    .    .    .    .    .    . 

                                                                

 

             INDEX-TEMP-TABELLE

                                                               

           │ I.Nr.    Ds.Nr.                                    

                                                               

              1      .    .    .    .    .    .    .    .    . 

              2      .    .    .    .    .    .    .    .    . 

              3      .    .    .    .    .    .    .    .    . 

              4      .    .    .    .    .    .    .    .    . 

              5      .    .    .    .    .    .    .    .    . 

              6      .    .    .    .    .    .    .    .    . 

                                                               


 

                                                                     Vorbereitung Seite  2

 

 

 

 

 

 

 

              ZAEHL-TABELLE

                                                               

           │ Nr. Zeichen   Anzahl                               

                                                                

           │ 1     0       .    .    .    .    .    .    .    . 

           │ 2     1       .    .    .    .    .    .    .    . 

           │ 3     2       .    .    .    .    .    .    .    . 

           │ 4     3       .    .    .    .    .    .    .    . 

           │ 5     4       .    .    .    .    .    .    .    . 

           │ 6     5       .    .    .    .    .    .    .    . 

           │ 7     6       .    .    .    .    .    .    .    . 

           │ 8     7       .    .    .    .    .    .    .    . 

           │ 9     8       .    .    .    .    .    .    .    . 

           │ 10    9       .    .    .    .    .    .    .    . 

                                                                

 

              ADRESS-TABELLE

                                                               

           │ Nr. Zeichen   Adresse                              

                                                               

           │ 1     0       .    .    .    .    .    .    .    . 

           │ 2     1       .    .    .    .    .    .    .    . 

           │ 3     2       .    .    .    .    .    .    .    . 

           │ 4     3       .    .    .    .    .    .    .    . 

           │ 5     4       .    .    .    .    .    .    .    . 

           │ 6     5       .    .    .    .    .    .    .    . 

           │ 7     6       .    .    .    .    .    .    .    . 

           │ 8     7       .    .    .    .    .    .    .    . 

           │ 9     8       .    .    .    .    .    .    .    . 

           │ 10    9       .    .    .    .    .    .    .    . 

                                                               

 

            ZUSTANDS-TABELLE

                                                               

           │ I.Nr.    Zustand                                   

                                                               

              1      .    .    .    .    .    .    .    .    . 

              2      .    .    .    .    .    .    .    .    . 

              3      .    .    .    .    .    .    .    .    . 

              4      .    .    .    .    .    .    .    .    . 

              5      .    .    .    .    .    .    .    .    . 

              6      .    .    .    .    .    .    .    .    . 

                                                               

 

            STELLEN-TABELLE

                         

             Nr.  Stelle 

                         

              1      1      <-- 1. zu sortierende Stelle

              2      2      <-- 2. zu sortierende Stelle

              3      3      <-- 3. zu sortierende Stelle

              4      4      <-- 4. zu sortierende Stelle

                         


 

                                                                     Vorbereitung Seite  3

 

 

 

 

 

 

 

 

 

 

 

 

 

            INDEX-TABELLE             DATENBANK

 

                                             

           │ I.Nr. Ds.Nr. │       │ Ds.Nr. Plz. 

                                             

              1      1              1   5803 

              2      2              2   2473 

              3      3              3   5303 

              4      4              4   2419 

              5      5              5   6420 

              6      6              6   5404 

                                             

 

 

 

 

 

 

 

           Die genannten sechs Datensätze sollen nun aufsteigend sortiert

           werden. Das heisst, die kleinste Plz. ist ansprechbar mit der

           kleinsten I.Nr. und die grösste Plz. ist ansprechbar mit der

           grössten I.Nr.

 

 

           Z.B.

 

           - Ds.Nr.1 hat den Inhalt 5803.

 

           - I.Nr.6 zeigt auf den letzten Datensatz der Datenbank dessen

             Inhalt die Postleitzahl 5803 ist.

 

 

                                                                     Seite 17

 

 

 

 

 

 

 

 

                                  

           ║ Starten vom Sortieren ║

                                 

 

 

              

           │ 1 

              

 

           1.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Die ZUSTANDS-TABELLE sieht nun folgendermassen aus:

 

           Nr. Zustand

           1   1

           2   0

           3   0

           4   0

           5   0

           6   0

 

              

           │ 2 

              

 

           2.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           AKT-STELLE = 1

           SORT-START = 1

 

              

           │ 3 

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 1

           SORT-ENDE  = 6

 

 

                                                                     Seite 18

 

 

 

 

 

              

           │ 4 

              

 

           4.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           ZAEHL-TABELLE

 

           Nr.  Ziffer  Anzahl

           1    0        0

           2    1        0

           3    2        2

           4    3        0

           5    4        0

           6    5        3

           7    6        1

           8    7        0

           9    8        0

           10   9        0

 

              

           │ 5 

              

 

           5.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Berechnen der Startadressen:

 

           Ziffer 2 ist die erste auftretende und ist zweimal vorhanden.

           Die Startadresse der Ziffer 2 ist demnach 1.

           Da die Ziffer 2 zweimal auftritt, werden die Adressen 1 und 2

           belegt.

           Ziffer 5 ist die nächste auftretende und ist dreimal vorhanden.

           Die Startadresse der Ziffer 5 ist demnach 3.

           Da die Ziffer 5 dreimal auftritt, werden die Adressen 3, 4 und

           5 belegt.

           Zuletzt bleibt noch die Ziffer 6 welche einmal auftritt.

           Die Startadresse der Ziffer 6 ist demnach 6.

           Da die Ziffer 6 einmal auftritt, wird nur die Adresse 6 belegt.

 

           ADRESS-TABELLE

 

           Nr.  Zeichen   Start-Adresse

           1    0         0

           2    1         0

           3    2         1

           4    3         0

           5    4         0

           6    5         3

           7    6         6

           8    7         0

           9    8         0

           10   9         0

 

 

                                                                     Seite 19

 

 

 

 

              

           │ 6 

              

 

           6.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Aktualisierte ZUSTANDS-TABELLE:

 

           Nr. Zustand

           1   1

           2   0

           3   1

           4   0

           5   0

           6   1

 

              

           │ 7 

              

 

           7.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           1. Zu sortierender Datensatz:

           Die Indexnr.1 der INDEX-TABELLE zeigt auf den 1.Datensatz

           mit der Postleitzahl 5803.

           An Stelle AKT-STELLE erkennen wir die Ziffer 5.

           Die Startadresse für Ziffer 5 ist wie berechnet 3.

 

           In die Indexnr.3 (Startadresse von Ziffer 5) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.1 der INDEX-TABELLE einge-

           tragen also 1. Die Startadresse für die Ziffer 5 wird um eins

           auf 4 erhöht.

 

           2. Zu sortierender Datensatz:

           Die Indexnr.2 der INDEX-TABELLE zeigt auf den 2.Datensatz

           mit der Postleitzahl 2473.

           An Stelle AKT-STELLE erkennen wir die Ziffer 2.

           Die Startadresse für Ziffer 2 ist wie berechnet 1.

 

           In die Indexnr.1 (Startadresse von Ziffer 2) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.2 der INDEX-TABELLE einge-

           tragen also 2. Die Startadresse für die Ziffer 2 wird um eins

           auf 2 erhöht.

 

           3. Zu sortierender Datensatz:

           Die Indexnr.3 der INDEX-TABELLE zeigt auf den 3.Datensatz

           mit der Postleitzahl 5303.

           An Stelle AKT-STELLE erkennen wir die Ziffer 5.

           Die Startadresse für Ziffer 5 ist 4.

 

           In die Indexnr.4 (Startadresse von Ziffer 5) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.3 der INDEX-TABELLE einge-

           tragen also 3. Die Startadresse für die Ziffer 5 wird um eins

           auf 5 erhöht.

 

 

                                                                     Seite 20

 

 

 

 

 

           4. Zu sortierender Datensatz:

           Die Indexnr.4 der INDEX-TABELLE zeigt auf den 4.Datensatz

           mit der Postleitzahl 2419.

           An Stelle AKT-STELLE erkennen wir die Ziffer 2.

           Die Startadresse für Ziffer 2 ist 2.

 

           In die Indexnr.2 (Startadresse von Ziffer 2) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.4 der INDEX-TABELLE einge-

           tragen also 4. Die Startadresse für die Ziffer 2 wird um eins

           auf 3 erhöht.

 

 

           5. Zu sortierender Datensatz:

           Die Indexnr.5 der INDEX-TABELLE zeigt auf den 5.Datensatz

           mit der Postleitzahl 6420.

           An Stelle AKT-STELLE erkennen wir die Ziffer 6.

           Die Startadresse für Ziffer 6 ist 6.

 

           In die Indexnr.6 (Startadresse von Ziffer 6) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.5 der INDEX-TABELLE einge-

           tragen also 5. Die Startadresse für die Ziffer 6 wird um eins

           auf 7 erhöht.

 

 

           6. Zu sortierender Datensatz:

           Die Indexnr.6 der INDEX-TANELLE zeigt auf den 6.Datensatz

           mit der Postleitzahl 5404.

           An Stelle AKT-STELLE erkennen wir die Ziffer 5.

           Die Startadresse für Ziffer 5 ist 5.

 

 

           In die Indexnr.5 (Startadresse von Ziffer 5) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.6 der INDEX-TABELLE einge-

           tragen also 6. Die Startadresse für die Ziffer 5 wird um eins

           auf 6 erhöht.

 

 

              

           │ 8 

              

 

           8.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

            INDEX-TABELLE

                        

           │ I.Nr. Ds.Nr. │

                        

              1      2  

              2      4  

              3      1  

              4      3  

              5      6  

              6      5  

                        

 

 

                                                                     Seite 21

 

 

 

 

 

 

 

 

              

           │ 9 

              

 

           9.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 7

 

              

           │ 10 │

              

 

           10.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           SORT-ENDE ist 6 also gleich der letzten Ds.Nr..

           Demnach wird Aktion 11 Ausgeführt.

 

              

           │ 11 │

              

 

           Zwischenbemerkung:

 

           Der Sortiervorgang für die 1.Stelle ist abgeschlossen.

           Der aktuelle Zustand von der INDEX-TABELLE sieht folgender-

           massen aus.

 

                    INDEX-TABELLE

                                        

           │ I.Nr. Ds.Nr. zeigt auf Plz. │

                                       

              1      2       -->  2473 

              2      4       -->  2419 

              3      1       -->  5803 

              4      3       -->  5303 

              5      6       -->  5404 

              6      5       -->  6420 

                                       

 

           11.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           AKT-STELLE = 2

           SORT-START = 1

 

 

                                                                     Seite 22

 

 

 

 

 

 

 

 

              

           │ 12 │

              

 

           12.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Die Datenbank ist noch nicht sortiert.

           Es wird wiederholt ab Aktion 3.

 

              

           │ 13 │

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 1

           SORT-ENDE  = 2

 

              

           │ 14 │

              

 

           4.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           ZAEHL-TABELLE

 

           Nr.  Ziffer  Anzahl

           1    0        0

           2    1        0

           3    2        0

           4    3        0

           5    4        2

           6    5        0

           7    6        0

           8    7        0

           9    8        0

           10   9        0

 

 

                                                                     Seite 23

 

 

              

           │ 15 │

              

 

           5.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Berechnen der Startadressen:

 

           Ziffer 4 ist die erste auftrentende Ziffer.

           Die Startadresse von Ziffer 4 ist Notizeintrag von

           SORT-START also 1.

 

           Es treten keine weiteren Ziffern auf.

 

           ADRESS-TABELLE

 

           Nr.  Zeichen   Start-Adresse

           1    0         0

           2    1         0

           3    2         0

           4    3         0

           5    4         1

           6    5         0

           7    6         0

           8    7         0

           9    8         0

           10   9         0

 

              

           │ 16 │

              

 

           6.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Aktualisierte ZUSTANDS-TABELLE:

 

           Nr. Zustand

           1   1

           2   0

           3   1

           4   0

           5   0

           6   1

 

           Die ZUSTANDS-TABELLE wurde nicht verändert. Wir fahren weiter

           bei Aktion 9

 

              

           │ 17 │

              

 

           9.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz: SORT-START = 3

 

 

                                                                     Seite 24

 

 

 

 

 

 

 

 

              

           │ 18 │

              

 

           10.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           SORT-ENDE ist 2 also kleiner als die letzte Ds.Nr..

           Demnach wird ab Aktion 3 wiederholt.

 

              

           │ 19 │

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 1

           SORT-ENDE  = 2

 

              

           │ 20 │

              

 

           4.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           ZAEHL-TABELLE

 

           Nr.  Ziffer  Anzahl

           1    0        0

           2    1        0

           3    2        0

           4    3        0

           5    4        2

           6    5        0

           7    6        0

           8    7        0

           9    8        0

           10   9        0

 

 

                                                                     Seite 25

 

 

              

           │ 21 │

              

 

           5.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Berechnen der Startadressen:

 

           Ziffer 4 ist die erste auftrentende Ziffer.

           Die Startadresse von Ziffer 4 ist Notizeintrag von

           SORT-START also 1.

           Es treten keine weiteren Ziffern auf.

 

           ADRESS-TABELLE

 

           Nr.  Zeichen   Start-Adresse

           1    0         0

           2    1         0

           3    2         0

           4    3         0

           5    4         1

           6    5         0

           7    6         0

           8    7         0

           9    8         0

           10   9         0

 

              

           │ 22 │

              

 

           6.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Aktualisierte ZUSTANDS-TABELLE:

 

           Nr. Zustand

           1   1

           2   0

           3   1

           4   0

           5   0

           6   1

 

           Die ZUSTANDS-TABELLE wurde nicht verändert. Wir fahren weiter

           bei Aktion 10

 

              

           │ 23 │

              

 

           10.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           SORT-ENDE ist 2 also kleiner als die letzte Ds.Nr..

           Demnach wird ab Aktion 3 wiederholt.

 

 

                                                                     Seite 26

 

 

 

 

 

 

 

 

              

           │ 24 │

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 3

           SORT-ENDE  = 5

 

              

           │ 25 │

              

 

           4.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           ZAEHL-TABELLE

 

           Nr.  Ziffer  Anzahl

           1    0        0

           2    1        0

           3    2        0

           4    3        1

           5    4        1

           6    5        0

           7    6        0

           8    7        0

           9    8        1

           10   9        0

 

 

                                                                     Seite 27

 

 

 

 

 

 

 

 

              

           │ 26 │

              

 

           5.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Berechnen der Startadressen:

 

           Ziffer 3 ist die erste auftretende und ist einmal vorhanden.

           Die Startadresse der Ziffer 3 ist demnach 3.

           Ziffer 4 ist die nächste auftretende und ist einmal vorhanden.

           Die Startadresse der Ziffer 4 ist demnach 4.

           Zuletzt bleibt noch die Ziffer 8 welche einmal auftritt.

           Die Startadresse der Ziffer 8 ist demnach 5.

 

           ADRESS-TABELLE

 

           Nr.  Zeichen   Start-Adresse

           1    0         0

           2    1         0

           3    2         0

           4    3         3

           5    4         4

           6    5         0

           7    6         0

           8    7         0

           9    8         5

           10   9         0

 

              

           │ 27 │

              

 

           6.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Aktualisierte ZUSTANDS-TABELLE:

 

           Nr. Zustand

           1   1

           2   0

           3   1

           4   1

           5   1

           6   1

 

 

                                                                     Seite 28

 

 

 

 

              

           │ 28 │

              

 

           7.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           1. Zu sortierender Datensatz:

           Die Indexnr.3 der INDEX-TABELLE zeigt auf den 1.Datensatz

           mit der Postleitzahl 5803.

           An Stelle AKT-STELLE erkennen wir die Ziffer 8.

           Die Startadresse für Ziffer 8 ist wie berechnet 5.

             In die Indexnr.5 (Startadresse von Ziffer 8) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.3 der INDEX-TABELLE einge-

           tragen also 1. Die Startadresse für die Ziffer 8 wird um eins

           auf 6 erhöht.

 

           2. Zu sortierender Datensatz:

           Die Indexnr.4 der INDEX-TABELLE zeigt auf den 3.Datensatz

           mit der Postleitzahl 5303.

           An Stelle AKT-STELLE erkennen wir die Ziffer 3.

           Die Startadresse für Ziffer 3 ist wie berechnet 3.

             In die Indexnr.3 (Startadresse von Ziffer 3) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.4 der INDEX-TABELLE einge-

           tragen also 3. Die Startadresse für die Ziffer 3 wird um eins

           auf 4 erhöht.

 

           3. Zu sortierender Datensatz:

           Die Indexnr.5 der INDEX-TABELLE zeigt auf den 6.Datensatz

           mit der Postleitzahl 5404.

           An Stelle AKT-STELLE erkennen wir die Ziffer 4.

           Die Startadresse für Ziffer 4 ist 4.

             In die Indexnr.4 (Startadresse von Ziffer 4) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.5 der INDEX-TABELLE einge-

           tragen also 6. Die Startadresse für die Ziffer 4 wird um eins

           auf 5 erhöht.

 

 

              

           │ 30 │

              

 

           8.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

             INDEX-TABELLE

                        

           │ I.Nr. Ds.Nr. │

                         

              1      2  

              2      4  

              3      3  

              4      6  

              5      1  

              6      5  

                        

 

 

                                                                     Seite 29

 

 

              

           │ 31 │

              

 

           9.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 6

 

              

           │ 32 │

              

 

           10.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           SORT-ENDE ist 5 also kleiner als die letzte Ds.Nr..

           Demnach wird ab Aktion 3 wiederholt.

 

              

           │ 33 │

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Es beginnt kein Sortiervorgang.

           Es wird deshalb bei Aktion 11 weitergefahren.

 

              

           │ 34 │

              

 

           Zwischenbemerkung:

 

           Der Sortiervorgang für die 2.Stelle ist abgeschlossen.

           Der aktuelle Zustand von der INDEX-TABELLE sieht folgender-

           massen aus.

 

                    INDEX-TABELLE

                                       

           │ I.Nr. Ds.Nr. zeigt auf Plz. │

                                       

              1      2       -->  2473 

              2      4       -->  2419 

              3      3       -->  5303 

              4      6       -->  5404 

              5      1       -->  5803 

              6      5       -->  6420 

                                       

 

           11.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz: AKT-STELLE = 3   und   SORT-START = 1

 

 

                                                                     Seite 30

 

 

 

 

 

 

 

 

              

           │ 35 │

              

 

           12.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Die Datenbank ist noch nicht sortiert.

           Es wird wiederholt ab Aktion 3.

 

              

           │ 36 │

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           SORT-START = 1

           SORT-ENDE  = 2

 

              

           │ 37 │

              

 

           4.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           ZAEHL-TABELLE

 

           Nr.  Ziffer  Anzahl

           1    0        0

           2    1        1

           3    2        0

           4    3        0

           5    4        0

           6    5        0

           7    6        0

           8    7        1

           9    8        0

           10   9        0

 

 

                                                                     Seite 31

 

 

 

 

 

 

 

 

              

           │ 38 │

              

 

           5.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Berechnen der Startadressen:

 

           Ziffer 1 ist die erste auftretende und ist einmal vorhanden.

           Die Startadresse der Ziffer 1 ist demnach 1.

           Ziffer 7 ist die nächste auftretende und ist einmal vorhanden.

           Die Startadresse der Ziffer 7 ist demnach 2.

 

           ADRESS-TABELLE

 

           Nr.  Zeichen   Start-Adresse

           1    0         0

           2    1         1

           3    2         0

           4    3         0

           5    4         0

           6    5         0

           7    6         0

           8    7         2

           9    8         0

           10   9         0

 

              

           │ 39 │

              

 

           6.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Aktualisierte ZUSTANDS-TABELLE:

 

           Nr. Zustand

           1   1

           2   1

           3   1

           4   1

           5   1

           6   1

 

 

                                                                     Seite 32

 

 

 

 

              

           │ 40 │

              

 

           7.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           1. Zu sortierender Datensatz:

           Die Indexnr.1 der INDEX-TABELLE zeigt auf den 2.Datensatz

           mit der Postleitzahl 2473.

           An Stelle AKT-STELLE erkennen wir die Ziffer 7.

           Die Startadresse für Ziffer 7 ist wie berechnet 2.

             In die Indexnr.2 (Startadresse von Ziffer 7) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.1 der INDEX-TABELLE einge-

           tragen also 2. Die Startadresse für die Ziffer 7 wird um eins

           auf 3 erhöht.

 

           2. Zu sortierender Datensatz:

           Die Indexnr.2 der INDEX-TABELLE zeigt auf den 4.Datensatz

           mit der Postleitzahl 2419.

           An Stelle AKT-STELLE erkennen wir die Ziffer 1.

           Die Startadresse für Ziffer 1 ist wie berechnet 1.

             In die Indexnr.1 (Startadresse von Ziffer 1) der INDEX-TEMP-

           TABELLE wird der Inhalt der Indexnr.2 der INDEX-TABELLE einge-

           tragen also 4. Die Startadresse für die Ziffer 1 wird um eins

           auf 2 erhöht.

 

 

              

           │ 41 │

              

 

           8.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

             INDEX-TABELLE

                        

           │ I.Nr. Ds.Nr. │

                        

              1      4  

              2      2  

              3      3  

              4      6  

              5      1  

              6      5  

                        

 

              

           │ 42 │

              

 

           9.Aktion ausführen

 

           Das ergibt folgendes Resultat:

           Notiz:

           SORT-START = 3

 

 

                                                                     Seite 33

 

 

 

 

 

 

 

 

              

           │ 43 │

              

 

           10.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           SORT-ENDE ist 2 also kleiner als die letzte Ds.Nr..

           Demnach wird ab Aktion 3 wiederholt.

 

              

           │ 44 │

              

 

           3.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Es beginnt kein Sortiervorgang.

           Es wird deshalb bei Aktion 11 weitergefahren.

 

              

           │ 45 │

              

 

           Zwischenbemerkung:

 

           Der Sortiervorgang für die 2.Stelle ist abgeschlossen.

           Der aktuelle Zustand von der INDEX-TABELLE sieht folgender-

           massen aus.

 

                    INDEX-TABELLE

                                        

           │ I.Nr. Ds.Nr. zeigt auf Plz. │

                                       

              1      4       -->  2419 

              2      2       -->  2473 

              3      3       -->  5303 

              4      6       -->  5404 

              5      1       -->  5803 

              6      5       -->  6420 

                                       

 

           11.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Notiz:

           AKT-STELLE = 4

           SORT-START = 1

 

 

                                                                     Seite 34

 

 

 

 

 

 

 

 

              

           │ 46 │

              

 

           12.Aktion ausführen

 

           Das ergibt folgendes Resultat:

 

           Alle Einträge der ZUSTANDS-TABELLE sind 1.

           Die Datenbank ist sortiert.

 

 

 

                              

           ║ Ende vom Sortieren ║

                              

 

 

 

 

           ENDE DES BEISPIELS

 

 

                                                                     Seite 35

 

 

Zurück

Diese Seiten drucken