Sie sind auf Seite 1von 26

Sortierverfahren

Abstract

III

Abstract

In dieser Ausarbeitung werden einige Sortierverfahren vorgestellt und es wird aufgezeigt wofr man diese braucht und wo sie einem begegnen. Das erste Kapitel ist eine Einleitung in die Welt der Sortierverfahren. Kapitel zwei schafft eine Grundlage, damit die restlichen Kapitel leichter zu verstehen sind. Kapitel drei behandelt drei verschiedene Arten von Sortierverfahren. Zuerst werden die einzelnen Arten beschrieben, dann wird aufgezeigt wo sie benutzt werden um anschlieend noch Vor- und Nachteile der Arten vorgestellt. Um den Rahmen der Ausarbeitung nicht zu sprengen, werden nicht mehr als drei Arten vorgestellt. Kapitel vier stellt drei Sortieralgorithmen anhand von einfachen Zahlenfolgen vor. Die Algorithmen wurden mit Hilfe der Quellen erlernt. In Kapitel fnf wird der Quellcode des Sortieralgorithmus Insertionsort Zeile fr Zeile erlutert.

Inhaltsverzeichnis

Inhaltsverzeichnis

Abstract ......................................................................................................... III Inhaltsverzeichnis .......................................................................................... V 1. 2. 3. Einleitung ................................................................................................ 1 Grundlagen ............................................................................................. 3 Sortierverfahren allgemein ...................................................................... 5 3.1 Vorstellung verschiedener Arten von Sortierverfahren ..................... 5 Vergleichsbasierte Sortierverfahren ........................................... 5 Nicht-vergleichsbasierte Sortierverfahren .................................. 5 Topologische Sortierung ............................................................ 5

3.1.1 3.1.2 3.1.3 3.2

Wo benutzt man welche Art von Sortierverfahren?........................... 6 Vergleichsbasierte Sortierverfahren ........................................... 6 Nicht-vergleichsbasierte Sortierverfahren .................................. 6 Topologische Sortierung ............................................................ 6

3.2.1 3.2.2 3.2.3 3.3 4

Vor- und Nachteile der einzelnen Arten ............................................ 6

Vorstellung einiger Sortieralgorithmen .................................................... 9 4.1 Bubblesort......................................................................................... 9 Funktionsweise........................................................................... 9 Vor- und Nachteile des Bubblesort ............................................. 9

4.1.1 4.1.2 4.2

Quicksort......................................................................................... 10 Funktionsweise......................................................................... 10 Vor- und Nachteile des Quicksort ............................................. 11

4.2.1 4.2.2 4.3

Insertionsort .................................................................................... 11 Funktionsweise......................................................................... 11 Vor- und Nachteile des Insertionsort ........................................ 12

4.3.1 4.3.2 5

Quellcode-Beispiel ................................................................................ 13

VI

Inhaltsverzeichnis

6 7

Ausblick ................................................................................................. 15 Fazit....................................................................................................... 17

Literaturverzeichnis ...................................................................................... 19

1 Einleitung

1. Einleitung

Dem Menschen sagt man nach ein Gewohnheitstier zu sein. Das beginnt schon morgens nach dem Aufwachen. Jeder hat seinen eigenen Rhythmus beziehungsweise seinen eigenen Ablauf. Whrend der Eine noch fnf Minuten liegen bleibt bevor er aufsteht, rollt sich ein Anderer sofort aus dem Bett. Dann geht es weiter. Zuerst frhstcken, dann duschen und danach anziehen oder mit dem Duschen beginnen und erst nach dem Anziehen zum Frhstck gehen. Alles hat also einen geregelten Ablauf. Um diesen Ablauf festzulegen, muss man alles in einer bestimmten Reihenfolge anzuordnen, um den Ablauf zu vereinfachen. Womit wir beim Thema dieser Ausarbeitung angekommen sind. Sortierverfahren, sie begegnen uns, wie bereits angefhrt jeden einzelnen Tag schon am Morgen gleich nach dem Aufwachen und begleiten uns durch den Tag, bis wir am Abend wieder zu Bett gehen. Doch welche Arten von Sortierverfahren gibt es und wo kann man welche Art anwenden? Diese und noch viele andere Fragen werden in dieser Ausarbeitung bearbeitet und beantwortet.

