Skip to content

m-spangenberg/notes_ads

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

Algorithms and Data Structures

Introduction to Algorithms

  • What is an Algorithm?
  • Characteristics of Algorithms
  • Importance of Algorithms in Problem Solving
  • Examples of Algorithms in Everyday Life

Complexity Analysis

  • Time Complexity
    • Big O Notation
    • Big Theta and Big Omega
  • Space Complexity
  • Analyzing Algorithms
  • Best, Worst, and Average Case Analysis

Basic Data Structures

Arrays

  • Definition and Properties
  • Operations: Access, Insertion, Deletion
  • Dynamic Arrays

Linked Lists

  • Singly Linked Lists
  • Doubly Linked Lists
  • Circular Linked Lists
  • Operations and Applications

Stacks

  • Definition and Properties
  • Stack Operations
  • Applications of Stacks

Queues

  • Definition and Properties
  • Types of Queues: Simple, Circular, Priority
  • Queue Operations
  • Applications of Queues

Trees

Binary Trees

  • Definition and Properties
  • Binary Tree Traversals
    • Inorder, Preorder, Postorder
  • Binary Search Trees (BST)
    • Operations: Insertion, Deletion, Search
    • Balanced vs. Unbalanced BST

Heaps

  • Definition and Properties
  • Min-Heaps and Max-Heaps
  • Heap Operations
  • Applications: Priority Queues

Advanced Trees

  • AVL Trees
  • Red-Black Trees
  • B-Trees and B+ Trees
  • Tries and Suffix Trees

Graphs

  • Definition and Terminology
  • Representations: Adjacency Matrix, Adjacency List
  • Graph Traversal Algorithms
    • Depth-First Search (DFS)
    • Breadth-First Search (BFS)
  • Shortest Path Algorithms
    • Dijkstra’s Algorithm
    • Bellman-Ford Algorithm
    • A* Algorithm
  • Minimum Spanning Tree Algorithms
    • Kruskal’s Algorithm
    • Prim’s Algorithm
  • Network Flow Algorithms

Sorting Algorithms

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • Merge Sort
  • Quick Sort
  • Heap Sort
  • Counting Sort
  • Radix Sort
  • Bucket Sort
  • Comparison of Sorting Algorithms

Searching Algorithms

  • Linear Search
  • Binary Search
  • Interpolation Search
  • Exponential Search
  • Search in Unsorted and Sorted Data

Hashing

  • Hash Functions
  • Hash Tables
  • Collision Resolution Techniques
    • Chaining
    • Open Addressing: Linear Probing, Quadratic Probing, Double Hashing
  • Applications of Hashing

Dynamic Programming

  • Principles of Dynamic Programming
  • Memoization vs. Tabulation
  • Common Dynamic Programming Problems
    • Fibonacci Sequence
    • Knapsack Problem
    • Longest Common Subsequence
    • Matrix Chain Multiplication

Greedy Algorithms

  • Principles of Greedy Algorithms
  • Common Greedy Problems
    • Activity Selection
    • Huffman Coding
    • Kruskal’s and Prim’s Algorithms Revisited

Divide and Conquer

  • Principles of Divide and Conquer
  • Common Divide and Conquer Problems
    • Merge Sort and Quick Sort Revisited
    • Binary Search Revisited
    • Closest Pair of Points

Backtracking

  • Principles of Backtracking
  • Common Backtracking Problems
    • N-Queens Problem
    • Hamiltonian Cycle
    • Subset Sum Problem

Advanced Algorithms

String Algorithms

  • Pattern Matching
    • Naive String Matching
    • Knuth-Morris-Pratt (KMP) Algorithm
    • Boyer-Moore Algorithm
  • Suffix Arrays and Trees

Computational Geometry

  • Convex Hull
  • Closest Pair of Points Revisited
  • Line Intersection

Number Theoretic Algorithms

  • Prime Number Algorithms
  • Greatest Common Divisor (GCD)
  • Modular Arithmetic
  • Cryptographic Algorithms

Parallel and Distributed Algorithms

  • Principles of Parallel Algorithms
  • Parallel Sorting and Searching
  • Distributed Consensus Algorithms
    • Paxos Revisited
    • Raft Revisited

Approximation Algorithms

  • Principles of Approximation
  • Approximation Algorithms for NP-Hard Problems
    • Traveling Salesman Problem (TSP)
    • Vertex Cover
    • Set Cover

Randomized Algorithms

  • Principles of Randomized Algorithms
  • Monte Carlo and Las Vegas Algorithms
  • Randomized Algorithms for Sorting and Searching
  • Applications and Analysis

Machine Learning Algorithms

  • Overview of Machine Learning
  • Common Machine Learning Algorithms
    • Linear Regression
    • Decision Trees
    • k-Nearest Neighbors (k-NN)
    • Support Vector Machines (SVM)
    • Neural Networks
  • Evaluation and Optimization

Case Studies and Applications

  • Algorithm Design in Real-World Systems
    • Google’s PageRank
    • Facebook’s Graph Search
    • Amazon’s Recommendation System
  • Data Structures in Real-World Applications
    • Twitter’s Timeline
    • Netflix’s Streaming Service

Advanced Topics and Research Directions

  • Current Trends in Algorithm Research
  • Quantum Algorithms
  • Algorithms in Big Data and Cloud Computing
  • Open Problems and Future Directions

About

My notes on Algorithms and Data Structures

Resources

Stars

Watchers

Forks