Heim Backend-Entwicklung PHP-Tutorial Einige häufig verwendete Sortiermethoden für JS-Arrays

Einige häufig verwendete Sortiermethoden für JS-Arrays

Mar 15, 2018 pm 03:41 PM
javascript 排序

In diesem Artikel werden hauptsächlich einige häufig verwendete Sortiermethoden für JS-Arrays vorgestellt, darunter Blasensortierung, Schnellsortierung, Einfügungssortierung usw. Ich hoffe, er kann Ihnen helfen.

1. Blasensortierung (von hinten nach vorne)

var array = [1,4,-8,-3,6,12,9,8];function sort(arr){    for(var j=0;j<arr.length-1;j++){    //两两比较,如果前一个比后一个大,则交换位置。
       for(var i=0;i<arr.length-1-j;i++){            if(arr[i]>arr[i+1]){                var temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        } 
    }
}
sort(array);
document.write(array);
Nach dem Login kopieren

(1) Vergleichen Sie benachbarte Elemente. Wenn das erste größer als das zweite ist, tauschen Sie ihre Positionen.

(2) Machen Sie die gleiche Arbeit für jedes Paar benachbarter Elemente, vom ersten Paar am Anfang bis zum letzten Paar am Ende. Zu diesem Zeitpunkt sollte das letzte Element die größte Zahl sein.

(3) Wiederholen Sie die obigen Schritte für alle Elemente außer dem letzten.

(4) Wiederholen Sie die obigen Schritte jedes Mal für immer weniger Elemente, bis kein Zahlenpaar zum Vergleichen mehr vorhanden ist.

2. Schnelle Sortierung: rekursives Denken, schnelle Sortierung auf beiden Seiten, Verbesserung der Blasensortierung

var array = [1,4,-8,-3,6,12,9,8];
function quickSort(arr){//如果数组长度小于等于1,则返回数组本身
   if(arr.length<=1){        return arr;
   }    //定义中间值的索引
   var index = Math.floor(arr.length/2);    //取到中间值
   var temp = arr.splice(index,1);    //定义左右部分数组
   var left = [];    var right = [];    for(var i=0;i<arr.length;i++){    //如果元素比中间值小,那么放在左边,否则放右边
       if(arr[i]<temp){            left.push(arr[i]);
       }else{            right.push(arr[i]);
       }
   }    return quickSort(left).concat(temp,quickSort(right));
}
document.write(quickSort(array));
Nach dem Login kopieren

Math.floor(x )-Methode rundet ab und gibt die nächste ganze Zahl zurück, die kleiner oder gleich x ist.

Die Methode splice(index,num,item) fügt Elemente zum Array hinzu oder entfernt Elemente aus dem Array und gibt das gelöschte Element zurück.

index ist eine Ganzzahl, der Speicherort des bearbeiteten Elements (erforderlich)

num ist eine Ganzzahl, die Anzahl der zu löschenden Elemente , wenn 0, bedeutet, dass nicht gelöscht wird (erforderlich)

Element ist ein neues Element, das dem Array hinzugefügt wird, das mehrere sein kann (optional)

Die push()-Methode fügt ein oder mehrere neue Elemente am Ende des Arrays hinzu und gibt die Länge des neuen Arrays zurück

Die concat()-Methode verbindet zwei oder mehr Arrays ohne Ändern des ursprünglichen Arrays, Zurückgeben eines neuen Arrays

3. Einfügungssortierung

var array = [1,4,-8,-3,6,12,9,8];function insertSort(arr){
//假设第0元素是有序序列,第1元素之后是无序的序列。从第1元素开始依次将无序序列的元素插入到有序序列中
   for(var i=1; i<arr.length;i++){        if(arr[i]<arr[i-1]){            //取出无序序列中需要插入的第i个元素
           var temp = arr[i];            //定义有序中的最后一个位置
           var j = i-1;
           arr[i] = arr[j];            //比较大小,找到插入的位置
           while(j>=0&&temp<arr[j]){
               arr[j+1] = arr[j];
               j--;
           };            //插入
           arr[j+1] = temp;
       }
   }
 }
insertSort(array)
document.write(array);
Nach dem Login kopieren

(1) Beginnend mit dem ersten Element Element kann als sortiert betrachtet werden

(2) Nehmen Sie das nächste Element heraus und scannen Sie

(3) Wenn das Element (sortiert) größer als das neue Element ist, verschieben Sie das Element an die nächste Position

(4) Wiederholen Sie Schritt 3, bis Sie die Position gefunden haben, an der das sortierte Element kleiner oder gleich dem neuen Element ist

(5) Fügen Sie das neue Element an der nächsten Position ein

(6) Wiederholen Sie Schritt 2

4. Auswahlsortierung

var array = [1,4,-8,-3,6,12,9,8];function selectSort(arr){    for(var i=0;i<arr.length;i++){        //设置当前范围最小值和索引
       var min = arr[i];        var minIndex = i;        //在该范围选出最小值
       for(var j=i+1;j<arr.length;j++){            if(min>arr[j]){
               min = arr[j];
               minIndex = j;
           }
       }        //将最小值插入,并将原来位置的最小值删除
       arr.splice(i,0,min);
       arr.splice(minIndex+1,1);
   }
}
selectSort(array);
document.write(array);
Nach dem Login kopieren

(1) Finden Sie das kleinste (große) Element in der unsortierten Reihenfolge

(2 ) Und speichern Sie es an der Startposition der sortierten Sequenz

(3) Suchen Sie dann weiterhin das kleinste (große) Element aus den verbleibenden unsortierten Elementen

(4) und fügen Sie es dann am Ende der sortierten Sequenz ein.

(5) und so weiter

Das obige ist der detaillierte Inhalt vonEinige häufig verwendete Sortiermethoden für JS-Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hot-Tools-Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So sortieren Sie Fotos nach Aufnahmedatum in Windows 11/10 So sortieren Sie Fotos nach Aufnahmedatum in Windows 11/10 Feb 19, 2024 pm 08:45 PM

So sortieren Sie Fotos nach Aufnahmedatum in Windows 11/10

So sortieren Sie E-Mails in Outlook nach Absender, Betreff, Datum, Kategorie und Größe So sortieren Sie E-Mails in Outlook nach Absender, Betreff, Datum, Kategorie und Größe Feb 19, 2024 am 10:48 AM

So sortieren Sie E-Mails in Outlook nach Absender, Betreff, Datum, Kategorie und Größe

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript

So sortieren Sie in Excel So sortieren Sie in Excel Mar 05, 2024 pm 04:12 PM

So sortieren Sie in Excel

So sortieren Sie WPS-Ergebnisse So sortieren Sie WPS-Ergebnisse Mar 20, 2024 am 11:28 AM

So sortieren Sie WPS-Ergebnisse

So sortieren Sie WPS-Tabellen, um die Datenstatistik zu erleichtern So sortieren Sie WPS-Tabellen, um die Datenstatistik zu erleichtern Mar 20, 2024 pm 04:31 PM

So sortieren Sie WPS-Tabellen, um die Datenstatistik zu erleichtern

See all articles