Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 32c0c67

Browse files
committed
feat(src): add source files
1 parent 7553cef commit 32c0c67

11 files changed

+499
-0
lines changed

‎.editorconfig

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# http://editorconfig.org
2+
root = true
3+
4+
[*]
5+
indent_style = space
6+
indent_size = 2
7+
end_of_line = lf
8+
charset = utf-8
9+
trim_trailing_whitespace = true
10+
insert_final_newline = true
11+
12+
[*.md]
13+
trim_trailing_whitespace = false
14+
15+
[Makefile]
16+
indent_style = tab

‎01-bubble-sort.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
function bubbleSort(array) {
2+
var swap = function(x, y) {
3+
var temp = array[x];
4+
array[x] = array[y];
5+
array[y] = temp;
6+
};
7+
8+
for (var i = array.length - 1; i > 0; i--) {
9+
for (var j = 0; j < i; j++) {
10+
if (array[j] > array[j + 1]) {
11+
swap(j, j + 1);
12+
}
13+
}
14+
}
15+
16+
return array;
17+
}
18+
19+
(function(sort) {
20+
var random = function(max) {
21+
var array = [];
22+
for (var i = 0; i < max; i++) {
23+
array[i] = i;
24+
}
25+
array.sort(function() {
26+
return 0.5 - Math.random();
27+
});
28+
return array;
29+
};
30+
31+
var test = function(count) {
32+
for (var i = 0; i < count; i++) {
33+
var array = random(10);
34+
console.log('[No.' + (i + 1) + '] begin: ', array);
35+
console.time('time');
36+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
37+
console.timeEnd('time');
38+
}
39+
};
40+
41+
test(3);
42+
}(bubbleSort));

‎02-bubble-sort-with-pos.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
function bubbleSort(array) {
2+
var swap = function(x, y) {
3+
var temp = array[x];
4+
array[x] = array[y];
5+
array[y] = temp;
6+
};
7+
8+
var i = array.length - 1;
9+
while (i > 0) {
10+
var pos = 0;
11+
for (var j = 0; j < i; j++) {
12+
if (array[j] > array[j + 1]) {
13+
pos = j;
14+
swap(j, j + 1);
15+
}
16+
}
17+
i = pos;
18+
}
19+
20+
return array;
21+
}
22+
23+
(function(sort) {
24+
var random = function(max) {
25+
var array = [];
26+
for (var i = 0; i < max; i++) {
27+
array[i] = i;
28+
}
29+
array.sort(function() {
30+
return 0.5 - Math.random();
31+
});
32+
return array;
33+
};
34+
35+
var test = function(count) {
36+
for (var i = 0; i < count; i++) {
37+
var array = random(10);
38+
console.log('[No.' + (i + 1) + '] begin: ', array);
39+
console.time('time');
40+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
41+
console.timeEnd('time');
42+
}
43+
};
44+
45+
test(3);
46+
}(bubbleSort));

‎03-shaker-sort.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
function shakerSort(array) {
2+
var swap = function(x, y) {
3+
var temp = array[x];
4+
array[x] = array[y];
5+
array[y] = temp;
6+
};
7+
8+
var min = 0;
9+
var max = array.length - 1;
10+
11+
while (min < max) {
12+
for (var j = min; j < max; j++) {
13+
if (array[j] > array[j + 1]) {
14+
swap(j, j + 1);
15+
}
16+
}
17+
--max;
18+
for (var j = max; j > min; j--) {
19+
if (array[j] < array[j - 1]) {
20+
swap(j, j - 1);
21+
}
22+
}
23+
++min;
24+
}
25+
26+
return array;
27+
}
28+
29+
(function(sort) {
30+
var random = function(max) {
31+
var array = [];
32+
for (var i = 0; i < max; i++) {
33+
array[i] = i;
34+
}
35+
array.sort(function() {
36+
return 0.5 - Math.random();
37+
});
38+
return array;
39+
};
40+
41+
var test = function(count) {
42+
for (var i = 0; i < count; i++) {
43+
var array = random(10);
44+
console.log('[No.' + (i + 1) + '] begin: ', array);
45+
console.time('time');
46+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
47+
console.timeEnd('time');
48+
}
49+
};
50+
51+
test(3);
52+
}(shakerSort));

