Useful Links
Mathematics
Discrete Mathematics
Algorithms and Complexity
Algorithm Design Techniques
Greedy Algorithms
Description and Characteristics
Examples of Greedy Algorithms
Activity Selection Problem
Kruskal's Algorithm for Minimum Spanning Tree
Huffman Coding
Proof of Correctness
Greedy Choice Property
Optimal Substructure
Applications and Limitations
Divide and Conquer
Description and Characteristics
Examples of Divide and Conquer Algorithms
Merge Sort
Quick Sort
Binary Search
Designing Divide and Conquer Algorithms
Evaluating Performance
Dynamic Programming
Description and Characteristics
Examples of Dynamic Programming Algorithms
Fibonacci Sequence
Longest Common Subsequence
Knapsack Problem
Identifying Overlapping Subproblems
Memoization vs Tabulation
Applications and Optimizations
Computational Complexity
Complexity Classes
Definitions and Differences
P (Polynomial Time)
NP (Non-deterministic Polynomial Time)
NP-complete
NP-hard
Famous Problems
Traveling Salesman Problem
Knapsack Problem
Boolean Satisfiability Problem (SAT)
Reductions and Completeness
Concept of Reduction
Cook-Levin Theorem
Analysis of Algorithms
Time Complexity
Asymptotic Notation (Big O, Theta, Omega)
Analyzing Loops, Conditionals, and Recursive Relations
Space Complexity
Concepts and Importance
Examples with Algorithms
Trade-offs between Time and Space
Advanced Topics
Approximation Algorithms
Definition and Purpose
Approximation Ratio
Examples
Randomized Algorithms
Types (Las Vegas vs Monte Carlo)
Applications and Use Cases
Heuristics
Definition and Role in Problem Solving
Common Heuristic Techniques
Cryptography
Classical Cryptography
Historical Background
Symmetric Key Cryptography
Caesar Cipher
Vigenère Cipher
Concepts of Encryption and Decryption
Public Key Cryptography
Principles and Innovations
RSA Algorithm
Key Generation
Encryption and Decryption Process
Mathematical Foundation
Digital Signatures
Definition and Importance
Algorithms and Protocols
Hash Functions
Definition and Properties
Cryptographic vs Non-Cryptographic Hash Functions
Applications
Data Integrity
Cryptographic Protocols
Common Hash Functions
MD5
SHA Family
Modern Cryptographic Techniques
Elliptic Curve Cryptography
Basics and Advantages
Quantum Cryptography
Potential and Challenges
Blockchain and Cryptography
Role of Cryptography in Blockchain Technologies
4. Number Theory
First Page
6. Boolean Algebra