Skip to content

Commit 052c80e

Browse files
add all test file , test with mocha
add QuickSort class add MergeSort class , but with some problems add math.js add math.js test file
1 parent ffb85bf commit 052c80e

File tree

3 files changed

+105
-0
lines changed

3 files changed

+105
-0
lines changed

dist/lib/MergeSort.js

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var MergeSort = /** @class */ (function () {
4+
function MergeSort(a, n) {
5+
this.a = a;
6+
this.n = n;
7+
}
8+
MergeSort.prototype.mergeSortInternally = function (a, p, r) {
9+
if (r === void 0) { r = this.n; }
10+
try {
11+
if (p >= r)
12+
return;
13+
var q = p + (r - p) / 2;
14+
this.mergeSortInternally(a, p, q);
15+
this.mergeSortInternally(a, q + 1, r);
16+
this.merge(a, p, q, r);
17+
}
18+
catch (err) {
19+
console.error(err);
20+
return;
21+
}
22+
};
23+
MergeSort.prototype.merge = function (a, p, q, r) {
24+
var i = p;
25+
var j = q + 1;
26+
var k = 0;
27+
var len = (r - p + 1).toFixed(0);
28+
console.log('len::', len);
29+
var tmp = [];
30+
while (i <= q && j <= r) {
31+
if (a[i] <= a[j]) {
32+
tmp[k++] = a[i++];
33+
}
34+
else {
35+
tmp[k++] = a[j++];
36+
}
37+
}
38+
var start = i;
39+
var end = q;
40+
if (j <= r) {
41+
start = j;
42+
end = r;
43+
}
44+
while (start <= end) {
45+
tmp[k++] = a[start++];
46+
}
47+
for (var i_1 = 0; i_1 <= r - p; ++i_1) {
48+
a[p + i_1] = tmp[i_1];
49+
}
50+
};
51+
return MergeSort;
52+
}());
53+
exports.MergeSort = MergeSort;

dist/lib/QuickSort.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var QuickSort = /** @class */ (function () {
4+
function QuickSort(a, n) {
5+
QuickSort.quickSortInternally(a, 0, n - 1);
6+
}
7+
QuickSort.quickSortInternally = function (a, p, r) {
8+
if (p >= r)
9+
return;
10+
var q = QuickSort.partition(a, p, r); // 获取分区点
11+
QuickSort.quickSortInternally(a, p, q - 1);
12+
QuickSort.quickSortInternally(a, q + 1, r);
13+
};
14+
/**
15+
* @param a {Array}
16+
* @param p start index
17+
* @param r end index
18+
* */
19+
QuickSort.partition = function (a, p, r) {
20+
var pivot = a[r];
21+
var i = p;
22+
for (var j = p; j < r; ++j) {
23+
if (a[j] < pivot) {
24+
var tmp_1 = a[i];
25+
a[i] = a[j];
26+
a[j] = tmp_1;
27+
++i;
28+
}
29+
}
30+
var tmp = a[i];
31+
a[i] = a[r];
32+
a[r] = tmp;
33+
console.log("i=" + i);
34+
return i;
35+
};
36+
return QuickSort;
37+
}());
38+
exports.QuickSort = QuickSort;

dist/lib/Util.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"use strict";
2+
Object.defineProperty(exports, "__esModule", { value: true });
3+
var Util = /** @class */ (function () {
4+
function Util() {
5+
}
6+
/**
7+
* @bignumber {math.js bignumber }
8+
* */
9+
Util.transBigNumber = function (bignumber) {
10+
return Number(bignumber.toString());
11+
};
12+
return Util;
13+
}());
14+
exports.Util = Util;

0 commit comments

Comments
 (0)