data-structure-typed 1.41.7 → 1.41.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/README.md +14 -11
- package/benchmark/report.html +14 -11
- package/benchmark/report.json +155 -204
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.d.ts +5 -2
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js +15 -2
- package/dist/cjs/src/data-structures/binary-tree/rb-tree.js.map +1 -1
- package/dist/cjs/src/data-structures/graph/abstract-graph.d.ts +6 -2
- package/dist/cjs/src/data-structures/graph/abstract-graph.js +45 -35
- package/dist/cjs/src/data-structures/graph/abstract-graph.js.map +1 -1
- package/dist/mjs/src/data-structures/binary-tree/rb-tree.d.ts +5 -2
- package/dist/mjs/src/data-structures/binary-tree/rb-tree.js +15 -2
- package/dist/mjs/src/data-structures/graph/abstract-graph.d.ts +6 -2
- package/dist/mjs/src/data-structures/graph/abstract-graph.js +44 -35
- package/dist/umd/data-structure-typed.min.js +1 -1
- package/dist/umd/data-structure-typed.min.js.map +1 -1
- package/package.json +5 -5
- package/src/data-structures/binary-tree/binary-tree.ts +1 -1
- package/src/data-structures/binary-tree/bst.ts +1 -1
- package/src/data-structures/binary-tree/rb-tree.ts +18 -2
- package/src/data-structures/graph/abstract-graph.ts +50 -41
- package/test/performance/data-structures/binary-tree/avl-tree.test.ts +6 -6
- package/test/performance/data-structures/binary-tree/binary-tree.test.ts +7 -7
- package/test/performance/data-structures/binary-tree/bst.test.ts +6 -6
- package/test/performance/data-structures/binary-tree/rb-tree.test.ts +32 -0
- package/test/performance/data-structures/graph/directed-graph.test.ts +4 -4
- package/test/performance/data-structures/heap/heap.test.ts +7 -7
- package/test/performance/data-structures/linked-list/doubly-linked-list.test.ts +6 -6
- package/test/performance/data-structures/linked-list/singly-linked-list.test.ts +7 -7
- package/test/performance/data-structures/priority-queue/max-priority-queue.test.ts +1 -1
- package/test/performance/data-structures/queue/deque.test.ts +2 -2
- package/test/performance/data-structures/queue/queue.test.ts +2 -2
- package/test/performance/data-structures/trie/trie.test.ts +2 -2
- package/test/performance/reportor.ts +5 -6
- package/test/unit/data-structures/binary-tree/rb-tree.test.ts +103 -103
- package/test/unit/data-structures/graph/undirected-graph.test.ts +21 -13
package/CHANGELOG.md
CHANGED
|
@@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
|
|
|
8
8
|
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
|
|
9
9
|
- [`auto-changelog`](https://github.com/CookPete/auto-changelog)
|
|
10
10
|
|
|
11
|
-
## [v1.41.
|
|
11
|
+
## [v1.41.9](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
|
|
12
12
|
|
|
13
13
|
### Changes
|
|
14
14
|
|
package/README.md
CHANGED
|
@@ -658,37 +658,40 @@ optimal approach to data structure design.
|
|
|
658
658
|
[//]: # (Start of Replace Section)
|
|
659
659
|
<div class="json-to-html-collapse clearfix 0">
|
|
660
660
|
<div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
|
|
661
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
661
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 add randomly</td><td>30.18</td><td>33.13</td><td>2.75e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>65.65</td><td>15.23</td><td>0.00</td></tr><tr><td>10,000 addMany</td><td>39.56</td><td>25.28</td><td>3.25e-4</td></tr><tr><td>10,000 get</td><td>26.57</td><td>37.63</td><td>1.92e-4</td></tr></table></div>
|
|
662
662
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
663
663
|
<div class='collapsible level0' ><span class='json-to-html-label'>binary-tree</span></div>
|
|
664
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
664
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000 add randomly</td><td>13.00</td><td>76.93</td><td>3.84e-4</td></tr><tr><td>1,000 add & delete randomly</td><td>16.11</td><td>62.06</td><td>3.76e-4</td></tr><tr><td>1,000 addMany</td><td>10.63</td><td>94.04</td><td>1.30e-4</td></tr><tr><td>1,000 get</td><td>18.24</td><td>54.84</td><td>5.04e-4</td></tr><tr><td>1,000 dfs</td><td>69.77</td><td>14.33</td><td>4.07e-4</td></tr><tr><td>1,000 bfs</td><td>54.49</td><td>18.35</td><td>4.96e-4</td></tr><tr><td>1,000 morris</td><td>37.10</td><td>26.96</td><td>2.35e-4</td></tr></table></div>
|
|
665
665
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
666
666
|
<div class='collapsible level0' ><span class='json-to-html-label'>bst</span></div>
|
|
667
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
667
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 add randomly</td><td>31.88</td><td>31.37</td><td>3.10e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>73.08</td><td>13.68</td><td>0.01</td></tr><tr><td>10,000 addMany</td><td>28.80</td><td>34.73</td><td>0.00</td></tr><tr><td>10,000 get</td><td>27.59</td><td>36.25</td><td>2.19e-4</td></tr></table></div>
|
|
668
|
+
</div><div class="json-to-html-collapse clearfix 0">
|
|
669
|
+
<div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
|
|
670
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add randomly</td><td>70.97</td><td>14.09</td><td>0.00</td></tr><tr><td>100,000 add & 1000 delete randomly</td><td>82.03</td><td>12.19</td><td>0.01</td></tr><tr><td>100,000 getNode</td><td>59.75</td><td>16.74</td><td>0.00</td></tr></table></div>
|
|
668
671
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
669
672
|
<div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
|
|
670
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
673
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000 addVertex</td><td>0.10</td><td>9894.62</td><td>1.57e-6</td></tr><tr><td>1,000 addEdge</td><td>6.17</td><td>162.15</td><td>0.00</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>2.17e+4</td><td>4.06e-7</td></tr><tr><td>1,000 getEdge</td><td>23.50</td><td>42.56</td><td>0.00</td></tr><tr><td>tarjan</td><td>223.18</td><td>4.48</td><td>0.01</td></tr><tr><td>tarjan all</td><td>226.10</td><td>4.42</td><td>0.01</td></tr><tr><td>topologicalSort</td><td>186.20</td><td>5.37</td><td>0.02</td></tr></table></div>
|
|
671
674
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
672
675
|
<div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
|
|
673
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
676
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 add & pop</td><td>4.64</td><td>215.30</td><td>4.51e-5</td></tr><tr><td>10,000 fib add & pop</td><td>351.83</td><td>2.84</td><td>0.00</td></tr></table></div>
|
|
674
677
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
675
678
|
<div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
|
|
676
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
679
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 unshift</td><td>216.19</td><td>4.63</td><td>0.04</td></tr><tr><td>1,000,000 unshift & shift</td><td>164.84</td><td>6.07</td><td>0.02</td></tr><tr><td>1,000,000 insertBefore</td><td>325.14</td><td>3.08</td><td>0.07</td></tr></table></div>
|
|
677
680
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
678
681
|
<div class='collapsible level0' ><span class='json-to-html-label'>singly-linked-list</span></div>
|
|
679
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
682
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 push & pop</td><td>213.24</td><td>4.69</td><td>0.01</td></tr><tr><td>10,000 insertBefore</td><td>247.69</td><td>4.04</td><td>0.01</td></tr></table></div>
|
|
680
683
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
681
684
|
<div class='collapsible level0' ><span class='json-to-html-label'>max-priority-queue</span></div>
|
|
682
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
685
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 refill & poll</td><td>11.50</td><td>86.97</td><td>1.99e-4</td></tr></table></div>
|
|
683
686
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
684
687
|
<div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
|
|
685
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
688
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>223.30</td><td>4.48</td><td>0.08</td></tr><tr><td>1,000,000 shift</td><td>24.86</td><td>40.23</td><td>0.00</td></tr></table></div>
|
|
686
689
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
687
690
|
<div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
|
|
688
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
691
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>42.26</td><td>23.66</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>79.22</td><td>12.62</td><td>0.00</td></tr></table></div>
|
|
689
692
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
690
693
|
<div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
|
|
691
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
694
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 push</td><td>52.92</td><td>18.90</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>83.37</td><td>11.99</td><td>0.00</td></tr></table></div>
|
|
692
695
|
</div>
|
|
693
696
|
|
|
694
697
|
[//]: # (End of Replace Section)
|
package/benchmark/report.html
CHANGED
|
@@ -43,37 +43,40 @@
|
|
|
43
43
|
<body>
|
|
44
44
|
<div id="json-to-html"><div class="json-to-html-collapse clearfix 0">
|
|
45
45
|
<div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
|
|
46
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
46
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 add randomly</td><td>30.18</td><td>33.13</td><td>2.75e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>65.65</td><td>15.23</td><td>0.00</td></tr><tr><td>10,000 addMany</td><td>39.56</td><td>25.28</td><td>3.25e-4</td></tr><tr><td>10,000 get</td><td>26.57</td><td>37.63</td><td>1.92e-4</td></tr></table></div>
|
|
47
47
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
48
48
|
<div class='collapsible level0' ><span class='json-to-html-label'>binary-tree</span></div>
|
|
49
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
49
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000 add randomly</td><td>13.00</td><td>76.93</td><td>3.84e-4</td></tr><tr><td>1,000 add & delete randomly</td><td>16.11</td><td>62.06</td><td>3.76e-4</td></tr><tr><td>1,000 addMany</td><td>10.63</td><td>94.04</td><td>1.30e-4</td></tr><tr><td>1,000 get</td><td>18.24</td><td>54.84</td><td>5.04e-4</td></tr><tr><td>1,000 dfs</td><td>69.77</td><td>14.33</td><td>4.07e-4</td></tr><tr><td>1,000 bfs</td><td>54.49</td><td>18.35</td><td>4.96e-4</td></tr><tr><td>1,000 morris</td><td>37.10</td><td>26.96</td><td>2.35e-4</td></tr></table></div>
|
|
50
50
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
51
51
|
<div class='collapsible level0' ><span class='json-to-html-label'>bst</span></div>
|
|
52
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
52
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 add randomly</td><td>31.88</td><td>31.37</td><td>3.10e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>73.08</td><td>13.68</td><td>0.01</td></tr><tr><td>10,000 addMany</td><td>28.80</td><td>34.73</td><td>0.00</td></tr><tr><td>10,000 get</td><td>27.59</td><td>36.25</td><td>2.19e-4</td></tr></table></div>
|
|
53
|
+
</div><div class="json-to-html-collapse clearfix 0">
|
|
54
|
+
<div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
|
|
55
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 add randomly</td><td>70.97</td><td>14.09</td><td>0.00</td></tr><tr><td>100,000 add & 1000 delete randomly</td><td>82.03</td><td>12.19</td><td>0.01</td></tr><tr><td>100,000 getNode</td><td>59.75</td><td>16.74</td><td>0.00</td></tr></table></div>
|
|
53
56
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
54
57
|
<div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
|
|
55
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
58
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000 addVertex</td><td>0.10</td><td>9894.62</td><td>1.57e-6</td></tr><tr><td>1,000 addEdge</td><td>6.17</td><td>162.15</td><td>0.00</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>2.17e+4</td><td>4.06e-7</td></tr><tr><td>1,000 getEdge</td><td>23.50</td><td>42.56</td><td>0.00</td></tr><tr><td>tarjan</td><td>223.18</td><td>4.48</td><td>0.01</td></tr><tr><td>tarjan all</td><td>226.10</td><td>4.42</td><td>0.01</td></tr><tr><td>topologicalSort</td><td>186.20</td><td>5.37</td><td>0.02</td></tr></table></div>
|
|
56
59
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
57
60
|
<div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
|
|
58
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
61
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 add & pop</td><td>4.64</td><td>215.30</td><td>4.51e-5</td></tr><tr><td>10,000 fib add & pop</td><td>351.83</td><td>2.84</td><td>0.00</td></tr></table></div>
|
|
59
62
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
60
63
|
<div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
|
|
61
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
64
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 unshift</td><td>216.19</td><td>4.63</td><td>0.04</td></tr><tr><td>1,000,000 unshift & shift</td><td>164.84</td><td>6.07</td><td>0.02</td></tr><tr><td>1,000,000 insertBefore</td><td>325.14</td><td>3.08</td><td>0.07</td></tr></table></div>
|
|
62
65
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
63
66
|
<div class='collapsible level0' ><span class='json-to-html-label'>singly-linked-list</span></div>
|
|
64
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
67
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 push & pop</td><td>213.24</td><td>4.69</td><td>0.01</td></tr><tr><td>10,000 insertBefore</td><td>247.69</td><td>4.04</td><td>0.01</td></tr></table></div>
|
|
65
68
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
66
69
|
<div class='collapsible level0' ><span class='json-to-html-label'>max-priority-queue</span></div>
|
|
67
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
70
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>10,000 refill & poll</td><td>11.50</td><td>86.97</td><td>1.99e-4</td></tr></table></div>
|
|
68
71
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
69
72
|
<div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
|
|
70
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
73
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>223.30</td><td>4.48</td><td>0.08</td></tr><tr><td>1,000,000 shift</td><td>24.86</td><td>40.23</td><td>0.00</td></tr></table></div>
|
|
71
74
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
72
75
|
<div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
|
|
73
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
76
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>1,000,000 push</td><td>42.26</td><td>23.66</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>79.22</td><td>12.62</td><td>0.00</td></tr></table></div>
|
|
74
77
|
</div><div class="json-to-html-collapse clearfix 0">
|
|
75
78
|
<div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
|
|
76
|
-
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>
|
|
79
|
+
<div class="content"><table><tr><th>test name</th><th>time taken (ms)</th><th>executions per sec</th><th>sample deviation</th></tr><tr><td>100,000 push</td><td>52.92</td><td>18.90</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>83.37</td><td>11.99</td><td>0.00</td></tr></table></div>
|
|
77
80
|
</div>
|
|
78
81
|
|
|
79
82
|
</div>
|