Skip to content

Commit b68ac1f

Browse files
committed
chapter 12: [Sorting and Searching Algorithms]
1 parent 6b5cc0c commit b68ac1f

20 files changed

+198
-10
lines changed

examples/chapter12/01-BubbleSort.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>

examples/chapter12/01-BubbleSort.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);

examples/chapter12/01-BucketSort.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>

examples/chapter12/01-BucketSort.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>

examples/chapter12/01-CountingSort.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);

examples/chapter12/01-MergeSort.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>

examples/chapter12/01-MergeSort.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);

examples/chapter12/01-QuickSort.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>

examples/chapter12/01-QuickSort.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);

examples/chapter12/01-RadixSort.html

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>

examples/chapter12/01-RadixSort.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8">
5+
<title></title>
6+
</head>
7+
<body>
8+
<script src="./../PacktDataStructuresAlgorithms.min.js"></script>
9+
<script src="01-BubbleSort.js"></script>
10+
</body>
11+
</html>
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const { bubbleSort } = PacktDataStructuresAlgorithms;
2+
3+
function createNonSortedArray(){
4+
var array = [];
5+
for (let i = 5; i > 0; i--){
6+
array.push(i);
7+
}
8+
return array;
9+
}
10+
11+
const array = bubbleSort(createNonSortedArray());
12+
console.log(array);

src/js/algorithms/sorting/radix-sort.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import { findMaxValue, findMinValue } from '../search/min-max-search';
22

3+
const getBucketIndex = (value, minValue, significantDigit, radixBase) => {
4+
return Math.floor(((value - minValue) / significantDigit) % radixBase);
5+
};
6+
37
const countingSortForRadix = (array, radixBase, significantDigit, minValue) => {
48
let bucketsIndex;
59
const buckets = [];
@@ -8,14 +12,14 @@ const countingSortForRadix = (array, radixBase, significantDigit, minValue) => {
812
buckets[i] = 0;
913
}
1014
for (let i = 0; i < array.length; i++) {
11-
bucketsIndex = Math.floor(((array[i] - minValue) / significantDigit) % radixBase);
15+
bucketsIndex = getBucketIndex(array[i], minValue, significantDigit, radixBase);
1216
buckets[bucketsIndex]++;
1317
}
1418
for (let i = 1; i < radixBase; i++) {
1519
buckets[i] += buckets[i - 1];
1620
}
1721
for (let i = array.length - 1; i >= 0; i--) {
18-
bucketsIndex = Math.floor(((array[i] - minValue) / significantDigit) % radixBase);
22+
bucketsIndex = getBucketIndex(array[i], minValue, significantDigit, radixBase);
1923
aux[--buckets[bucketsIndex]] = array[i];
2024
}
2125
for (let i = 0; i < array.length; i++) {

src/js/util.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ export const Compare = {
66

77
export const DOES_NOT_EXIST = -1;
88

9-
export function lesserEquals(a, b, compareFn) {
9+
export function lesserOrEquals(a, b, compareFn) {
1010
const comp = compareFn(a, b);
1111
return comp === Compare.LESS_THAN || comp === Compare.EQUALS;
1212
}
1313

14-
export function biggerEquals(a, b, compareFn) {
14+
export function biggerOrEquals(a, b, compareFn) {
1515
const comp = compareFn(a, b);
1616
return comp === Compare.BIGGER_THAN || comp === Compare.EQUALS;
1717
}

src/ts/algorithms/shuffle/fisher–yates.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
import { swap } from '../../util';
22

33
export function shuffle<T>(array: T[]) {
4-
let currentIndex = array.length;
5-
6-
while (currentIndex !== 0) {
7-
const randomIndex = Math.floor(Math.random() * currentIndex);
8-
currentIndex--;
9-
swap(array, currentIndex, randomIndex);
4+
for (let i = array.length - 1; i > 0; i--) {
5+
const randomIndex = Math.floor(Math.random() * (i + 1));
6+
swap(array, i, randomIndex);
107
}
118

129
return array;

src/ts/algorithms/sorting/radix-sort.ts

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ const countingSortForRadix = (
2828
aux[--buckets[bucketsIndex]] = array[i];
2929
}
3030

31+
32+
// array = [];
33+
// array.push(...aux);
3134
for (let i = 0; i < array.length; i++) {
3235
array[i] = aux[i];
3336
}

0 commit comments

Comments
 (0)