Skip to content

Commit

Permalink
[graph] The getAllPathsBetween method in the [graph] provides a 'limi…
Browse files Browse the repository at this point in the history
…t' parameter to control this exponential time complexity method from entering into a deadlock state. The getMinPathsBetween method, by default, calls the Dijkstra method to avoid invoking the excessively high time complexity method, getAllPathsBetween.
  • Loading branch information
zrwusa committed Nov 4, 2023
1 parent 5af93dd commit 62e55b8
Show file tree
Hide file tree
Showing 6 changed files with 109 additions and 90 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ All notable changes to this project will be documented in this file.
- [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
- [`auto-changelog`](https://github.com/CookPete/auto-changelog)

## [v1.41.7](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)
## [v1.41.8](https://github.com/zrwusa/data-structure-typed/compare/v1.35.0...main) (upcoming)

### Changes

Expand Down
24 changes: 12 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -658,40 +658,40 @@ optimal approach to data structure design.
[//]: # (Start of Replace Section)
<div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>avl-tree</span></div>
<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>32.75</td><td>30.53</td><td>9.04e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>69.59</td><td>14.37</td><td>0.00</td></tr><tr><td>10,000 addMany</td><td>42.07</td><td>23.77</td><td>8.58e-4</td></tr><tr><td>10,000 get</td><td>27.87</td><td>35.88</td><td>5.71e-4</td></tr></table></div>
<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.29</td><td>33.01</td><td>3.64e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>68.10</td><td>14.68</td><td>0.00</td></tr><tr><td>10,000 addMany</td><td>39.54</td><td>25.29</td><td>4.07e-4</td></tr><tr><td>10,000 get</td><td>26.72</td><td>37.42</td><td>3.77e-4</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>binary-tree</span></div>
<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>12.84</td><td>77.86</td><td>1.92e-4</td></tr><tr><td>1,000 add & delete randomly</td><td>15.94</td><td>62.72</td><td>3.07e-4</td></tr><tr><td>1,000 addMany</td><td>10.59</td><td>94.45</td><td>1.67e-4</td></tr><tr><td>1,000 get</td><td>17.99</td><td>55.59</td><td>2.35e-4</td></tr><tr><td>1,000 dfs</td><td>70.17</td><td>14.25</td><td>8.83e-4</td></tr><tr><td>1,000 bfs</td><td>54.52</td><td>18.34</td><td>7.43e-4</td></tr><tr><td>1,000 morris</td><td>37.26</td><td>26.84</td><td>5.27e-4</td></tr></table></div>
<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>12.88</td><td>77.63</td><td>1.02e-4</td></tr><tr><td>1,000 add & delete randomly</td><td>15.90</td><td>62.88</td><td>1.08e-4</td></tr><tr><td>1,000 addMany</td><td>10.59</td><td>94.41</td><td>8.39e-5</td></tr><tr><td>1,000 get</td><td>18.01</td><td>55.53</td><td>1.95e-4</td></tr><tr><td>1,000 dfs</td><td>69.11</td><td>14.47</td><td>6.47e-4</td></tr><tr><td>1,000 bfs</td><td>54.42</td><td>18.38</td><td>4.20e-4</td></tr><tr><td>1,000 morris</td><td>37.14</td><td>26.92</td><td>2.27e-4</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>bst</span></div>
<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>33.25</td><td>30.07</td><td>4.20e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>73.76</td><td>13.56</td><td>8.39e-4</td></tr><tr><td>10,000 addMany</td><td>29.96</td><td>33.38</td><td>4.40e-4</td></tr><tr><td>10,000 get</td><td>28.53</td><td>35.05</td><td>3.89e-4</td></tr></table></div>
<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>28.48</td><td>35.11</td><td>2.29e-4</td></tr><tr><td>10,000 add & delete randomly</td><td>64.82</td><td>15.43</td><td>0.01</td></tr><tr><td>10,000 addMany</td><td>28.74</td><td>34.80</td><td>9.06e-4</td></tr><tr><td>10,000 get</td><td>27.38</td><td>36.52</td><td>1.82e-4</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>rb-tree</span></div>
<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>74.41</td><td>13.44</td><td>0.00</td></tr><tr><td>100,000 add & 1000 delete randomly</td><td>80.63</td><td>12.40</td><td>0.01</td></tr><tr><td>100,000 getNode</td><td>60.00</td><td>16.67</td><td>0.01</td></tr></table></div>
<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>72.30</td><td>13.83</td><td>0.00</td></tr><tr><td>100,000 add & 1000 delete randomly</td><td>81.37</td><td>12.29</td><td>0.01</td></tr><tr><td>100,000 getNode</td><td>59.48</td><td>16.81</td><td>9.29e-4</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>directed-graph</span></div>
<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>9856.40</td><td>1.79e-6</td></tr><tr><td>1,000 addEdge</td><td>6.21</td><td>160.96</td><td>8.40e-4</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>2.16e+4</td><td>3.85e-7</td></tr><tr><td>1,000 getEdge</td><td>22.43</td><td>44.57</td><td>0.00</td></tr><tr><td>tarjan</td><td>219.40</td><td>4.56</td><td>0.03</td></tr><tr><td>tarjan all</td><td>214.21</td><td>4.67</td><td>0.00</td></tr><tr><td>topologicalSort</td><td>172.46</td><td>5.80</td><td>0.00</td></tr></table></div>
<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>9786.77</td><td>5.56e-7</td></tr><tr><td>1,000 addEdge</td><td>6.02</td><td>166.04</td><td>1.27e-4</td></tr><tr><td>1,000 getVertex</td><td>0.05</td><td>2.18e+4</td><td>3.02e-7</td></tr><tr><td>1,000 getEdge</td><td>23.41</td><td>42.71</td><td>0.00</td></tr><tr><td>tarjan</td><td>223.51</td><td>4.47</td><td>0.01</td></tr><tr><td>tarjan all</td><td>224.89</td><td>4.45</td><td>0.00</td></tr><tr><td>topologicalSort</td><td>181.90</td><td>5.50</td><td>0.00</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>heap</span></div>
<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.63</td><td>215.75</td><td>4.05e-5</td></tr><tr><td>10,000 fib add & pop</td><td>355.10</td><td>2.82</td><td>0.00</td></tr></table></div>
<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.62</td><td>216.33</td><td>3.06e-5</td></tr><tr><td>10,000 fib add & pop</td><td>351.41</td><td>2.85</td><td>0.00</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>doubly-linked-list</span></div>
<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>210.62</td><td>4.75</td><td>0.05</td></tr><tr><td>1,000,000 unshift & shift</td><td>176.63</td><td>5.66</td><td>0.04</td></tr><tr><td>1,000,000 insertBefore</td><td>288.55</td><td>3.47</td><td>0.05</td></tr></table></div>
<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>214.84</td><td>4.65</td><td>0.04</td></tr><tr><td>1,000,000 unshift & shift</td><td>167.11</td><td>5.98</td><td>0.04</td></tr><tr><td>1,000,000 insertBefore</td><td>335.78</td><td>2.98</td><td>0.07</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>singly-linked-list</span></div>
<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>232.24</td><td>4.31</td><td>0.03</td></tr><tr><td>10,000 insertBefore</td><td>245.58</td><td>4.07</td><td>0.00</td></tr></table></div>
<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>212.53</td><td>4.71</td><td>0.01</td></tr><tr><td>10,000 insertBefore</td><td>243.94</td><td>4.10</td><td>0.00</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>max-priority-queue</span></div>
<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.62</td><td>86.09</td><td>2.24e-4</td></tr></table></div>
<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.43</td><td>87.50</td><td>1.84e-4</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>deque</span></div>
<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.78</td><td>4.47</td><td>0.05</td></tr><tr><td>1,000,000 shift</td><td>25.79</td><td>38.78</td><td>0.00</td></tr></table></div>
<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>216.07</td><td>4.63</td><td>0.05</td></tr><tr><td>1,000,000 shift</td><td>24.97</td><td>40.05</td><td>0.00</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>queue</span></div>
<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>44.27</td><td>22.59</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>79.63</td><td>12.56</td><td>0.00</td></tr></table></div>
<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.57</td><td>23.49</td><td>0.01</td></tr><tr><td>1,000,000 push & shift</td><td>79.94</td><td>12.51</td><td>9.99e-4</td></tr></table></div>
</div><div class="json-to-html-collapse clearfix 0">
<div class='collapsible level0' ><span class='json-to-html-label'>trie</span></div>
<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>49.29</td><td>20.29</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>95.55</td><td>10.47</td><td>0.01</td></tr></table></div>
<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>54.02</td><td>18.51</td><td>0.00</td></tr><tr><td>100,000 getWords</td><td>82.83</td><td>12.07</td><td>0.00</td></tr></table></div>
</div>
[//]: # (End of Replace Section)
50 changes: 25 additions & 25 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "data-structure-typed",
"version": "1.41.7",
"version": "1.41.9",
"description": "Data Structures of Javascript & TypeScript. Binary Tree, BST, Graph, Heap, Priority Queue, Linked List, Queue, Deque, Stack, AVL Tree, Tree Multiset, Trie, Directed Graph, Undirected Graph, Singly Linked List, Doubly Linked List, Max Heap, Max Priority Queue, Min Heap, Min Priority Queue.",
"main": "dist/cjs/src/index.js",
"module": "dist/mjs/src/index.js",
Expand Down Expand Up @@ -64,18 +64,18 @@
"@typescript-eslint/eslint-plugin": "^6.7.4",
"@typescript-eslint/parser": "^6.7.4",
"auto-changelog": "^2.4.0",
"avl-tree-typed": "^1.41.6",
"avl-tree-typed": "^1.41.8",
"benchmark": "^2.1.4",
"binary-tree-typed": "^1.41.6",
"bst-typed": "^1.41.6",
"binary-tree-typed": "^1.41.8",
"bst-typed": "^1.41.8",
"dependency-cruiser": "^14.1.0",
"eslint": "^8.50.0",
"eslint-config-prettier": "^9.0.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-import-resolver-typescript": "^3.6.1",
"eslint-plugin-import": "^2.28.1",
"fast-glob": "^3.3.1",
"heap-typed": "^1.41.6",
"heap-typed": "^1.41.8",
"istanbul-badges-readme": "^1.8.5",
"jest": "^29.7.0",
"prettier": "^3.0.3",
Expand Down
Loading

0 comments on commit 62e55b8

Please sign in to comment.