Cryptography, Search Algorithms, Big O Notation, P vs. NP, Statistics, Theory of Automata, Boolean Logic, Language Theory, Programming Paradigms, Hardware Design, Complier Design, Software Engineering and more... 3
this character may be different lengths • C style char is 1 byte (most common systems do this) • Full unicode requires 21 bits to store a single code point (ie a single symbol) 8
Example: binary32, binary with 8 bits, stores values up to ~3.402823 × 10^38 • Because of math, it has precision issues at certain points • But smaller storage for number values 9
• Typically using software implementations as opposed to hardware implementations • Some are provided by the language, some by a framework, some in other ways • These are useful for particular scenarios and typically aren't general purpose 12
contains a value field and a link to the next node • Used to represent graphs and trees, think a series of GPS coordinates that show a path walked for a map • Linked Lists can be more complicated, doubly linked lists, circular linked lists • Commonly used to represent other more complex data structures 13
a (sorta) unique key • Value is taken, a hash function is used, then value is stored at the index in the array equal to the hash output • Searching for a value is fast (1 operation), Searching for an index is fast (1 operation), Insert and Delete is generally fast 16
representation of that value • This operation is one way • Most hash functions have collisions, ie certain multiple values will produce identical hash outputs • md5, sha, etc are hash functions 17
along a pivot • Puts everything higher than the pivot above the pivot, everything lower than the pivot, below • Selects a new pivot and repeat • Developed in 1959, still used today • No knowledge of anything, this is your algorithm 23
two values • If not sorted, swap the items • Go to the next position and repeat • Repeat process through the list until items sorted, ie no swaps occur • Super easy to implement 25
a shortest path tree • For a given source find the shortest path to every other node • For a given source find the shortest path to a destination node • Used in networking algorithms, variations used in Google Maps, AI research, etc 32
sum of several terms, if there is one with largest growth rate, it can be kept, and all others omitted. • If f(x) is a product of several factors, any constants (terms in the product that do not depend on x) can be omitted. 34
work, Public Domain, https://commons.wikimedia.org/w/index.php? curid=2245162 • Binary Tree Image - By Derrick Coetzee - Own work, Public Domain, https://commons.wikimedia.org/w/index.php? curid=488419 • Quicksort Animation - By en:User:RolandH, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php? curid=1965827 • Bubblesort Animation - By Swfung8 - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php? curid=14953478 • Depth First Search Image - By Alexander Drichel - Own work, CC BY-SA 3.0, https://commons.wikimedia.org/w/ index.php?curid=3791979 • Breadth First Search - By Alexander Drichel - Own work, CC BY 3.0, https://commons.wikimedia.org/w/index.php? curid=3786735 • Big O Notation Chart - By Cmglee - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php? curid=50321072 51