Kotlin-Sortieralgorithmus für die Android-Entwicklung

Algorithmen sind ein integraler Bestandteil der Programmierung und gehen häufig mit Datenstrukturen einher. Zusammen bilden sie die sogenannten Datenstrukturen und Algorithmen (DSA), die den Schlüssel zur Effizienzsteigerung Ihres Codes darstellen. In der Programmierung beziehen sich Algorithmen im Allgemeinen auf die Muster, denen Sie bei der Lösung eines bestimmten Problems folgen, während Datenstrukturen die Art und Weise sind, wie Sie Daten strukturieren.

Eine beliebte Art von Algorithmus ist ein Sortieralgorithmus. Wir können ein Array oder eine Menge von Elementen mithilfe eines Sortieralgorithmus mithilfe eines Vergleichsoperators neu anordnen, der die neue Reihenfolge der Elemente anhand der jeweiligen Datenstruktur bestimmt.

In diesem Artikel werden wir einige der beliebtesten Sortieralgorithmen in Kotlin untersuchen, darunter Bubble Sort, Merge Sort, Radix Sort und Heap Sort. Anschließend befassen wir uns mit dem Blasensortierungsalgorithmus und betrachten einige seiner Vorteile.

Um diesem Tutorial folgen zu können, benötigen Sie einen flackernden Computerbildschirm. Was tun? Um 11 Lösungen zu teilen, müssen Sie über Grundkenntnisse von Kotlin verfügen und Android Studio oder IntelliJ IDE installieren. Lasst uns beginnen!

Übersicht über Sortieralgorithmen

Ein In-Place-Sortieralgorithmus sortiert eine Liste, indem er die Anordnung der Elemente in der Liste ändert und dabei konstanten Platz zum Generieren der Ausgabe verwendet. Ein gutes Beispiel hierfür ist die Einfügungs- und Auswahlsortierung, die keinen zusätzlichen Platz zum Sortieren einer Liste erfordert.

Sortieralgorithmen können auf viele Arten klassifiziert werden. Was führt beispielsweise dazu, dass der NSIS-Fehler auf dem stabilen Computer auftritt? 8 Möglichkeiten zur Behebung von NSIS-Fehlern sind je nach Szenario der verwendeten Daten entweder instabil oder intern oder extern.

Interner Sortieralgorithmus und externer Sortieralgorithmus

Die interne Sortierung erfolgt, wenn alle Daten im internen oder Hauptspeicher abgelegt werden. Einige Beispiele sind Heap-, Blasen-, Auswahl-, Schnell- und Einfügungssortierung. Beachten Sie, dass bei der internen Sortierung die Anzahl der Eingaben, die untergebracht werden können, von der Größe des Speichers abhängt.

Wie lösche ich League of Legends LOL vollständig, wenn nicht alle Daten, die sortiert werden müssen, auf einmal erledigt werden können ? Diese 5 Tipps zeigen Ihnen, dass beim Ablegen eines sauberen Entladevorgangs in den Speicher eine externe Sortierung erfolgt, was ihn ideal für große Datenmengen macht. Für die externe Sortierung können Sie externe Speichergeräte wie Festplatten, Flash-Laufwerke und CDs verwenden. Einige Beispiele umfassen Merge und alle seine Varianten, Markup und externe Basissortierung.

Stabile und instabile Sortieralgorithmen

Eine stabile Sortierung liegt vor, wenn dieselben zwei Datenpunkte in derselben Reihenfolge erscheinen, auch nachdem die Daten sortiert wurden. Einige Beispiele umfassen Zusammenführen, Einfügen und Blasensortieren. Was soll ich tun , wenn das Laptop-Touchpad ausfällt? Zusammenfassung des Lösungsgrafik-Tutorials Stabile Sortierung ist das Gegenteil von stabiler Sortierung. Dies geschieht, wenn dieselben zwei Datenpunkte nach dem Sortieren der Daten in einer anderen Reihenfolge erscheinen, was zu einer Positionsverschiebung führt. Einige Beispiele sind Heaps und Quicksort.

Blasensortierung

