이 기사는 JS 구현에 일반적으로 사용되는 정렬 알고리즘을 공유하며 특정 컨텐츠는 다음과 같습니다.
1. 버블 분류
quar bubblesort = function (arr) {var flag = true; var len = arr.length; for (var i = 0; i <len -1; i ++) {flag = true; for (var j = 0; ARR [j+1] = ARR [J]; ARR [J] = 온도; 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; }} if (i! = min) {swap (arr, i, min); }}}; 함수 스왑 (arr, index1, index2) {var temp = arr [index1]; ARR [index1] = ARR [index2]; arr [index2] = temp;};3. 정렬 삽입
var insertsort = function (arr) {var len = arr.length, 키; 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] = 키; }};4. 힐 정렬
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> = 갭 [g] && arr [j -gaps [g]]> temp; j- = 갭 [g]) {arr [j] = arr [j- 갭 [g]]; } arr [j] = 온도; }}};5. 주문
함수 mergesort (arr) {if (arr.length <2) {return; } var step = 1; var 왼쪽, 오른쪽; while (step <arr.length) {왼쪽 = 0; 오른쪽 = 단계; while (오른쪽 + step <= arr.length) {mergearrays (arr, 왼쪽, 왼쪽 + 단계, 오른쪽, 오른쪽 + step); 왼쪽 = 오른쪽 + 단계; 오른쪽 = 왼쪽 + 단계; } if (오른쪽 <Ar } 단계 *= 2; }} 함수 mergearrays (arr, startleft, stopleft, startright, stopright) {var rightarr = new Array (stopright -Startright + 1); var leftarr = 새 배열 (Stopleft -startleft + 1); k = Startright; for (var i = 0; i <(rightarr.length -1); ++ i) {rightarr [i] = arr [k]; ++ k; } k = STARKLEFT; for (var i = 0; i <(leftarr.length -1); ++ i) {leftarr [i] = arr [k]; ++ k; } rightarr [rightarr.length -1] = 무한대; // sentinel value leftarr [leftarr.length -1] = 무한대; // sentinel value var m = 0; var n = 0; for (var k = startleft; k <stopright; ++ k) {if (leftarr [m] <= rightarr [n]) {arr [k] = leftarr [m]; m ++; } else {arr [k] = rightarr [n]; n ++; }}}6. 빠른 정렬
var quicksort = function (arr, 왼쪽, 오른쪽) {var i, j, t, pivot; if (왼쪽> = 오른쪽) {return; } pivot = arr [왼쪽]; i = 왼쪽; 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] = 피벗; QuickSort (ARR, LEFT, I -1); QuickSort (ARR, I + 1, 오른쪽);}요약 : 알고리즘 효율 비교 :
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.