Artikel ini berbagi dengan Anda algoritma penyortiran yang umum digunakan untuk implementasi JS, konten spesifiknya adalah sebagai berikut
1. Penyortiran gelembung
var bubblesort = function (arr) {var flag = true; var len = arr.length; untuk (var i = 0; i <len - 1; i ++) {flag = true; untuk (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; bendera = false; }} if (flag) {break; }}};2. Pilih Sort
var selectsort = function (arr) {var min; untuk (var i = 0; i <arr.length-1; i ++) {min = i; untuk (var j = i+1; j <arr.length; j ++) {if (arr [min]> arr [j]) {min = j; }} if (i! = min) {swap (arr, i, min); }}}; fungsi swap (arr, index1, index2) {var temp = arr [index1]; arr [index1] = arr [index2]; arr [index2] = temp;};3. Masukkan Sort
var insertSort = function (arr) {var len = arr.length, key; untuk (var i = 1; i <len; i ++) {var j = i; kunci = arr [j]; while (--j> -1) {if (arr [j]> key) {arr [j + 1] = arr [j]; } else {break; }} arr [j + 1] = key; }};4. Bukit Sort
var shellsort = function (arr) {var celah = [5, 3, 1]; untuk (var g = 0; g <gaps.length; ++ g) {for (var i = gaps [g]; i <arr.length; ++ i) {var temp = arr [i]; untuk (var j = i; j> = celah [g] && arr [j - celah [g]]> temp; j - = celah [g]) {arr [j] = arr [j - celah [g]]; } arr [j] = temp; }}};5. Pemesanan
function mergeSort (arr) {if (arr.length <2) {return; } var step = 1; var kiri, kanan; while (langkah <arr.length) {left = 0; benar = langkah; while (kanan + langkah <= arr.length) {mergearrays (arr, kiri, kiri + langkah, kanan, kanan + langkah); kiri = kanan + langkah; kanan = kiri + langkah; } if (kanan <arr.length) {mergearrays (arr, kiri, kiri + langkah, kanan, arr.length); } Langkah *= 2; }} Fungsi mergearrays (arr, Stampleft, stopleft, startright, stopRight) {var rightArr = array baru (stopRight - startright + 1); var lefarr = array baru (stopleft - Stampleft + 1); k = startright; untuk (var i = 0; i <(rightarr.length - 1); ++ i) {rightArr [i] = arr [k]; ++ k; } k = Stampleft; untuk (var i = 0; i <(LeftArr.length - 1); ++ i) {leftarr [i] = arr [k]; ++ k; } rightArr [rightArr.length - 1] = Infinity; // Nilai Sentinel Leftarr [Leftarr.Length - 1] = Infinity; // nilai sentinel var m = 0; var n = 0; untuk (var k = starleft; k <stopRight; ++ k) {if (leftarr [m] <= rightarr [n]) {arr [k] = leftarr [m]; M ++; } else {arr [k] = rightArr [n]; n ++; }}}6. Sortir Cepat
var quicksort = fungsi (arr, kiri, kanan) {var i, j, t, pivot; if (left> = kanan) {return; } pivot = arr [kiri]; i = kiri; j = benar; 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 [kiri] = arr [j]; arr [j] = pivot; quicksort (arr, kiri, i - 1); quicksort (arr, i + 1, kanan);}Ringkasan: Perbandingan Efisiensi Algoritma:
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.