Skip to content

Commit 31b4823

Browse files
author
samchon
committed
v2.4 publish
1 parent 9630395 commit 31b4823

File tree

5 files changed

+52
-2
lines changed

5 files changed

+52
-2
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"email": "[email protected]",
77
"url": "http://samchon.org"
88
},
9-
"version": "2.4.0-dev.20200105",
9+
"version": "2.4.0",
1010
"main": "./index.js",
1111
"typings": "./index.d.ts",
1212
"scripts": {
File renamed without changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
export namespace TimeWatch
2+
{
3+
export function measure(proc: ()=>void): number
4+
{
5+
let time: number = Date.now();
6+
proc();
7+
return Date.now() - time;
8+
}
9+
}

src/benchmark/sorts.ts

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { Vector } from "../container/Vector";
2+
import { Deque } from "../container/Deque";
3+
4+
import { StringUtil } from "./internal/StringUtil";
5+
import { TimeWatch } from "./internal/TimeWatch";
6+
7+
import { randint } from "../algorithm/random";
8+
import { sort } from "../ranges/algorithm/sorting";
9+
10+
function watch(n: number): [number, number, number]
11+
{
12+
let items: number[] = [];
13+
for (let i: number = 0; i < n; ++i)
14+
items.push(randint(1, n));
15+
16+
let v: Vector<number> = new Vector(items);
17+
let d: Deque<number> = new Deque(items);
18+
19+
return [
20+
TimeWatch.measure(() => items.sort((x, y) => x - y)),
21+
TimeWatch.measure(() => sort(v)),
22+
TimeWatch.measure(() => sort(d))
23+
];
24+
}
25+
26+
export async function main(): Promise<string>
27+
{
28+
let ret: string = "## Sorts \n"
29+
+ " N | Array | Vector | Deque \n"
30+
+ "---|-------|--------|-------\n";
31+
32+
for (let n of [1000, 10000, 100000])
33+
{
34+
let line: string = StringUtil.numberFormat(n);
35+
for (let time of watch(n))
36+
line += ` | ${StringUtil.numberFormat(time)}`;
37+
38+
ret += line + "\n";
39+
}
40+
return ret;
41+
}

src/test/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import * as fs from "fs";
2-
import { StringUtil } from "./internal/StringUtil";
2+
import { StringUtil } from "../benchmark/internal/StringUtil";
33

44
const PATH = __dirname;
55

0 commit comments

Comments
 (0)