Bubble sort
Let compare = (n1, n2) => n1-n2;
Let Bubblesort = (arr, cmp = Compare) => {
for (Let i = 0; i < arr.length; i++) {
for (Let j = i; j > 0; j--) {
if (CMP (ARR[J], arr[j-1]) < 0) {
[Arr[j], arr[j-1]] = [arr[j-1], arr[j]];
}
}
}
return arr;
};
Insert Sort
Let Insertionsort = (arr) => {
for (Let i = 0; i < a.length; i++) {
Let tocmp = Arr[i];
for (Let j = i; j > 0 && tocmp < a[j-1]; j--)
ARR[J] = a[j-1];
ARR[J] = tocmp;
}
return arr;
}
Select Sort
var selectionsort = function (arr) {
Let I,m,j;
for (i =-1; ++i < a.length;) {
for (m = j = i; ++j < a.length;) {
if (Arr[m] > arr[j]) m = j;
}
[Arr[m], arr[i]] = [Arr[i], arr[m]];
}
return arr;
}
Merge sort
Let MergeSort = (arr) => {
if (Arr.length < 2) return arr;
Let middle = parseint (ARR.LENGTH/2),
left = Arr.slice (0, middle),
right = Arr.slice (middle);
Return merge (MergeSort (left), MergeSort (right));
}
Let-merge = (left, right) => {
let result = [];
while (Left.length && right.length) {
Left[0] <= right[0]?
Result.push (Left.shift ()):
Result.push (Right.shift ());
}
while (left.length) Result.push (Left.shift ());
while (right.length) Result.push (Right.shift ());
return result;
}
Quick Sort
Let quicksort = function (arr) {
if (arr.length <= 1) return arr;
let pivot = Math.floor ((arr.length-1)/2);
Let val = Arr[pivot], less = [], more = [];
Arr.splice (pivot, 1);
Arr.foreach (function (e,i,a) {
E < val? Less.push (E): More.push (e);
});
Return (quicksort (less)). Concat ([Val],quicksort (more))
}
From the above several sorting algorithm is actually very simple, in fact, and its algorithm is the same, you friends can help you.