2 Grundlagen

2. Grundlagen

Wenn man von Sortieralgorithmen redet, stellt sich einem zunchst die Frage, was ist ein Sortieralgorithmus berhaupt? Diese Frage ist eigentlich recht schnell beantwortet. Ein Sortieralgorithmus ist nichts anderes als eine bestimmte Vorgehensweise etwas in einer bestimmten Reihenfolge anzuordnen. Ein Sortieralgorithmus macht also im Prinzip nichts anderes als Ordnung ins Chaos bringen. Das ist wiederum subjektiv, da jeder seine eigene Vorstellung von Ordnung und Chaos hat. Wenn man zum Beispiel ein Kartenspiel spielt, sortiert jeder seine Karten auf der Hand anders als ein anderer. Whrend der eine seine Karten von links nach rechts absteigend anordnet, sortiert der andere aufsteigend. Auch bei der Sortierung der Kartenfarben wird unterschiedlich gehandelt. Die Sortierung hngt hierbei davon ab was die individuellen Strken der sortierenden Person sind. Daher sortieren Rechtshnder im Normalfall genau spiegelverkehrt zu einem Linkshnder. Man sieht Sortierverfahren begegnen uns berall. Besonders wichtig sind Sortierverfahren im Arbeitsalltag. Ist zum Beispiel in der Firma fr die man arbeitet eine Datenbank vorhanden und man mchte Daten aus der Datenbank auslesen, erwartet man, dass die angeforderten Daten bersichtlich zurckgegeben werden. Beispielsweise wenn man wissen mchte welcher Kunde das Produkt XY gekauft hat und man bekommt eine Liste aller dieser Kunden ist es leichter diese Liste weiter zu verwenden, wenn die Kunden nach dem Anfangsbuchstaben sortiert sind. Um dies mglich zu machen gibt es auch in der Informatik die Mglichkeit Sortieralgorithmen zu implementieren, um eine derartige Auswertung zu ermglichen. Eben diese Software wird in den folgenden Kapiteln behandelt und erklrt.

3 Sortierverfahren allgemein

3. Sortierverfahren allgemein

In diesem Kapitel werden nur drei Arten von Sortierverfahren vorgestellt. Es gibt natrlich durchaus mehr, doch alle Arten anzufhren wrde den Rahmen dieser Ausarbeitung sprengen. 3.1 Vorstellung verschiedener Arten von Sortierverfahren 3.1.1 Vergleichsbasierte Sortierverfahren Vergleichsbasierte Sortierverfahren sind wie der Name schon sagt, vergleichsbasiert. Das bedeutet, bei der Sortierung werden immer zwei Werte miteinander verglichen. Hierbei ist es egal ob nach Zahlen oder nach Buchstaben sortiert wird. Zu dieser Art von Sortierverfahren werden im vierten Kapitel einige Algorithmen vorgestellt. 3.1.2 Nicht-vergleichsbasierte Sortierverfahren Nicht-vergleichsbasierte Sortierverfahren sind im Prinzip das Gegenteil von vergleichsbasierten Sortierverfahren. Sie knnen allerdings nur Zahlen sortieren. Bei dieser Art der Sortierung werden die Zahlen beispielsweise ziffernweise angeordnet. Das heit, zuerst werden alle Zahlen mit derselben letzten Ziffer bereinander geschrieben. Gibt es mehrere Zahlen mit derselben letzten Ziffer wird die Ausgangsanordnung beibehalten. Dann werden die Zahlen nach der zweitletzten Ziffer angeordnet, so wird das Verfahren fortgesetzt bis alle Zahlen nach all ihren Ziffern angeordnet wurden. 3.1.3 Topologische Sortierung Topologische Sortierung basiert darauf, dass bei einer Sortierung eine Bedingung erfllt sein muss um die Sortierung fortzufhren. hnlich ist es, wenn man Nahrung aus einer Verpackung essen mchte, beispielsweise einen Joghurt. Man kann allerdings nicht sofort darauf los essen. Zunchst muss man den Deckel vom Becher abnehmen. Erst dann man den Joghurt essen. Allerdings ist es egal ob man sich den Lffel vor dem Joghurt besorgt oder anders rum.

