Эта статья разделяет с вами обычно используемый алгоритм сортировки для реализации JS, конкретный контент заключается в следующем
1. Сортировка пузырьков
varue 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; flag = false; }} if (flag) {break; }}};2. Выберите сортировку
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); }}}; функция Swap (arr, index1, index2) {var temp = arr [index1]; arr [index1] = arr [index2]; arr [index2] = temp;};3. Вставьте сортировку
var insertsort = function (arr) {var len = arr.length, key; for (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. Hill Sort
var shellsort = function (arr) {var arps = [5, 3, 1]; for (var g = 0; g <apis.length; ++ g) {for (var i = Quars [g]; i <arr.length; ++ i) {var temp = arr [i]; for (var j = i; j> = QUAPS [g] && arr [j - gaps [g]]> temp; j - = QUAPS [g]) {arr [j] = arr [j - gaps [g]]; } arr [j] = temp; }}};5. Заказ
функция Mergesort (arr) {if (arr.length <2) {return; } var step = 1; var слева, справа; while (step <arr.length) {left = 0; справа = шаг; while (справа + step <= arr.length) {слияния (arr, левый, слева + step, справа, справа + step); влево = справа + шаг; справа = левый + шаг; } if (right <arr.length) {слияния (arr, слева, слева + шаг, справа, arr.length); } step *= 2; }} слияние функции (arr, startleft, stopleft, startright, stopright) {var rightarr = new Array (Stopright - Startright + 1); var Leatharr = новый массив (Stopleft - startleft + 1); k = Startright; for (var i = 0; i <(rightarr.length - 1); ++ i) {rightarr [i] = arr [k]; ++ k; } k = startleft; for (var i = 0; i <(leftarr.length - 1); ++ i) {Leatharr [i] = arr [k]; ++ k; } rightArr [rightarr.length - 1] = Infinity; // Сентинельное значение Leatharr [Leatharr.length - 1] = Infinity; // Сентинельное значение var m = 0; var n = 0; for (var k = startleft; k <stopright; ++ k) {if (leatharr [m] <= rightArr [n]) {arr [k] = leatharr [m]; M ++; } else {arr [k] = rightarr [n]; n ++; }}}6. Быстрый сортировка
var QuickSort = function (arr, левый, справа) {var i, j, t, pivot; if (left> = right) {return; } pivot = arr [Left]; я = остался; J = верно; 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 [слева] = arr [j]; arr [j] = pivot; Quicksort (arr, слева, я - 1); QuickSort (arr, i + 1, справа);}Резюме: Сравнение эффективности алгоритма:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.