Skip to content

Latest commit

 

History

174 提交

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

仓库 files navigation

Data Structures and Algorithms (DSA) Syllabus

1. Introduction to DSA (done)

  • Importance of Data Structures and Algorithms (done)
  • Time and Space Complexity Analysis (Asymptotic Notations, Big-O) (done)
  • Types of Algorithmic Paradigms
    • Divide and Conquer
    • Greedy Algorithms
    • Dynamic Programming
    • Backtracking
    • Branch and Bound

2. Linear Data Structures

2.1 Arrays (done)

  • Definition and Types of Arrays (1D, 2D, Multi-dimensional)
  • Array Operations: Insertion, Deletion, Access, Update
  • Dynamic Arrays (ArrayList in Java, Vectors in C++)

2.2 Strings (need to revise!)

  • Definition and Basics of String
  • String Operations: Concatenation, Substring, Length, 搜索, Comparison
  • String Algorithms: String Reversal, Palindrome, Anagram Detection, Character Frequency Count, String Matching

2.3 Linked Lists (done)

  • Singly Linked List: Insertion, Deletion, Traversal
  • Doubly Linked List: Insertion, Deletion, Traversal
  • Circular Linked List
  • Applications of Linked Lists (Queue Implementation, Polynomial Representation)

2.4 Stacks (done)

  • Definition and Operations: Push, Pop, Peek
  • Stack Implementation: STL(Standard Template Library)/Collection Framework, Array-based, Linked List-based
  • Applications (Expression Evaluation, Balancing Parentheses, Recursion)

2.5 Queues (in progress...)

  • Definition and Operations: Enqueue, Dequeue, Front, Rear
  • Types of Queues: Simple Queue, Circular Queue, Double Ended Queue (Deque)
  • Applications (Scheduling, Resource Management)

3. Non-Linear Data Structures

3.1 Trees

  • Binary Tree: Structure, Operations (Insertion, Deletion, Traversal)
  • Binary 搜索 Tree (BST): Insertion, Deletion, 搜索
  • Balanced Trees: AVL Tree, Red-Black Tree
  • Heap Trees: Min-Heap, Max-Heap, Heap Operations (Insert, Delete)
  • Tree Traversals: Pre-order, In-order, Post-order, Level-order
  • Applications (Expression Trees, Decision Trees, Priority Queues)

3.2 Graphs

  • Graph Representation: Adjacency Matrix, Adjacency List
  • Graph Traversals: Depth-First 搜索 (DFS), Breadth-First 搜索 (BFS)
  • Shortest Path Algorithms: Dijkstra’s, Bellman-Ford, Floyd-Warshall
  • Minimum Spanning Tree: Prim’s, Kruskal’s Algorithms
  • Topological Sort and Cycle Detection
  • Applications (网络 Routing, Social 网络s, GPS Navigation)

3.3 Hash-based Data Structures

  • Hashing: Hash Functions, Collision Resolution
  • Hash Table: Chaining, Open Addressing (Linear Probing, Quadratic Probing, Double Hashing)
  • Applications (Dictionary, Database Indexing)

4. Advanced Data Structures

4.1 Trie (Prefix Tree)

  • Structure and Operations (Insert, 搜索, Delete)
  • Applications (Autocomplete, IP Routing, Dictionary)

4.2 Segment Tree

  • Structure and Operations
  • Range Queries and Updates
  • Applications (Range Sum Queries, Range Minimum Queries)

4.3 Fenwick Tree (Binary Indexed Tree)

  • Structure and Operations
  • Applications (Prefix Sum Queries)

4.4 Disjoint Set Union (Union-Find)

  • Operations: Union, Find
  • Applications (网络 Connectivity, Kruskal’s Algorithm)

5. Algorithms

5.1 Sorting Algorithms

  • Basic Sorting: Bubble Sort, Selection Sort, Insertion Sort
  • Efficient Sorting: Merge Sort, Quick Sort, Heap Sort
  • Linear Sorting: Radix Sort, Counting Sort, Bucket Sort
  • Applications (Sorting Large Data, External Sorting)

5.2 搜索ing Algorithms

  • Linear 搜索
  • Binary 搜索
  • Interpolation 搜索
  • Exponential 搜索
  • Applications (Finding Elements in Sorted Arrays)

5.3 Graph Algorithms

  • DFS (Depth-First 搜索)
  • BFS (Breadth-First 搜索)
  • Dijkstra’s Algorithm for Shortest Path
  • Bellman-Ford Algorithm
  • Floyd-Warshall Algorithm for All-Pairs Shortest Paths
  • Prim’s Algorithm and Kruskal’s Algorithm for Minimum Spanning Tree

5.4 Dynamic Programming

  • Knapsack Problem (0/1 Knapsack, Fractional Knapsack)
  • Longest Common Subsequence (LCS)
  • Longest Increasing Subsequence (LIS)
  • Matrix Chain Multiplication
  • Fibonacci Series (Recursive, Iterative, DP)
  • Applications (Optimal Substructure, Overlapping Subproblems)

5.5 Greedy Algorithms

  • 动态 Selection
  • Huffman Encoding
  • Fractional Knapsack
  • Job Sequencing with Deadlines
  • Applications (Optimal Solutions with Local Choices)

5.6 Backtracking

  • N-Queens Problem
  • Sudoku Solver
  • Subset Sum Problem
  • Hamiltonian Path and Cycle
  • Graph Coloring
  • Applications (Puzzles, Optimized 搜索 Problems)

5.7 Divide and Conquer

  • Merge Sort
  • Quick Sort
  • Strassen’s Matrix Multiplication
  • Applications (Divide Large Problems into Simpler Subproblems)

5.8 Bit Manipulation

  • Basic Bitwise Operations (AND, OR, XOR, NOT, Left/Right Shift)
  • Applications (Checking Odd/Even, Counting Set Bits, Bit Masking)

5.9 Sliding Window Technique

  • Fixed Size Window: Max/Min Sum, Subarray Problems
  • Variable Size Window: Longest Substring Problems

5.10 Two Pointer Technique

  • Pair Problems (Find Pair with Given Sum, Triplet Sum)
  • Sorted Array Problems (Find Specific Elements)

6. Applications of Data Structures and Algorithms

  • File Systems
  • Databases
  • 网络 Routing Algorithms
  • Operating Systems (Memory Management, Process Scheduling)
  • Compilers (Syntax Tree, Parsing)
  • Web Crawling
  • Machine Learning (Data Preprocessing, Decision Trees)

7. I'm Preparing from (recommended):

关于

This repository is dedicated to my learning journey of Data Structure and Algorithm with Java

Topics

Resources

Stars

2 stars

关注者

1 watching

复刻s

发布

贡献者

Languages