3 Sortierverfahren allgemein

3.2 Wo benutzt man welche Art von Sortierverfahren? 3.2.1 Vergleichsbasierte Sortierverfahren Diese Art von Sortierverfahren sind im Prinzip die Standardalgorithmen. Sie sind am leichtesten zu erlernen und zu verstehen. Daher werden sie auch am ftesten in Schulen verwendet um einfache Datenstze zu sortieren. Mit dieser Art Sortierverfahren kann eigentlich alles sortiert werden. Die Algorithmen kommen sowohl mit Zahlen als auch mit Buchstaben klar. 3.2.2 Nicht-vergleichsbasierte Sortierverfahren Nicht-vergleichsbasierte Sortierverfahren werden meist bei sehr groen Datenstzen verwendet. Da sie nicht Ziffer fr Ziffer vergleichen sind sie bei groen Datenmengen schneller als vergleichsbasierte Algorithmen. Zum Beispiel ist in der Wissenschaft und Forschung gerade Performance bei der Sortierung wichtig. Dort ist es vorteilhaft zur Sortierung von groen Mengen an Zahlen diese Art Sortierverfahren einzusetzen. 3.2.3 Topologische Sortierung Diese Art von Sortierverfahren wird bentigt wenn es nicht mehr mglich ist nach Eigenschaften der Daten zu sortieren, sondern nach Beziehungen in Abhngigkeit von einander sortiert werden muss. Diese Sortierung findet ihren Platz hauptschlich in der Informatik vor allem in der Graphen-Theorie, wo damit untersucht wird, ob die Graphen zyklisch aufeinander abgebildet sind oder nicht. 3.3 Vor- und Nachteile der einzelnen Arten Die Art von Sortierverfahren ist schwer zu vergleichen, da jede Art auf einen bestimmten Bereich spezialisiert ist. So sind die vergleichsbasierten, wie bereits erwhnt, gut zu erklren und leichter zu verstehen, als die beiden anderen beschriebenen Arten. Daher sind sie gut geeignet zum Erlernen von Sortieralgorithmen. Ein weiterer Vorteil dieser Art ist, dass sie sowohl Zahlen als auch Buchstaben und sonstige Zeichen interpretieren knnen. Der grte Nachteil ist eben die Arbeitsgeschwindigkeit. Da immer zwei Daten miteinander verglichen werden, steigt die Arbeitszeit bei groen Datenstzen ins Unermessliche. Dafr sind aber auch nicht-vergleichsbasierte Sortierverfahren gedacht. Diese Algorithmen sortieren nicht durch vergleichen von zwei Da-

3 Sortierverfahren allgemein

ten, sondern ordnen diesen nach anderen Kriterien in mehreren Durchgngen immer wieder neu an, bis sie das Endergebnis erreicht haben. Dabei steigt der Zeitaufwand immer proportional zur Datenmenge. Daher sind sie anderen Sortierarten zeitmig bei groen Datenmengen berlegen. Der Nachteil an dieser Art von Algorithmen ist, dass sie nur Ziffern interpretieren und somit auch nur diese sortieren knnen. Die letzte der vorgestellten Arten ist die topologische Sortierung. Diese Art ist die einzige, die auf Bedingungen achtet und somit vor allem in der Programmierung von grafikabhngiger Software sehr wichtig ist. Diese Art Sortierung ermglicht es zu berprfen, ob die verwendeten Graphen zyklisch aufeinander stehen. Dies ist auch gleichzeitig das Problem an dieser Art von Sortierung. Wenn die Datenstze zyklisch sind und die Bedingung somit gleichzeitig die Folge ist, knnen die Datenstze nicht mehr sortiert werden. Der weitere Verlauf dieser Ausarbeitung wird sich auf vergleichsbasierte Sortierverfahren beschrnken, um den Rahmen dieser Ausarbeitung nicht zu sprengen.

4 Vorstellung einiger Sortieralgorithmen

4 Vorstellung einiger Sortieralgorithmen