‎04-selection-sort.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
function selectionSort(array) {
2+
var swap = function(x, y) {
3+
var temp = array[x];
4+
array[x] = array[y];
5+
array[y] = temp;
6+
};
7+
8+
for (var i = 0, length = array.length; i < length - 1; i++) {
9+
var minIndex = i;
10+
for (var j = i + 1; j < length; j++) {
11+
if (array[j] < array[minIndex]) {
12+
minIndex = j;
13+
}
14+
}
15+
swap(i, minIndex);
16+
}
17+
18+
return array;
19+
}
20+
21+
(function(sort) {
22+
var random = function(max) {
23+
var array = [];
24+
for (var i = 0; i < max; i++) {
25+
array[i] = i;
26+
}
27+
array.sort(function() {
28+
return 0.5 - Math.random();
29+
});
30+
return array;
31+
};
32+
33+
var test = function(count) {
34+
for (var i = 0; i < count; i++) {
35+
var array = random(10);
36+
console.log('[No.' + (i + 1) + '] begin: ', array);
37+
console.time('time');
38+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
39+
console.timeEnd('time');
40+
}
41+
};
42+
43+
test(3);
44+
}(selectionSort));

‎05-insertion-sort.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
function insertionSort(array) {
2+
for (var i = 1; i < array.length; i++) {
3+
var curr = array[i];
4+
for (var j = i; j >= 0; j--) {
5+
if (array[j - 1] > curr) {
6+
array[j] = array[j - 1];
7+
} else {
8+
array[j] = curr;
9+
break;
10+
}
11+
}
12+
}
13+
14+
return array;
15+
}
16+
17+
(function(sort) {
18+
var random = function(max) {
19+
var array = [];
20+
for (var i = 0; i < max; i++) {
21+
array[i] = i;
22+
}
23+
array.sort(function() {
24+
return 0.5 - Math.random();
25+
});
26+
return array;
27+
};
28+
29+
var test = function(count) {
30+
for (var i = 0; i < count; i++) {
31+
var array = random(10);
32+
console.log('[No.' + (i + 1) + '] begin: ', array);
33+
console.time('time');
34+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
35+
console.timeEnd('time');
36+
}
37+
};
38+
39+
test(3);
40+
}(insertionSort));

‎06-binary-sort.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
function binarySort(array) {
2+
for (var i = 1; i < array.length; i++) {
3+
var key = array[i],
4+
left = 0,
5+
right = i - 1;
6+
while (left <= right) {
7+
var middle = Math.floor((left + right) / 2);
8+
if (key < array[middle]) {
9+
right = middle - 1;
10+
} else {
11+
left = middle + 1;
12+
}
13+
}
14+
for (var j = i - 1; j >= left; j--) {
15+
array[j + 1] = array[j];
16+
}
17+
array[left] = key;
18+
}
19+
20+
return array;
21+
}
22+
23+
(function(sort) {
24+
var random = function(max) {
25+
var array = [];
26+
for (var i = 0; i < max; i++) {
27+
array[i] = i;
28+
}
29+
array.sort(function() {
30+
return 0.5 - Math.random();
31+
});
32+
return array;
33+
};
34+
35+
var test = function(count) {
36+
for (var i = 0; i < count; i++) {
37+
var array = random(10);
38+
console.log('[No.' + (i + 1) + '] begin: ', array);
39+
console.time('time');
40+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
41+
console.timeEnd('time');
42+
}
43+
};
44+
45+
test(3);
46+
}(binarySort));

‎07-shell-sort.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
function shellSort(array) {
2+
var swap = function(x, y) {
3+
var temp = array[x];
4+
array[x] = array[y];
5+
array[y] = temp;
6+
};
7+
8+
var length = array.length,
9+
gap = Math.floor(length / 2);
10+
while (gap > 0) {
11+
for (var i = gap; i < length; i++) {
12+
for (var j = i; 0 < j; j -= gap) {
13+
if (array[j - gap] > array[j]) {
14+
swap(j - gap, j);
15+
} else {
16+
break;
17+
}
18+
}
19+
}
20+
gap = Math.floor(gap / 2);
21+
}
22+
23+
return array;
24+
}
25+
26+
(function(sort) {
27+
var random = function(max) {
28+
var array = [];
29+
for (var i = 0; i < max; i++) {
30+
array[i] = i;
31+
}
32+
array.sort(function() {
33+
return 0.5 - Math.random();
34+
});
35+
return array;
36+
};
37+
38+
var test = function(count) {
39+
for (var i = 0; i < count; i++) {
40+
var array = random(10);
41+
console.log('[No.' + (i + 1) + '] begin: ', array);
42+
console.time('time');
43+
console.log('[No.' + (i + 1) + '] end: ', sort(array));
44+
console.timeEnd('time');
45+
}
46+
};
47+
48+
test(3);
49+
}(shellSort));

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /