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

  1. Fundamentals of Algorithms and Data Structures
  2. Complexity Analysis (efficiency measures, Big O notation, machine models)
  3. Data Structures for Sequences (arrays, lists, stacks, queues)
  4. Hashing (chaining, universal hashing, open addressing, perfect hashing)
  5. Sorting Algorithms (SelectionSort, InsertionSort, MergeSort, QuickSort, lower bounds for comparison-based sorting, order selection, RadixSort, external sorting)
  6. Priority Queues (binary heaps, binomial heaps)
  7. Search Structures (binary search trees, AVL trees, (a,b)-trees)
  8. Graphs (representations, BFS and DFS traversal, connectivity, topological sorting, shortest paths, minimum spanning trees)
  9. Pattern Matching (naive search, KMP algorithm)
  10. Optional: Data Compression (Huffman codes, Lempel-Ziv algorithm)