# 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^2 + E)

## A\*

Worst case is the same as Dijkstra's time

O(V^2 + E)


