Dieser Artikel teilt mit Ihnen den häufig verwendeten Sortieralgorithmus für die JS -Implementierung. Der spezifische Inhalt lautet wie folgt
1. Blasensortierung
var bubblesort = function (arr) {var flag = true; var len = arr.length; für (var i = 0; i <len - 1; i ++) {flag = true; für (var j = 0; j <len - 1 - i; j ++) {if (arr [j]> arr [j+1]) {var temp = arr [j+1]; arr [j+1] = arr [j]; arr [j] = temp; Flag = Falsch; }} if (flag) {break; }}};2. Wählen Sie Sortier
var selectSort = function (arr) {var min; für (var i = 0; i <arr.length-1; i ++) {min = i; für (var j = i+1; j <arr.length; j ++) {if (arr [min]> arr [j]) {min = j; }} if (i! = min) {swap (arr, i, min); }}}; Funktionswap (arr, index1, index2) {var temp = arr [index1]; arr [index1] = arr [index2]; arr [index2] = temp;};3.. Sortier einfügen
var InsertSort = Funktion (arr) {var len = arr.length, Schlüssel; für (var i = 1; i <len; i ++) {var j = i; Key = arr [j]; while (--j> -1) {if (arr [j]> taste) {arr [j + 1] = arr [j]; } else {break; }} arr [j + 1] = key; }};4. Hill Sort
var Shellsort = Funktion (arr) {var gaps = [5, 3, 1]; für (var g = 0; g <gaps.length; ++ g) {für (var i = gaps [g]; i <arr.length; ++ i) {var temp = arr [i]; für (var j = i; j> = gaps [g] && arr [j - gaps [g]]> temp; j - = gaps [g]) {arr [j] = arr [j - gaps [g]]; } arr [j] = temp; }}};5. Bestellung
Funktion mergesort (arr) {if (arr.length <2) {return; } var Schritt = 1; var links, rechts; while (Schritt <arr.length) {links = 0; rechts = Schritt; while (rechts + Schritt <= arr.length) {mergearrays (arr, links, links + Schritt, rechts, rechts + Schritt); links = rechts + Schritt; rechts = links + Schritt; } if (rechts <arr.length) {mergearrays (arr, links, links + Schritt, rechts, arr.length); } Schritt *= 2; }} Funktion mergearrays (arr, straße var Leftarr = New Array (Stopleft - Startleft + 1); K = Starteright; für (var i = 0; i <(rightarr.length - 1); ++ i) {Rightarr [i] = arr [k]; ++ k; } K = StartLeft; für (var i = 0; i <(linke. ++ k; } rightarr [rightarr.length - 1] = unendlich; // Sentinel Value Leftarr [Leftarr.Length - 1] = Infinity; // Sentinel -Wert var m = 0; var n = 0; für (var k = startleft; k <stopright; ++ k) {if (Leftarr [m] <= rightarr [n]) {arr [k] = Leftarr [m]; M ++; } else {arr [k] = rightarr [n]; n ++; }}}6. Schnelle Sorte
var quicksort = function (arr, links, rechts) {var i, j, t, pivot; if (links> = rechts) {return; } pivot = arr [links]; i = links; J = rechts; while (i! = j) {while (arr [j]> = pivot && i <j) {j-; } while (arr [i] <= pivot && i <j) {i ++; } if (i <j) {t = arr [i]; arr [i] = arr [j]; arr [j] = t; }} arr [links] = arr [j]; arr [j] = pivot; Quicksort (arr, links, i - 1); QuickSort (arr, i + 1, rechts);}Zusammenfassung: Algorithmus -Effizienzvergleich:
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.