4.1 Bubblesort 4.1.1 Funktionsweise Der Bubblesort funktioniert recht einfach. Das Verfahren wird an folgender Zahlenreihe: 24, 8, 67, 13, erlutert. Dieser Sortieralgorithmus vergleicht immer zwei Zahlen mit einander und vertauscht sie, falls die zweite Zahl grer sein sollte als die erste. Zu Beginn des ersten Durchgangs unseres Beispiels werden also 24 und 8 verglichen und da 24 > 8, werden die beiden Zahlen vertauscht. Es ergibt sich nach dem ersten Schritt also 8, 24, 67, 13. Im zweiten Schritt des ersten Durchgangs wird nun 24 mit 67 verglichen. Da 24 < 67 ist, bleibt die Reihenfolge stehen wie sie ist. Nun wird 67 mit 13 verglichen und weil 67 > 13, werden auch diese beiden Zahlen vertauscht. Wir erhalten nun zum Ende des ersten Durchgangs folgende Reihenfolge: 8, 24, 13, 67. Nun wird wieder von vorn begonnen. Zunchst werden 8 und 24 verglichen. Da 8 < 24 werden die beiden nicht vertauscht. Dann werden 24 und 13 verglichen und da 24 > 13 werden die beiden Zahlen vertauscht. Es ergibt sich somit diese Zahlenreihe: 8, 13, 24, 67. Das Verfahren ist hiermit eigentlich beendet, aber beim Bubblesort gibt es zwei Schleifen, die uere und die innere. Whrend die uere von n bis 1 heruntergezhlt wird die innere von 0 bis n-1 hochgezhlt. Hierbei ist n die Anzahl der Zahlen in der Zahlenkette, im Beispiel ist n = 4. Das heit, es sind drei Durchgnge ntig. Der letzte ist immer der Probedurchgang. Dieser wird nur noch durchlaufen fr den Fall, dass durch das Vertauschen an zweiter Stelle eine kleinere Zahl gekommen ist als die an erster Stelle. Somit werden 8 und 13 nochmals verglichen. Doch das Endergebnis bleibt unverndert. Nach dem dritten Durchgang ist das Sortierverfahren beendet. 4.1.2 Vor- und Nachteile des Bubblesort Der Vorteil des Bubblesort liegt darin, dass dieses Verfahren sehr einfach zu verstehen ist (vgl. [3, S. 4]). Daher ist er besonders fr Einsteiger in die Welt der Sortierung sehr zu empfehlen, auch wenn das Laufzeitverhalten nicht optimal ist (vgl. [3, S. 4]). Ein normaler Nutzer hat eigentlich ohnehin nicht

10

4 Vorstellung einiger Sortieralgorithmen

so groe Datenmengen, dass groe Unterschiede im Laufzeitverhalten auftreten. 4.2 Quicksort 4.2.1 Funktionsweise Der Quicksort ist ein sogenannter Teile und Herrsche Algorithmus (vgl. [6]). Das bedeutet, die zu sortierende Zahlenreihe wird in immer kleinere Teilstcke zerlegt und die Stcke werden dann Stck fr Stck sortiert (vgl [6]). Vor der Sortierung werden der linke und der rechte Rand der Zahlenfolge festgelegt. Dann wird das Trennelement, der so genannte Pivot, festgelegt. Der Pivot ist eine beliebige Zahl in der Zahlenfolge, mit der alle anderen Zahlen verglichen werden. Mglichst sollte das Element in der Mitte als Pivot festgelegt werden, um zwei gleichgroe Teilzahlenfolgen zu erzeugen. Hat man zum Beispiel die Zahlenfolge: 2, 9, 3, 7, 8, 3, 9, 6. Es empfiehlt sich das vierte Element, hier also die 7 als Pivot festzulegen. Der linke Rand ist das erste Element und der rechte Rand ist das achte Element. Jetzt kann begonnen werden zu sortieren. Der linke Rand wird jetzt solange hochgezhlt bis der Wert des Randelements grer ist als der Pivot. Das geschieht beim zweiten Element. Jetzt wird der rechte Rand heruntergezhlt bis der Wert des linken Randelements kleiner ist als der Pivot. Dies ist bereits beim achten Element der Fall. Da sich der linke und der rechte Rand noch nicht gekreuzt haben, werden jetzt die Elemente vertauscht. Es ergibt sich jetzt folgende Zahlenfolge: 2, 6, 3, 7, 8, 3, 9, 9. Nun wird die Sortierung fortgesetzt. Der linke Rand wird wieder hochgezhlt bis der Wert grer ist als 7. Dies ist beim fnften Element der Fall. Jetzt wird wieder der rechte Rand heruntergezhlt bis der Wert des Elements kleiner ist als der Pivot. Dies geschieht beim sechsten Element. Da sich die beiden Randelemente noch immer nicht gekreuzt haben, werden die Elemente vertauscht. Es ergibt sich folgende Zahlenfolge: 2, 6, 3, 7, 3, 8, 9, 9. Jetzt wird wieder der linke Rand hochgezhlt. Beim sechsten Wert angekommen bricht die Sortierung ab, da der rechte und der linke Rand jetzt auf dasselbe Element zeigen. Das Unterprogramm gibt jetzt den linken Rand zurck, also die Stelle an der das Element steht. In diesem Fall 6. Nun ruft sich der Sortieralgorithmus selbst auf

