Este artículo comparte con usted el algoritmo de clasificación de uso común para la implementación de JS, el contenido específico es el siguiente
1. Clasificación de burbujas
var bubblesort = function (arr) {var flag = true; var len = arr.length; for (var i = 0; i <len - 1; i ++) {flag = true; for (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; bandera = falso; }} if (flag) {break; }}};2. Seleccione clasificar
var selectSort = function (arr) {var 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; }} if (i! = min) {swap (arr, i, min); }}}; function swap (arr, index1, index2) {var temp = arr [index1]; arr [index1] = arr [index2]; arr [index2] = temp;};3. Insertar clasificación
var insertSort = function (arr) {var len = arr.length, key; para (var i = 1; i <len; i ++) {var j = i; clave = arr [j]; while (--j> -1) {if (arr [j]> key) {arr [j + 1] = arr [j]; } else {break; }} arr [j + 1] = key; }};4. Sorteo de la colina
var shellSort = function (arr) {var GAPS = [5, 3, 1]; for (var g = 0; g <gaps.length; ++ g) {for (var i = gaps [g]; i <arr.length; ++ i) {var temp = arr [i]; for (var j = i; j> = GAPS [g] && arr [j - GAPS [g]]> temp; j - = GAPS [g]) {arr [j] = arr [j - espacios [g]]; } arr [j] = temp; }}};5. Orden
función mergesort (arr) {if (arr.length <2) {return; } var paso = 1; var izquierda, derecha; while (paso <arr.length) {izquierda = 0; correcto = paso; while (derecha + paso <= arr.length) {mergerrays (arr, izquierda, izquierda + paso, derecha, derecha + paso); izquierda = derecha + paso; derecho = izquierda + paso; } if (derecha <arr.length) {mergerrays (arr, izquierda, izquierda + paso, derecha, arr.length); } paso *= 2; }} Función Mergerrays (arr, startleft, stopleft, starTright, stopright) {var rEdleArr = new Array (stopRight - StarTright + 1); var Leftarr = New Array (Stopleft - Subsidleft + 1); k = StarTright; for (var i = 0; i <(rightarr.length - 1); ++ i) {rEdleArr [i] = arr [k]; ++ k; } k = sillingft; for (var i = 0; i <(leftarr.length - 1); ++ i) {leftarr [i] = arr [k]; ++ k; } REJERTARR [REALTR.LIGTH - 1] = Infinity; // valor centinela izquierdarr [leftarr.length - 1] = infinity; // valor centinela var m = 0; var n = 0; for (var k = startleft; k <stopight; ++ k) {if (leftarr [m] <= rightarr [n]) {arr [k] = leftarr [m]; m ++; } else {arr [k] = rEdleArr [n]; n ++; }}}6. Clasificación rápida
var Quicksort = function (arr, izquierdo, derecho) {var i, j, t, pivot; if (izquierda> = derecho) {return; } pivot = arr [izquierda]; i = izquierda; j = correcto; 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 [izquierda] = arr [j]; arr [j] = pivot; Quicksort (arr, izquierda, i - 1); Quicksort (arr, i + 1, derecha);}Resumen: Comparación de eficiencia del algoritmo:
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.