# Algorithms and Data Structures
# Graph Algorithms
Graph theory is the study of graphs, which are mathematical structures used to model pairwise relations between objects. A graph in this context is made up of vertices (also called nodes or points) which are connected by edges (also called links or lines). A distinction is made between undirected graphs, where edges link two vertices symmetrically, and directed graphs, where edges link two vertices asymmetrically. [Wikipedia (opens new window)]
Learn more about graph algorithms here.
- Breadth-first search (BFS)
- Depth-first search (DFS)
- Dijkstra's Algorithm (Shortest Path Problem)
- Kruskal's Algorithm (Minimum Spanning Tree)
- Prim's Algorithm (Minimum Spanning Tree)
- Topological Sort
# Sorting algorithms
A sorting algorithm is an algorithm that puts elements of a list in a certain order. [Wikipedia (opens new window)]
Learn more about sorting algorithms here.
- Bogo Sort
- Bubble Sort
- Bucket Sort
- Counting Sort
- Quicksort
- Binary Quicksort
- Radix Sort (LSD)
- Selection Sort
# Hash Tables
A hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values. A hash table uses a hash function to compute an index, also called a hash code, into an array of buckets or slots, from which the desired value can be found. [Wikipedia (opens new window)]
Learn more about hash tables here.
# Tree Data Structures
A tree is a widely used abstract data type (ADT) that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes. [Wikipedia (opens new window)]
Learn more about trees here.