4 Vorstellung einiger Sortieralgorithmen

11

und bergibt sich den Rckgabe wird als Parameter fr den linken Rand, der Wert des Parameters fr den rechten Rand bleibt derselbe. Nun wird das Intervall zwischen dem sechsten und achten Element sortiert. Hierzu wird wieder das Element in der Mitte als Pivot gesetzt. Der linke Rand wird wieder hochgezhlt und die Sortierung bricht wieder ab, da kein Element groer ist als der Pivot und der linke und der rechte Rand wieder auf dasselbe Element zeigen. Wieder gibt das Unterprogramm die Stelle des linken Randes zurck. Dieses Mal ist es die achte Stelle also 8. Da der Rckgabewert nicht kleiner als der rechte Rand ist, wird jetzt der linke Rand wieder auf das erste Element gesetzt und der rechte bekommt den Rckgabewert -1 zugewiesen. Wieder ruft sich das Programm selbst auf. Dieser Vorgang wiederholt sich nun, aufgrund der Rekursivitt, solange bis die Zahlenreihe sortiert ist. 4.2.2 Vor- und Nachteile des Quicksort Der Quicksort gilt als schnellstes vergleichsbasiertes Sortierverfahren. Daher wird er auch oft zur Sortierung von Daten herangezogen. Allerdings kann ein schlecht gewhlter Pivot die Sortierung extrem verlangsamen (vgl. [6]). Zudem ist er auch nicht so leicht verstndlich wie der Bubblesort. Auerdem braucht der Quicksort im Vergleich zum Bubblesort um einiges mehr Platz im Programm (vgl. [1, S. 1317]). 4.3 Insertionsort 4.3.1 Funktionsweise Der Insertionsort ist im Prinzip ganz einfach erklrt. Dieses Sortierverfahren sortiert, indem es ein Element, beginnend beim zweiten, nimmt und es solange mit den vorherigen vergleicht, bis es grer als das vorherige ist oder an erster Stelle steht. Dort wird es dann eingefgt. Hierbei werden dann alle Elemente nach der Einfgestelle um eine Stelle nachhinten verschoben (vgl. [4]). Hat man beispielsweise folgende Zahlenreihe: 6, 1, 7, 4, 5, 9 und mchte diese mit dem Insertionsort sortieren, so nimmt man sich das zweite Element in der Reihe heraus und vergleicht es mit dem ersten. Da das zweite kleiner ist als das erste Element, werden diese beiden vertauscht. Es ergibt sich nun die Zahlenfolge: 1, 6, 7, 4, 5, 9. Jetzt nimmt man das dritte Element und ver-

12

4 Vorstellung einiger Sortieralgorithmen

