Merge branch 'master' of gitlab.com:shockrahwow/csnotes

This commit is contained in:
shockrahwow 2019-04-15 19:13:27 -07:00
commit 0e0e887c10
3 changed files with 28 additions and 32 deletions

1
370/.gitignore vendored
View File

@ -1 +1,2 @@
*swp *swp
*dat

27
370/notes/a-star.md Normal file
View File

@ -0,0 +1,27 @@
# A\* Pathfinding
There are 3 main values usedd in reference to A\*:
```
f = how promisiing a new location is
g = distance from origin
h = estimate distance to goal
f = g + h
```
For a grid space our `h` is calculated by two straight shots to the goal from the current location(ignore barriers).
The grid space `g` value is basiccally the number of steps we've taken from the origin.
We maintain a list of potential nodes only, so if one of the seeking nodes gets us stuck we can freely remove that, because it succs.
# Time & Space Commplexities
## Best-First Search
Time: O(VlogV + E)
## Dijkstra's
O(V)
## A\*
O(V^2 = E)

View File

@ -1,32 +0,0 @@
# Syntax tree in disguise
class Node:
def __init__(self, symbol=None, leaf=False, children={}):
# root node doesn't need any actual data
self.symbol = None
self.leaf = leaf
# {key=char : value=Node}
self.children = children
class Trie:
def __init__(self):
# root should contain every letter so that we can pick our thing
root = Node()
#wrapper func
def traverse(self, func, phrase, _node):
# wew lad
def func(_phrase, _node):
return func(phrase)
@traverse
def insert(self, phrase, node):
pass
@traverse
def remove(self, phrase, node):
pass
@traverse
def checkPhrase(self, phrase):
pass