Skip to content

Commit 7a4c4cf

Browse files
committed
Sorting Algos Complete Course
1 parent c8e2c2d commit 7a4c4cf

File tree

4 files changed

+94
-0
lines changed

4 files changed

+94
-0
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function bubbleSort(arr) {
2+
for (let i = arr.length - 1; i > 0; i--) {
3+
for (let j = 0; j < i; j++) {
4+
if (arr[j] > arr[j + 1]) {
5+
let temp = arr[j];
6+
arr[j] = arr[j + 1];
7+
arr[j + 1] = temp;
8+
}
9+
}
10+
}
11+
return arr;
12+
}
13+
14+
const myArr = [4, 2, 6, 5, 1, 3];
15+
const res = bubbleSort(myArr);
16+
console.log(res);
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
function selectionSort(arr) {
2+
for (let i = 0; i < arr.length; i++) {
3+
let minIndex = i;
4+
5+
for (let j = i + 1; j < arr.length; j++) {
6+
if (arr[j] < arr[minIndex]) {
7+
minIndex = j;
8+
}
9+
}
10+
11+
if (i !== minIndex) {
12+
let temp = arr[i];
13+
arr[i] = arr[minIndex];
14+
arr[minIndex] = temp;
15+
16+
// SHORTHAND 👇
17+
// [arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
18+
}
19+
}
20+
return arr;
21+
}
22+
23+
const myArr = [4, 2, 6, 5, 1, 3];
24+
const res = selectionSort(myArr);
25+
console.log(res);
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
function insertionSort(arr) {
2+
for (let i = 1; i < arr.length; i++) {
3+
let key = arr[i];
4+
let j = i - 1;
5+
6+
while (j >= 0 && arr[j] > key) {
7+
arr[j + 1] = arr[j];
8+
j--;
9+
}
10+
11+
arr[j + 1] = key;
12+
}
13+
14+
return arr;
15+
}
16+
17+
const unsortedArray = [5, 2, 4, 6, 1, 3];
18+
const sortedArray = insertionSort(unsortedArray);
19+
console.log(sortedArray);
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
function mergeSort(arr) {
2+
if (arr.length <= 1) return arr;
3+
4+
const middle = Math.floor(arr.length / 2);
5+
const left = arr.slice(0, middle);
6+
const right = arr.slice(middle);
7+
8+
return merge(mergeSort(left), mergeSort(right));
9+
}
10+
11+
function merge(left, right) {
12+
const result = [];
13+
let i = 0;
14+
let j = 0;
15+
16+
while (i < left.length && j < right.length) {
17+
if (left[i] < right[j]) {
18+
result.push(left[i]);
19+
i++;
20+
} else {
21+
result.push(right[j]);
22+
j++;
23+
}
24+
}
25+
26+
result.push(...left.slice(i));
27+
result.push(...right.slice(j));
28+
29+
return result;
30+
}
31+
32+
const unsortedArray = [38, 27, 43, 3, 9, 82, 10];
33+
const sortedArray = mergeSort(unsortedArray);
34+
console.log(sortedArray);

0 commit comments

Comments
 (0)