gleicht es mit dem zweiten. Da das dritte Element, hier die 7, grer ist als das zweite, bleibt die Zahlenfolge unverndert und man nimmt sich das nchste Element. Das vierte Element ist kleiner als das dritte und kleiner als das zweite Element, aber grer als das erste, daher kommt es an die zweite Stelle. Es ergibt sich daraus folgende Zahlenfolge:1, 4, 6, 7, 5, 9. Jetzt nimmt man sich das fnfte Element. Es ist kleiner als das dritte und das vierte Element, aber grer als das zweite, deshalb wird es an dritter Stelle eingefgt. Nun zum sechsten und in dieser Zahlenfolge letztem Element. Es ist grer als das vorherige Element, daher bleibt die Zahlenfolge unverndert. Damit ist das Sortierverfahren abgeschlossen und es ergibt sich folgendes Ergebnis: 1, 4, 5, 6, 7, 9. 4.3.2 Vor- und Nachteile des Insertionsort Der Insertionsort ist ein einfacher Sortieralgorithmus, wie auch der Bubblesort. Er ist leicht zu verstehen und zu implementieren und daher fr Anfnger geeignet (vgl. [4]). Ein Nachteil ist auch hier das Laufzeitverhalten, da im schlimmsten Fall, zum Beispiel, wenn die Zahlenfolge absteigend sortiert ist und nun aufsteigend sortiert werden soll, mssen fr jedes Element Vertauschungen durchgefhrt werden (vgl. [8]).

5 Quellcode-Beispiel

13

5 Quellcode-Beispiel

Es wird davon ausgegangen, dass die Zahlenfolge bereits besteht und die Lnge der Zahlenfolge auch bekannt ist.
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) void insertionsort(int zahlenfolge[], int laenge){ int hilf=0; int i=1; while(i<laenge) { hilf=zahlenfolge[i]; int stelle=i; while(stelle>0 && zahlenfolge[stelle-1]>hilf) { zahlenfolge[stelle]=zahlenfolge[stelle-1]; stelle--; } zahlenfolge[stelle]=hilf; i++; } }

In Zeile eins wird die Funktion insertionsort aufgerufen und das Array mit der Zahlenfolge, sowie deren Lnge eingelesen. In Zeile zwei wird die Hilfsvariable hilf deklariert und ihr wird der Wert 0 zugewiesen. Dasselbe gilt fr die Zhlvariable i in Zeile drei. In der vierten Zeile beginnt die Zhlschleife, die die Stelle des zu sortierenden Elements hochzhlt, solang i kleiner als die Lnge des Arrays ist. Die folgende Zeile beschreibt einfach, dass der Wert des Arrays an i-ter Stelle in die Hilfsvariable gespeichert wird. In Zeile sechs wird die aktuelle Stelle i, der Variable stelle zugewiesen. Die nchste Zeile beinhaltet wieder die ffnung einer Schleife. Die Schleife zhlt die Variable stelle herunter, solange die Variable nicht null ist und der Wert des Elements an der Stelle vor dem aktuellen Element grer ist als der Wert der Hilfsvariable hilf. In der Schleife wird der Wert des Elements an der Stelle stelle-1 in das Element an der aktuellen Stelle gespeichert. Die folgende Zeile reduziert den Wert der Variable stelle um 1. Zeile 10 schliet die Zhlschleife und Zeile 11 wird ausgefhrt, sobald aus der Schleife gesprungen wird. Hier wird dann das zu sortierende Element an die neue Stelle eingefgt. Die folgende Schleife erhht den Wert der Variable i um 1. Die vorletzte Zeile schliet die uere Zhlschleife und die letzte Zeile schliet die Funktion. Damit ist das Programm beendet.

6 Ausblick

15

6 Ausblick

