아래 그림과 같이 :
// ---------- 일부 정렬 알고리즘 var sort = {} sort.prototype = {// sorts systemsort와 정렬 : 함수 (array) {return array.sort (function (a, b) {return a-b;}); }, // bubblesort : function (array) {var i = 0, len = array.length, j, d; for (; i <len; i ++) {for (j = 0; j <len; j ++) {if (array [i] <array [j]) {d = array [j]; 배열 [j] = 배열 [i]; 배열 [i] = d; }}} 반환 배열; }, // Quick Sort QuickSort : function (array) {// var array = [8,4,6,2,7,9,3,5,74,5]; // var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,5,6,62,43,5,4,51,56,76,7,2,1,45,6,7,7,7,2,1,45,6,7]; var i = 0; var j = array.length -1; var sort = function (i, j) {// end 조건 if (i == j) {return}; var key = 배열 [i]; var tempi = i; // 레코드 시작 위치 var tempj = j; // record end position while(j > i){ // j <<--------------------------------------------------------------------------------------------------------------------->>Find backward while(j > ++i){ if(array[i] > key){ array[j] = array[i]; 부서지다; }}}}} // 첫 번째 키가 가장 작은 숫자 인 경우 (tempi == i) {sort (++ i, tempj); 반품 ; } // 마지막 공석은 키 어레이에 맡겨집니다 [i] = key; // 재귀 정렬 (Tempi, i); 정렬 (j, tempj); } sort (i, j); 반환 배열; }, // sort insertsort : function (array) {// http://baike.baidu.com/image/d57e99942da24e5ddd21b7080 // http://baike.baidu.com/39687.htm // var array = [0,1,2,44,4,324,5,65,6,6,34,4,5,6,2,43,6,62,43,5,4,51,51,76,7,2,1,45,4,6,7]; var i = 1, j, temp, key, len = array.length; for (; i <len; i ++) {temp = j = i; 키 = 배열 [j]; while (-j> -1) {if (array [j]> key) {배열 [j+1] = 배열 [j]; } else {break; }} 배열 [j+1] = 키; } 반환 배열; }, // hill sort //jun.array.shellsort(jun.array.df(10000)); Shellsort : 함수 (Array) {// http://zh.wikipedia.org/zh/%E5%B8%8C%E5%B0%94%E6%8E%92%E5%BA%8F // var array = [13,14,94,33,82,25,59,94,65,23,45,27,73,25,39,10]; // var temparr = [1750, 701, 301, 132, 57, 23, 10, 4, 1]; // reverse () ()이 최적의 작은 단계 크기 var temparr = [1031612713, 217378076, 45806244, 9651787, 2034035, 428481, 90358, 19001, 4025, 836, 182, 34, 9, 1] // 1 var i = 0 for the steet fore the stife for the stife of the stize. = 0; var temparrtemparrlength = temparr.length; var len = array.length; var len2 = parseint (len/2); for (; i <temparrlength; i ++) {if (temparr [i]> len2) {계속; } tempsort (temparr [i]); } // 스텝 함수 tempsort (temp) {//console.log(Temp) 단계 크기 통계를 사용한 var i = 0, j = 0, f, tem, key; var templen = len%temp> 0? parseint (len/temp) + 1 : Len/Temp; for (; i <temp; i ++) {// (j = 1;/ * j <templen && */temp * j+i <len; j ++) {// 턴에서 각 열의 행을 루프 = f = temp * j+i; 키 = 배열 [f]; while ((tem- = temp)> = 0) {// if (array [tem]> key) {array [tem+temp] = array [tem]; } else {break; }} 배열 [tem + temp] = 키; }}} 반환 배열; }}JS의 위의 다양한 정렬 알고리즘 구현 (요약)은 편집기가 공유하는 모든 컨텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.