Algorithms
In the algorithms and data structures course (IN0007), I studied foundational concepts in computer science, including complexity analysis, data structures, and algorithmic techniques. Due to the closure of the Bitbucket server, the code is temporarily unavailable.
Course Content Overview
- Fundamentals of Algorithms and Data Structures
- Complexity Analysis (efficiency measures, Big O notation, machine models)
- Data Structures for Sequences (arrays, lists, stacks, queues)
- Hashing (chaining, universal hashing, open addressing, perfect hashing)
- Sorting Algorithms (SelectionSort, InsertionSort, MergeSort, QuickSort, lower bounds for comparison-based sorting, order selection, RadixSort, external sorting)
- Priority Queues (binary heaps, binomial heaps)
- Search Structures (binary search trees, AVL trees, (a,b)-trees)
- Graphs (representations, BFS and DFS traversal, connectivity, topological sorting, shortest paths, minimum spanning trees)
- Pattern Matching (naive search, KMP algorithm)
- Optional: Data Compression (Huffman codes, Lempel-Ziv algorithm)