Update for 06-11-21 15:00

This commit is contained in:
Tyler Perkins 2021-11-06 15:00:01 -04:00
parent 6af3d00da3
commit 8e284fc893
5 changed files with 52 additions and 2 deletions

View File

@ -2,8 +2,8 @@
Breadth First Search is an algorithm for searching a tree/graph for a node that Breadth First Search is an algorithm for searching a tree/graph for a node that
has a certain property. It starts at some chosen/implied root node, and has a certain property. It starts at some chosen/implied root node, and
traverses the entire tree/graph. Therefore, BFS is often performed in O(n) traverses the entire tree/graph. Therefore, BFS is often performed in O(|V| +
time. |E|) time.
== Algorithm == == Algorithm ==
@ -18,3 +18,7 @@ desired, a condition can be added for the desired node.
This method of traversal *does not* take advantage of the structure of a tree, This method of traversal *does not* take advantage of the structure of a tree,
and therefore does not have any of the lookup advantages of a [[binary_tree]]. and therefore does not have any of the lookup advantages of a [[binary_tree]].
=== Graph ===
Graph traversal is similar, however a list of visited nodes is required. This
is to ensure that we do not get stuck in loops

View File

@ -1 +1,21 @@
= Depth First Search = = Depth First Search =
Depth First Search is an algorithm for searching a tree/graph for a node that
has a certain property. It starts at some chosen/implied root node, and
traverses the entire tree/graph. Depth first search can also be thought of as a
type of prefix traversal
== Algorithm ==
=== Tree ===
The algorithm is often implemented as a recursive function. For each node in
the graph, the function checks if the node's value is the desired value, and if
not immediately calls itself upon that nodes children. Due to this the
algorithm searches as deeply as possible first and foremost, before then
searching the width of the tree.
=== Graph ===
Graph traversal is similar, however a list of of visited nodes is required.
This is to ensure that we do not get stuck in loops.

22
tech/Dijkstra.wiki Normal file
View File

@ -0,0 +1,22 @@
= Dijkstra's Algorithm =
Dijkstra's Algorithm was created by Edsger W. Dijkstra, and is an algorithm
for finding the *shortest path between any two nodes in a graph*. This can be
thought of finding the best route from point A to point B on something like a
road map. This is also called a *routing protocol*.
Dijkstra's Algorithm is a [[greedy_algorithm]].
== Algorithm ==
1) Choose some initial node to start from. Create a set of distances from this
node to all other nodes, and set their distance to infinite. This algorithm
will change these distances and attempt to find the fastest way to each node.
2) Mark all nodes as 'unvisited'. All of these nodes are part of a set.
3) For the current node, consider all of its unvisited neighbors and calculate
the distance from the start node to this node.
- For example, if the current node is marked as a distance of 6 from the
starting node, and the edge of neighbor _N1_ has a distance of 2, then
N1's distance is 6+2 = 8

View File

@ -24,8 +24,11 @@ Different ways to store and operate on data, with differing efficiency
== Common Algorithms == == Common Algorithms ==
=== Graph and Tree ===
* [[BFS]] * [[BFS]]
* [[DFS]] * [[DFS]]
* [[Dijkstra]]
== Sorting == == Sorting ==

View File

@ -0,0 +1 @@
= Greedy Algorithm =