Es stellt sich nun natrlich die Frage, ob Sortierverfahren berhaupt Zukunftsperspektive besitzen. Im Prinzip ist diese recht einfach erklrt. Wie bereits in der Einleitung beschrieben, ist der Mensch ein Gewohnheitstier. Die meisten Menschen haben einen geregelten Tagesablauf und dies wird sich in nchster Zukunft auch nicht ndern. Der Mensch liebt die Ordnung, auch wenn jeder seine eigene Vorstellung von Ordnung hat und meidet nach Mglichkeit das Chaos, wrde allerdings die Ordnung verloren gehen, beherrschte Chaos unser Leben. Dies mchte nun mal ein Groteil der Menschheit nicht erleben und daher sind und bleiben Sortierverfahren jeder Art ein wichtiger Bestandteil unseres Lebens. Nun knnte man sich fragen, ob es berhaupt einen Ersatz fr Sortierverfahren geben knnte. Sortierverfahren sind wie bereits erwhnt Bestandteil unseres Lebens und daher auch schlecht zu ersetzen, denn wie ersetzt man etwas das berall ist und mit dem man jeden Tag mehrmals in Berhrung kommt? Es ist unmglich, da, wenn man sie ersetzt, man sie nur durch eine andere Art Sortierung ersetzen wrde und damit hat man das Sortierverfahren nicht ersetzt, sondern nur ausgetauscht. Sortierverfahren sind also auch in der Zukunft weiterhin vorhanden. Doch aufgrund der Tatsache, dass immer grere Datenmengen sortiert werden mssen, werden auch die Algorithmen immer komplizierter. Man kann also davon ausgehen, dass auch in der Zukunft weiterhin neue Algorithmen entwickelt werden.

7 Fazit

17

7 Fazit

Das Leben der Menschen wird ungemein vereinfacht durch die vielen verschiedenen Arten von Sortierverfahren. Denn sie verschaffen den Menschen bersichtlichkeit und sind ihnen daher eine groe Hilfe im Alltag. Nimmt man das Beispiel der Firma aus Kapitel 2. Htte der Mitarbeiter keine sortierte Liste ausgegeben bekommen, sondern alles wild durcheinander, so wre er mit Sicherheit zum einen lnger an seiner Arbeit gesessen und zum anderen wren ihm immer wieder Fehler unterlaufen. Beispielsweise kommt eine Person in seiner weiter bearbeiteten Liste mehrfach vor, obwohl sie nur einmal eingekauft hat oder etwas in dieser Art. Auerdem wird seine weiter bearbeitete Liste wahrscheinlich ebenso unbersichtlich sein wie die Liste die er ausgegeben bekommen hat. Es gibt natrlich auch auerhalb des Berufs gute Grnde fr ein Sortierverfahren. Gbe es zum Beispiel keine topologische Sortierung, wrde manch einer seine Unterhose ber der Hose tragen. Um diese Personen vor Hohn und Spott zu bewahren gibt es Sortierverfahren, die allein aus diesem Grund schon nicht zu ersetzen sind. Schlussendlich bleibt einfach nur zu sagen, die Menschheit kann froh sein, dass sie einst kluge Kpfe hervorgebracht hat, die die Sortierverfahren auch in Algorithmen fassen konnten, damit diese in unserem Alltag angewendet werden knnen.

Literaturverzeichnis

19

Literaturverzeichnis
[1] You Yang; Ping Yu; Yan Gan (2011): Experimental study on the five sort algorithms. In: 2011 Second International Conference on Mechanic Automation and Control Engineering: IEEE, S. 13141317.

[2] Astrachan, Owen (2003): Bubble sort. In: SIGCSE Bull. 35 (1), S. 1.

[3] Martin, W. A. (1971): Sorting. In: ACM Comput. Surv. 3 (4), S. 147 174.

[4] Jacek, Jonas: Insertionsort in Java; (http://www.javaprogrammieren.com/insertionsort-java.php) 17.01.2013

[5] Autor unbekannt: Insertionsort; (http://www.algolist.net/Algorithms/Sorting/Insertion_sort) 17.01.2013

[6] Autor unbekannt (2004): Quicksort; (http://www.linuxrelated.de/index.html?/coding/sort/sort_quick.htm) 17.01.2013

[7] Grtig C. (2002): Sortierverfahren; Visual-Basic-Kurs (http://www.vb-kurs.cagaertig.de/dokumente/sortierverfahren.pdf) 20.12.2012

[8] Lang, H.W. (1998): Insertionsort; FH Flensburg; (http://www.iti.fhflensburg.de/lang/algorithmen/sortieren/insert/insertion.htm) 17.01.2013

[9] Autor Unbekannt: Quicksort; Universitt Chemnitz; (www-user.tuchemnitz.de/~benner/Lehre/top10/ready/quicksort.pdf) 17.01.2013

20

Literaturverzeichnis

[10] Autor unbekannt: Quicksort; (http://www.algolist.net/Algorithms/Sorting/Quicksort) 17.01.2013