Die Blasensortierung ist einer der einfachsten Sortieralgorithmen und wird zum Vergleich benachbarter Werte verwendet. Um diese Reihenfolge zu erreichen, werden diese benachbarten Werte bei Bedarf ausgetauscht. Diese Sortierung erfordert das Anlegen größerer Werte an die Spitze, also das Sprudeln. Aufgrund der hohen zeitlichen Komplexität ist es jedoch nicht für große Datensätze geeignet.

Zusammenführen, sortieren

Der Merge-Sort-Algorithmus folgt dem Divide-and-Conquer-Paradigma. Dazu müssen die beiden Arrays in gleiche Hälften aufgeteilt und dann zusammensortiert werden. Diese Kombination führt zu einer Zusammenführung, die wiederum mit einem anderen Array kombiniert wird. Wie kann das Problem des automatischen Absturzes des Edge-Browsers im Windows 10-System gelöst werden, wenn das Array leer ist oder nur noch ein Element übrig ist und keine anderen Elemente kombiniert werden können ? Was soll ich tun, wenn der Edge-Browser beim Start abstürzt? Dieser Vorgang wird nicht beendet. Bei einer Zusammenführungsoperation werden in der Regel zwei kleinere Arrays zu einem größeren Array zusammengefügt.

Basissortierung

Der Basissortieralgorithmus verwendet eine bitweise Sortierung, von der niedrigstwertigen Ziffer zur höchstwertigen Ziffer. Dabei handelt es sich um einen vergleichsfreien Algorithmus, der dies durch die Erstellung von Elementen basierend auf ihrer Kardinalität und deren Verteilung in Buckets erreicht. Daher auch als Bucket- oder numerische Sortierung bekannt.

Heap-Sortierung

Heapsort ist eine vergleichsbasierte Sortiertechnik, die auf einer binären Heap-Datenstruktur basiert. Es handelt sich sowohl um einen In-Place-Algorithmus als auch um einen instabilen, der jedoch stabil gemacht werden kann. Es ist leicht zu verstehen, da es keine fortgeschrittenen Informatikkonzepte wie Rekursion und minimale Speichernutzung gibt. Es wird hauptsächlich in Hybridalgorithmen wie .IntroSort verwendet

schnelle Sorte

Der Quicksort-Algorithmus ähnelt der Merge-Sortierung darin, dass beide das Konzept des Teilens und Eroberns beinhalten. Allerdings ist der Quicksort-Algorithmus auch ein In-Place-Algorithmus. Dabei wird ein Pivotelement aus dem Array ausgewählt und die anderen Elemente in zwei Unterarrays aufgeteilt, je nachdem, ob sie größer oder kleiner als das Pivotelement sind. Es wird auch als Partitionsaustauschsortierung bezeichnet.

Blasensortierungsalgorithmus: Vorteile in der Android-Entwicklung

Der Blasensortierungsalgorithmus ist einfach zu schreiben und leicht zu verstehen und erfordert nur wenige Codezeilen. Die Einfachheit dieser Implementierung hilft Android-Entwicklern, die Fehlerquote beim Anwendungsdesign zu reduzieren und die Anwendungseffizienz zu steigern. Es kann winzige Fehler in Arrays erkennen, die mithilfe linearer Komplexität behoben werden können. 2n

Implementierung des Bubble-Sort-Algorithmus

Die Implementierung des Bubble-Sort-Algorithmus umfasst im Wesentlichen den Vergleich zweier Werte und deren Austausch bei Bedarf, wie im folgenden Codeausschnitt dargestellt:

Klasse BubbleSortingAlgorithm {
    static void bubbleSorting(int arrayNumber[])
    {
        int n = arrayNumber.length;
        int temp=0;
        for (int i = 0; i < n; i++){
            for (int j = 1; j < (n - i); j++){
                if (arrayNumber [j - 1] > arrayNumber [j]) {
                    // Das Element wird mit der folgenden Austauschmethode ausgetauscht
                    temp = arrayNumber[j-1];
                    arrayNumber[j-1] = arrayNumber[j];
                    arrayNumber[j] = temp;
      }
    }
 }
}        
    // Dies ist die Hauptmethode zum Testen der Implementierungslogik von bubbleSorting
    public static void main(String args[])
    {
        int arrayVariable[] = {10, 50, 110, 90, 1, 9, 200, 4, 2000};
        System.out.println("Dies sind die Array-Werte vor der Sortierung")
        for(int i=0; i < arrayVariable.length; i++){
          System.out.print(arrayVariable[i] + " ")
    }
       System.out.print();    
        // Sortieren der Elemente mit dem Bubble-Sorting-Algorithmus
        bubbleSorting(arrayVariable);
        System.out.println("Dies ist der Wert des Arrays nach der Sortierung");
        for(int i=0; i < arrayVariable.length; i++){
        System.out.print(arrayVariable[i] + " ")
       }
    }
}

Die Ausgabe des obigen Codes ist wie folgt:

Dies sind die Array-Werte vor der Sortierung
10, 50, 110, 90, 1, 9, 200, 4, 2000
Dies ist der Wert des Arrays nach der Sortierung
1, 4, 9, 10, 50, 90, 110, 200, 2000

Blasensortierungsalgorithmus: Die Herausforderung

Die größte Herausforderung bei der Verwendung des Blasensortierungsalgorithmus ist die zeitliche Komplexität. Bei großen Datensätzen ist dies kein effizienter Ansatz, da die Sortierung länger dauert, was zu einer Laufzeit von führt. Daher dauert es länger, bis die Blasensortierung alle erforderlichen Austauschvorgänge durchführt. Es gibt jedoch eine verbesserte Version der Blasensortierung namens modifizierte Blasensortierung, die effizienter ist und für solche Anwendungsfälle verwendet werden kann. O(n2)

Vergleich der Algorithmen für Blasensortierung, Einfügung und Auswahlsortierung

Die folgende Abbildung vergleicht die Sortieralgorithmen „Blase“, „Einfügung“ und „Auswahl“ hinsichtlich der zeitlichen und räumlichen Komplexität:

Im schlimmsten Fall Raumkomplexität Durchschnittliche Komplexität des Fallraums Zeitkomplexität im besten Fall
Blasensortierungsalgorithmus O(n^2) Summe O(1) O(n^2) An)
Auswahlsortieralgorithmus O(n^2) Summe O(1) O(n^2) O(n^2)
Sortieralgorithmus für Einfügungen O(n^2) Summe O(1) O(n^2) An)

Aus dem obigen Vergleich sehen wir, dass es einen Zusammenhang zwischen Blasen- und Einfügungssortierungsalgorithmen zu geben scheint. Der Einfügungssortierungsalgorithmus erfordert jedoch weniger Swaps als die Blasensortierung, um seinen Vorgang abzuschließen.

Blasensortierungsalgorithmus: Leistung

Die Leistung des Blasensortierungsalgorithmus zeigt deutlich, dass er nur für kleine Datensätze geeignet ist; im schlimmsten Fall beträgt die Zeitkomplexität und die räumliche Komplexität. O(n2)``O(n)

Die Anzahl der Swaps, die bei einer Blasensortierung auftreten, ist gleich der Anzahl der Protokolle im angegebenen Array, die umgekehrt werden sollen. Daher gilt: Je mehr Swaps, desto länger dauert der Blasensortierungsalgorithmus.

abschließend

In diesem Tutorial haben wir einige Sortieralgorithmen in Kotlin aus einer ganzheitlichen Perspektive betrachtet. Wir konzentrieren uns auf den Bubble-Sort-Algorithmus, seine Vorteile, Implementierung, Herausforderungen und Leistung. Der Blasenalgorithmus ist der einfachste und einfachste Weg, die Art des Sortieralgorithmus zu verstehen. Wir haben jedoch festgestellt, dass er nicht für große und komplexe Datensätze geeignet ist.

Ich hoffe, Ihnen hat dieser Artikel gefallen. Hinterlassen Sie unbedingt einen Kommentar, wenn Sie diesen Algorithmus bei der Entwicklung einer Android-Anwendung verwenden. Viel Spaß beim Codieren!

Supongo que te gusta

Origin blog.csdn.net/weixin_47967031/article/details/132620777
Recomendado
Clasificación