Merge branch 'master' of gitlab.com:shockrahwow/csnotes
This commit is contained in:
commit
0e0e887c10
1
370/.gitignore
vendored
1
370/.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
*swp
|
*swp
|
||||||
|
*dat
|
||||||
|
27
370/notes/a-star.md
Normal file
27
370/notes/a-star.md
Normal 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)
|
@ -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
|
|
Loading…
Reference in New Issue
Block a user