Cet article partage avec vous l'algorithme de tri couramment utilisé pour l'implémentation JS, le contenu spécifique est le suivant
1. Tri à bulles
var bubblesort = fonction (arr) {var flag = true; var len = arr.length; pour (var i = 0; i <len - 1; i ++) {flag = true; pour (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 = false; }} if (flag) {break; }}};2. Sélectionnez le tri
var selectSort = function (arr) {var min; pour (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; }} if (i! = min) {swap (arr, i, min); }}}; fonction swap (arr, index1, index2) {var temp = arr [index1]; arr [index1] = arr [index2]; arr [index2] = temp;};3. INSÉRER SORT
var insertsort = function (arr) {var len = arr.length, key; pour (var i = 1; i <len; i ++) {var j = i; key = arr [j]; while (--j> -1) {if (arr [j]> key) {arr [j + 1] = arr [j]; } else {break; }} arr [j + 1] = key; }};4. Toi de colline
var shellSort = function (arr) {var gaps = [5, 3, 1]; pour (var g = 0; g <gaps.length; ++ g) {for (var i = gaps [g]; i <arr.length; ++ i) {var temp = arr [i]; pour (var j = i; j> = gaps [g] && arr [j - gaps [g]]> temp; j - = gaps [g]) {arr [j] = arr [j - gaps [g]]; } arr [j] = temp; }}};5. Commande
fonction mergesort (arr) {if (arr.length <2) {return; } var Step = 1; var gauche, à droite; while (Step <arr.length) {Left = 0; droit = étape; while (droite + étape <= arr.length) {MergeArrays (arr, gauche, gauche + étape, droite, droite + étape); gauche = droite + étape; droite = gauche + étape; } if (droite <arr.length) {MergeArrays (arr, gauche, gauche + étape, droite, arr.length); } étape * = 2; }} fonction MergeArrays (Arr, Starkingft, Stopleft, StarTright, StopRight) {var rightarr = new Array (StopRight - StarTright + 1); var Leftarr = nouveau tableau (Stopleft - Starkerft + 1); K = StarTright; for (var i = 0; i <(rightarr.length - 1); ++ i) {rightarr [i] = arr [k]; ++ k; } k = sursaut; for (var i = 0; i <(Leftarr.length - 1); ++ i) {Leftarr [i] = arr [k]; ++ k; } rightarr [rightarr.length - 1] = Infinity; // Sentinel Valeur Leftarr [Leftarr.length - 1] = Infinity; // Sentinel Value var m = 0; var n = 0; pour (var k = sursarleft; k <stopRight; ++ k) {if (Leftarr [m] <= droiter [n]) {arr [k] = Leftarr [m]; m ++; } else {arr [k] = rightarr [n]; n ++; }}}6. Sort rapide
var Quicksort = fonction (arr, gauche, droite) {var i, j, t, pivot; if (gauche> = droit) {return; } pivot = arr [gauche]; i = gauche; j = droit; 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 [Left] = arr [J]; arr [j] = pivot; Quicksort (arr, à gauche, i - 1); Quicksort (arr, i + 1, à droite);}Résumé: Comparaison de l'efficacité de l'algorithme:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.