Skip to content

Instantly share code, notes, and snippets.

@youngdze
Created May 31, 2016 06:06
Show Gist options
  • Save youngdze/38bf8a7d64cc47b7a9cf9fcd36572351 to your computer and use it in GitHub Desktop.
Save youngdze/38bf8a7d64cc47b7a9cf9fcd36572351 to your computer and use it in GitHub Desktop.
let randomRange = (start, end) => {
return Math.floor(Math.random() * Math.abs(end - start + 1)) + start;
};
let swapArr = (arr, index1, index2) => {
let dummy = arr[index1];
arr[index1] = arr[index2];
arr[index2] = dummy;
};
let bubbleSort = (arr) => {
let resultArr = [...arr];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (resultArr[i] > resultArr[j]) [resultArr[i], resultArr[j]] = [resultArr[j], resultArr[i]];
}
}
return resultArr;
};
let selectionSort = (arr) => {
let resultArr = [...arr];
let min;
for (let i = 0; i < resultArr.length; i++) {
min = i;
for (let j = i + 1; j < resultArr.length; j++) {
if (resultArr[j] < resultArr[i]) min = j;
}
if(min !== i) [resultArr[min], resultArr[i]] = [resultArr[i], resultArr[min]];
}
return resultArr;
};
let insertionSort = (arr) => {
let resultArr = [...arr];
for (let i = 1; i < resultArr.length + 1; i++) {
for (let j = i - 1; j > 0 && resultArr[j] < resultArr[j - 1]; j++)
[resultArr[j], resultArr[j - 1]] = [resultArr[j - 1], resultArr[j]];
}
return resultArr;
};
let quickSort = (arr, left = 0, right) => {
right = right || arr.length - 1;
let i = left;
let j = right;
let pivot = arr[Math.floor((i + j) / 2)];
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
j--;
}
}
if (left < j) quickSort(arr, left, j);
if (i < right) quickSort(arr, i, right);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment