Skip to content

Commit ee46969

Browse files
committed
added chapter 10
1 parent 3e0fde1 commit ee46969

3 files changed

+151
-0
lines changed

chapter10/01-SortingAlgorithms.js

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
function ArrayList(){
2+
3+
var array = [];
4+
5+
this.insert = function(item){
6+
array.push(item);
7+
};
8+
9+
var swap = function(index1, index2){
10+
var aux = array[index1];
11+
array[index1] = array[index2];
12+
array[index2] = aux;
13+
};
14+
15+
this.toString= function(){
16+
var s = array[0] ? array[0] : '';
17+
for (var i=1; i<array.length; i++){
18+
s += ', ' + array[i];
19+
}
20+
return s;
21+
};
22+
23+
this.bubbleSort = function(){
24+
var length = array.length;
25+
26+
for (var i=0; i<length; i++){
27+
for (var j=0; j<length-1; j++ ){
28+
if (array[j] > array[j+1]){
29+
swap(j, j+1);
30+
}
31+
}
32+
}
33+
};
34+
35+
this.modifiedBubbleSort = function(){
36+
var length = array.length,
37+
swapped;
38+
39+
do {
40+
swapped = false;
41+
for (var i=0; i<length-1; i++){
42+
if (array[i] > array[i+1]){
43+
swap(i, i+1);
44+
swapped = true;
45+
}
46+
}
47+
} while (swapped);
48+
49+
};
50+
51+
this.selectionSort = function(){
52+
var length = array.length,
53+
indexMin;
54+
55+
for (var i=0; i<length; i++){
56+
indexMin = i;
57+
for (var j=i; j<length; j++){
58+
if(array[indexMin]>array[j]){
59+
indexMin = j;
60+
}
61+
}
62+
swap(i, indexMin);
63+
}
64+
};
65+
66+
this.insertionSort = function(){
67+
var length = array.length,
68+
j, temp;
69+
for (var i=1; i<length; i++){
70+
j = i;
71+
temp = array[i];
72+
while (j>0 && array[j-1] > temp){
73+
array[j] = array[j-1];
74+
j--;
75+
}
76+
array[j] = temp;
77+
}
78+
};
79+
}
+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 type="text/javascript" src="01-SortingAlgorithms.js"></script>
9+
<script type="text/javascript" src="02-TestingSortingAlgorithms.js"></script>
10+
</body>
11+
</html>
+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
function createNonSortedArray(){
2+
var array = new ArrayList();
3+
4+
for (var i = 5; i> 0; i--){
5+
array.insert(i);
6+
}
7+
8+
return array;
9+
}
10+
11+
console.log('********** Bubble Sort **********');
12+
13+
var array = createNonSortedArray();
14+
15+
console.log(array.toString());
16+
17+
array.bubbleSort();
18+
19+
console.log(array.toString());
20+
21+
console.log('********** Modified Bubble Sort **********');
22+
23+
array = createNonSortedArray();
24+
25+
console.log(array.toString());
26+
27+
array.modifiedBubbleSort();
28+
29+
console.log(array.toString());
30+
31+
console.log('********** Selection Sort **********');
32+
33+
array = createNonSortedArray();
34+
35+
console.log(array.toString());
36+
37+
array.selectionSort();
38+
39+
console.log(array.toString());
40+
41+
console.log('********** Insertion Sort **********');
42+
43+
array = createNonSortedArray();
44+
45+
console.log(array.toString());
46+
47+
array.insertionSort();
48+
49+
console.log(array.toString());
50+
51+
console.log('********** Merge Sort **********');
52+
53+
array = createNonSortedArray();
54+
55+
console.log(array.toString());
56+
57+
array.insertionSort();
58+
59+
console.log(array.toString());
60+
61+

0 commit comments

Comments
 (0)