Bubble sort
function Bubblesort (Arr,comp) {for (var i = 0;i < Arr.length; i++) {for (var j = 0; J < arr.length-i-1, + j) {if (comp (Arr[j],arr[j+1])) {Exch (arr,j,j+1);}}}} Function Exch (a,i,j) {var tmp = A[i];a[i] = a[j];a[j] = tmp;} var input = new Array (5,1,4,2,3); Bubblesort (Input,function (b) {return a > B;}); Console.log (input), input = new Array (5,1,4,2,3), Bubblesort (Input,function (b) {return a < b;}); Console.log (input);
Selection sort
function Selectionsort (Arr,comp) {for (var i = 0;i < Arr.length; i++) {for (var j = I;j < Arr.length; J + +) {if (Comp (arr [I],arr[j]) {exch (arr,i,j);}}} Function Exch (a,i,j) {var t = a[i];a[i] = a[j];a[j] = t;} var input = new Array (5,1,4,2,3); Selectionsort (Input,function (b) {return a > B;}); Console.log (input), input = new Array (5,1,4,2,3), Bubblesort (Input,function (b) {return a < b;}); Console.log (input);
Insert Sort
function Insertsort (arr,comp) {var result = new Array (); for (; arr.length > 0;) {var inserted = False;for (var j = 0;j < Result.length; J + +) {if (comp (result[j],arr[0])) {Insert (result,j,arr[0]); inserted = true; break;}} if (!inserted) {insert (result,result.length,arr[0]);} Arr.splice (0,1);} return result;} function Insert (arr,i,v) {arr.splice (i,0,v);} var input = new Array (5,1,4,2,3), var ret = Insertsort (input,function (b) {return a > B;}); Console.log (ret), var input = new Array (5,1,4,2,3), ret = Insertsort (Input,function (A, A, b) {return a < C;}); Console.log (ret);
Shell sort
function Shellsort (a,comp) {for (var h = a.length; h = parseint (H/2);) {for (var i = h; i < a.length; i++) { var k = a[i]; for (var j = i; J >= H && Comp (k, a[j-h]); J-= h) A[j] = a[j-h]; A[J] = k; } } return A;} var arr =new Array (7,9,2,5,4,1,3), var r = Shellsort (Arr,function (b) {return a > B;}); Console.log (R);
Merge sort
function MergeS (Arr,comp) {if (arr.length = = 1) {return arr;} var mid = Arr.length/2 | 0;var Leftarr = new Array (), var rightarr = new Array (), for (var i = 0;i < Mid;i + +) {Leftarr.push (arr[i]);} for (var j = Mid;j < Arr.length; J + +) {Rightarr.push (arr[j]);} Console.log ("Before:" + Leftarr + "|" + Rightarr); var leftret = MergeS (Leftarr,comp); var rightret = MergeS (Rightarr,co MP); var r = merge (Leftret,rightret,comp); return r;} function Merge (Leftarr,rightarr,comp) {var ret = new Array (); var i = j = 0;for (; i < leftarr.length && J < Rig Htarr.length; {if (comp (leftarr[i],rightarr[j])) {Ret.push (leftarr[i]); I ++}else {Ret.push (rightarr[j]); J ++}}for (; I < Leftarr.length;) {Ret.push (leftarr[i]); i++;} for (;j< rightarr.length;) {Ret.push (rightarr[j]); j + +;} return ret;} var r = MergeS (new Array (0,6,5,1,2,4,3,9), function (A, b) {return a > C;}); Console.log (r);
Quick Sort
function quicks (Arr,lo,hi,comp) {if (lo >= hi) {return;} var stub = Arr[lo];var i = lo + 1;var j = hi;for (; I < J;) {for (; I < J &&!comp (Stub,arr[j]), j--); for (; I < J && Comp (stub,arr[i]); i++); if (i >= j) {break;} var t = arr[i];arr[i] = arr[j];arr[j] = t;j--;i++;} if (comp (arr[lo],arr[i])) {var t = Arr[lo];arr[lo] = arr[i];arr[i] = t;} Quicks (Arr,lo,i-1,comp); quicks (Arr,i,hi,comp);} var input = new Array (22,3,10,66,15,11,2,4,31,9); quicks (input, 0, input.length-1,function (b) {return a > B;}); Console.log (input);
Heap Sort
var ret = new Array (), function heaps (arr,comp) {if (arr.length = = 0) {return;} var i = ARR.LENGTH/2 | 0; for (; I >= 0; i--) {if (comp (arr[i], Arr[i * 2]) {exch (arr, I, i*2);} if (comp (arr[i], Arr[i * 2 + 1])) {exch (arr, I, i*2 + 1);}} Ret.push (Arr[0]); Arr.splice (0,1); heaps (arr,comp);} Function Exch (arr,i,j) {var t = arr[i];arr[i] = arr[j];arr[j] = t;} Heaps (new Array (16,22,91,0,51,44,23), function (A, b) {return a > B.}); Console.log (ret);
8 Large Sorting algorithm summary JS implementation