Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Grundlagen der Programmierung: Datenstrukturen

Arrays sortieren

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ein Array arbeitet zwar mit geordneten Daten, aber das gilt nur für den Index, nicht unbedingt für die Werte. Daher wundert es nicht, dass es Methoden zum Sortieren von Arrays gibt. Allerdings könnte es durchaus zu Performanceproblemen kommen.

Transkript

Arrays sind bereits geordnete Daten. Sie haben eine natürliche Abfolge. Das heißt, dank des Index von 0 bis 1, 2, 3, 4, 5 ist da eine Ordnung gegeben. Das gilt zwar für den Index, das gilt aber nicht für die Werte, die in diesem Array abgespeichert werden. Egal, ob das Integerwerte sind oder Zeichenfolgen, sie haben von Natur aus keine bestimmte Sortierung oder Abfolge. Damit verwundert's nicht, dass einer der Wünsche, die an das Array herangetragen werden, der Wunsch ist, die Werte innerhalb des Arrays zu sortieren. Und zwar egal, ob numerisch, ob alphabetisch auf- oder absteigend. Je nachdem, was gebraucht wird. Und natürlich mischen wir dann nur die Werte die interne Struktur des Arrays und der Index bleibt weiter bei 1, 2, 3, 4, 5. Ein anderes Verhalten, das in vielen Sprachen zur Verfügung steht, ist die Möglichkeit, Werte auch in einem dieser grundlegenden Arrays zu sortieren. Oft reicht dafür eine einzige Codezeile. OK. Es ist nicht immer eine Methode, die auf dem Array selbst angewendet wird. Manchmal ist es eine Methode eines Dienstprogramms oder einer Dienstfunktion, der Sie den Array als Parameter mitgeben können. Auf jeden Fall ist es normalerweise sehr einfach zu schreiben. Bei sechs Elementen sieht's auch sehr einfach aus. Nichtsdestotrotz sollte Ihre Idee anfangen, nervös zu blinken oder sonstige Warnsignale zu verbreiten, eventuell sollte auch eine Stimme aus dem Off kommen und sagen: Lydia, bist du dir sicher, dass du weißt, was du tust? Denn dieses kleine unschuldige Stückchen Code, dieses Sort, kann zu einem ziemlichen Problem werden. Es sieht so klein und einfach anzuwenden aus. Es ist auch einfach anzuwenden. Das Problem besteht darin, wie viel Arbeit tatsächlich damit verbunden sein wird. Wenn Sie nur mit sechs Elementen arbeiten, ist das wahrscheinlich nicht das Thema. Aber es könnte eine enorme Menge Arbeit auslösen, wenn wir's mit mehr Elementen zu tun bekommen. Das lässt sich von dieser kleinen Zeile Sort hier nicht gut abschätzen. Wir müssen etwas tiefer eintauchen. Wie viel und wie oft soll sortiert werden? Wie viele Daten sollte dieses unschuldige Sortier-Statement wirklich sortieren? Sprechen wir von einem Dutzend, von Hundert, von Tausend oder sogar Zehntausend Informationsstückchen. Und wie oft soll sortiert werden? Rufen Sie den Sortierbefehl nur einmal zu Beginn des Programms auf oder läuft da innerhalb einer Schleife, die dann vielleicht noch hundertmal pro Sekunde abgearbeitet werden soll. Ich glaube, Sie verstehen, worauf ich hinauswill. Wir müssen etwas tiefer eintauchen. Wie viel und wie oft? Wie viele Daten soll dieses unschuldige Sortier-Statement sortieren? Sprechen wir von einem Dutzend, von Hundert, von Tausend oder sogar Zehntausend Informationsstückchen. Und wie oft machen wir das? Rufen wir den Sortierbefehl nur einmal zu Beginn des Programms auf oder innerhalb einer Schleife, in der er hundertmal pro Sekunde aufgerufen wird? Dies ist kein Videotraining, in dem wir die Vor- und Nachteile verschiedener Sortieralgorithmen diskutieren, und definitiv nicht das Videotraining, im dem wir einen schreiben werden. Dies hier ist ein theoretisches Training. Wenn wir sortieren, und das werden wir ganz bestimmt, werden wir damit enden, dass wir die Sortierfunktion verwenden, die bereits in unserer Sprache bereitgestellt wird. Denn dies ist dann typischerweise optimiert, kampferprobt und getestet. Aber es ist wesentlich zu verstehen, welchen Einfluss wir damit nehmen. Hier sind zwei Punkte, die für das Verständnis wichtig sind, wenn wir vom Sortieren einfacher oder voraussichtlich einfacher Arrays sprechen. Punkt 1 ist, dass im Inneren die bereits eingebaute Sortierfunktion in vielen Sprachen darauf achten wird, wie groß das Array ist. Im .NET zum Beispiel wird automatisch zwischen verschiedenen Sortieralgorithmen hin- und hergeschalten. Wie Search & Sort, Quick Sort oder Heap Sort. Je nachdem, wie groß das Array ist. Das ist eine feine Sache. Und Punkt 2: Es gibt zwei vorrangige Stile, wie das Sortieren eines Arrays umgesetzt wird. Ich meine damit, dass die meisten Sprachen versuchen werden, das bestehende Array zu sortieren. Aber ein paar, wenn Sie um Sortieren ersuchen, werden statt dessen eine neue sortierte Kopie des ursprünglichen Arrays erstellen. Es geht nicht darum, dass die eine Variante gut und die andere schlecht wäre. Aber Sie sollten definitiv verstehen, welche Version von Ihrer Programmiersprache angeboten wird. Und wann immer Sie ein Array sortieren, eigentlich, wann immer Sie jegliche Datenstruktur sortieren, sollte der Programmierer in Ihnen zusammenzucken und sehr aufmerksam werden: Sortieren ist immer rechenintensiv. Es kann sein, dass Sie nicht ums Sortieren herumkommen. Aber wir wollen es so selten wie möglich tun. Wir sollten wachsam bleiben, wie viele Datensätze wir haben und wie oft wir sortieren müssen. Möglicherweise werden Sie sich dann für eine andere Datenstruktur entscheiden.

Grundlagen der Programmierung: Datenstrukturen

Erhalten Sieeinen klaren Eindruck von Datenstrukturen und deren Eigenheiten und verstehen, wie Sie diese am besten einsetzen können – ganz unabhängig von den einzelnen Programmiersprachen.

2 Std. 51 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!