Finish notes for Chapter 6, add titles to chapters

This commit is contained in:
Joseph Ferano 2023-01-24 13:46:16 +07:00
parent e3094b7fb0
commit f8a5ed669d

View File

@ -3,7 +3,7 @@
#+STARTUP: overview #+STARTUP: overview
#+OPTIONS: ^:{} #+OPTIONS: ^:{}
* Chapter 1 * Chapter 1 - Introduction
** 1.1 Robots ** 1.1 Robots
@ -70,7 +70,7 @@ structures. These fundamental structures include;
** 1.5-1.6 War Story about Psychics ** 1.5-1.6 War Story about Psychics
* Chapter 2 * Chapter 2 - Algorithm Analyses
** 2.1 RAM Model of Computation ** 2.1 RAM Model of Computation
@ -264,7 +264,7 @@ Some advanced stuff
There are also limits and dominance relations There are also limits and dominance relations
* Chapter 3 * Chapter 3 - Data Structures
** 3.1 Contiguous vs Linked Data Structures ** 3.1 Contiguous vs Linked Data Structures
@ -531,7 +531,7 @@ printf("Final: %s\n", str);
| After: | sirhC | si | eman | yM | | After: | sirhC | si | eman | yM |
| Final: | Chris | is | name | My | | Final: | Chris | is | name | My |
* Chapter 4 * Chapter 4 - Sorting and Searching
** 4.1 Applications of Sorting ** 4.1 Applications of Sorting
@ -959,7 +959,7 @@ relations.
It is an equation that is defined in terms of itself, so I guess recursive. It is an equation that is defined in terms of itself, so I guess recursive.
Fibonacci is a good example F_{n} = F_{n-1} + F_{n-2}... Fibonacci is a good example F_{n} = F_{n-1} + F_{n-2}...
* Chapter 5 * Chapter 5 - Graph Traversal
** 5.1 Graphs ** 5.1 Graphs
@ -1202,7 +1202,7 @@ Directed Acyclic Graphs (DAGs). We can also check if a DAG is strongly
connected, meaning that we won't run into any dead ends since we cannot connected, meaning that we won't run into any dead ends since we cannot
backtrack. However, these graphs can be partitioned. backtrack. However, these graphs can be partitioned.
* Chapter 6 * Chapter 6 - Weighted Graph Algorithms
** 6.1 Minimum Spanning Trees ** 6.1 Minimum Spanning Trees
@ -1235,16 +1235,18 @@ weighted graphs the shortest path might have many more edges. Dijstra's
algorithm can help us find the shortest path in a weighted path. It runs in algorithm can help us find the shortest path in a weighted path. It runs in
O(n^{2}) time. One caveat is that it does not work with negative weighted edges. O(n^{2}) time. One caveat is that it does not work with negative weighted edges.
#+begin_src C :includes stdio.h stdlib.h
#+end_src
Another problem in this space is the all-pairs shortest path, and for this we Another problem in this space is the all-pairs shortest path, and for this we
would use the O(n^{3}) Floyd-Warshall algorithm which uses an adjacency matrix would use the O(n^{3}) Floyd-Warshall algorithm which uses an adjacency matrix
instead since we needed to construct one anyway to track all the possible pairs. instead since we needed to construct one anyway to track all the possible pairs.
It's a useful algorithm for figuring out /transitive closure/ which is a fancy way It's a useful algorithm for figuring out /transitive closure/ which is a fancy way
of asking if some vertices are reachable from a node. of asking if some vertices are reachable from a node.
*** TODO Dijstra's
#+begin_src C :includes stdio.h stdlib.h
#+end_src
** 6.4 War Story ** 6.4 War Story
Kids are probably young to know what the author is even talking about with these Kids are probably young to know what the author is even talking about with these
@ -1252,3 +1254,22 @@ phone codes.
** 6.5 Network Flows and Bipartite Matching ** 6.5 Network Flows and Bipartite Matching
Bipartite matching is where no two edges share a vertex. There are also residual
flow graphs which are useful for network bandwidth optimization. Flow algorithms
generally solve problems related to edge and vertex connectivity. Edmonds and
Karp runs at O(n^{3}).
*** TODO Network Flow
** 6.6 Design Graphs, Not Algorithms
Modeling problems as graphs is useful for a variety of applications; pathfinding
in games, DNA sequencing, smallest set of non-overlapping rectangles in a plain,
filename shortening, line segmentation for optical character-recognition, and
the list goes on.
* Chapter 7 - Combinatorial Search and Heuristic Methods
** 7.1 Backtracking