Heim  >  Artikel  >  Web-Frontend  >  Verstehen Sie die JavaScript-Blasensortierung und Auswahlsortierung in einer Minute vollständig

Verstehen Sie die JavaScript-Blasensortierung und Auswahlsortierung in einer Minute vollständig

WBOY
WBOYnach vorne
2021-12-16 18:49:332386Durchsuche

In diesem Artikel erfahren Sie mehr über die Blasensortierung und die Auswahlsortierung in JavaScript. Die Blasensortierung erfordert bei jedem Vergleich einen sofortigen Austausch, während die Auswahlsortierung darin besteht, die kleinste unsortierte Zahl zu finden und herauszufinden, wo sie sich befinden sollte. Bei der Auswahlsortierung gibt es weniger Austauschvorgänge, was die Recheneffizienz bis zu einem gewissen Grad verbessert. Ich hoffe, es hilft allen. ?? Richtig, zum ganz rechts. Beachten Sie, dass die Kerne benachbart sind.

Verstehen Sie die JavaScript-Blasensortierung und Auswahlsortierung in einer Minute vollständig

Idee:

Vergleichen Sie nacheinander zwei benachbarte Zahlen, setzen Sie die kleinere Zahl vorne und die größere Zahl hinten. Nach der ersten Runde wird die größte Zahl im Feld an letzter Stelle stehen.

Zweite Runde: Dann vergleicht das Array die benachbarten Zahlen von der ersten Zahl mit den verbleibenden Zahlen der Reihe nach und ordnet die größte Zahl am Ende ein.

Wiederholen Sie die Schritte, bis die Sortierung abgeschlossen ist. Hinweis: Am Ende der vorletzten Runde bleibt in der letzten Runde eine Zahl übrig, die die kleinste sein muss, sodass kein Sortieren erforderlich ist. Das heißt, verwenden Sie einfach die Länge des sortierten Arrays minus eins (arr.length-1) Runde

Algorithmus-Visualisierung:
  • Der Code lautet wie folgt:
 <script>
        function ismaopao(arr) {
            //控制比较轮数
            for (var i = 0; i < arr.length - 1; i++) {
                //冒泡排序,两两交换,从头开始做比较(大数下沉)
                for (var j = 0; j < arr.length - 1 - i; j++) {
                    //arr.length-1-i,因为前面的判断已经找到最大的值,就不需要与找到的大数做比较了
                    if (arr[j] > arr[j + 1]) {
                        var a;
                        a = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = a;
                    }
                }
            }
            return arr;
        }
        console.log(ismaopao([6, 3, 4, 5, 2, 1]))
    </script>

Die Ergebnisse sind wie folgt:

Sortierung auswählen

Idee:

Angenommen, die Zahl an der ersten Position des Arrays ist die kleinste, und vergleichen Sie sie dann mit jeder nachfolgenden Zahl. Solange eine kleinere Zahl gefunden wird, Tauschen Sie den Index aus, der dem Wert entspricht. Beachten Sie, dass es sich um einen Index handelt. Nach der ersten Suchrunde können Sie die Position des Mindestwerts sperren (d. h. den Index finden) und dann die Werte austauschen.

Verstehen Sie die JavaScript-Blasensortierung und Auswahlsortierung in einer Minute vollständigIn der zweiten Runde wird davon ausgegangen, dass die zweite Position die kleinste Zahl hat. Zu diesem Zeitpunkt wird der erste Wert des Arrays ignoriert (da es bereits der kleinste in der ersten Runde gefundene Wert ist) und dann der Index wird mit dem nächstkleineren Wert ausgetauscht, und der Wert wird nach dem Sperren ausgetauscht.

Wiederholen Sie die Schritte, bis die Sortierung abgeschlossen ist.

Hinweis: Bis zum Ende der vorletzten Runde bleibt in der letzten Runde eine Zahl übrig, die größer als die vorherigen Zahlen sein muss, sodass kein Sortieren erforderlich ist. Das heißt, verwenden Sie einfach die Länge des sortierten Arrays minus einer Runde (arr.length-1)

Algorithmus-Visualisierung: Verstehen Sie die JavaScript-Blasensortierung und Auswahlsortierung in einer Minute vollständig

Der Code lautet wie folgt: Es gibt keine Kapselung, Sie können ihn selbst kapseln

<script>
        //选择排序,比冒泡排序次数少
        var arr = [5, 3, 4, 2, 1]
        var min = 0; //定义一个Min为数组的下标
        for (var i = 0; i < arr.length - 1; i++) {
            min = i;
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[min] > arr[j]) {
                    min = j; //交换下标,就是交换位置
                }
            }
            var a = 0;
            // 现在min的值就是对应着数组最小值的下标,
            // 然后再用下标为i对应数组中的值来交换,i随着每一轮的变化而变化
            a = arr[min];
            arr[min] = arr[i];
            arr[i] = a;
        }
        console.log(arr);
    </script>
    Das Ergebnis ist wie folgt:
Empfohlene verwandte Video-Tutorials:

jQuery-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerstehen Sie die JavaScript-Blasensortierung und Auswahlsortierung in einer Minute vollständig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen