This repository contains all the code related to Alpha Batch (DSA course in Java language) provided by Apna College taught by Shradhha Khapra (well known as microsoft wali didi).
The Alpha Batch is a comprehensive course that covers Data Structures and Algorithms (DSA) in Java for preparing for internships and placements. The course duration is 2.5 months and the course access is 1 year. The course includes:
- 400+ video lectures that cover all important DSA topics for interviews
- 300+ curated and solved questions that help you practice and master the concepts
- Live doubt sessions with the instructor and teaching assistants
- Certificate of completion after finishing the course
Shradhha Khapra is a software engineer at Microsoft and a passionate educator. She has been teaching DSA and coding for over 4 years and has helped thousands of students achieve their dream jobs at top companies like Google, Amazon, Facebook, etc. She is also popularly known as microsoft wali didi among her students and followers.
This repository contains the code files for each lecture and topic covered in the course. You can use this repository as a reference or a guide while following the course. You can also clone or fork this repository and run the code on your local machine or any online IDE. To clone this repository, use the following command:
git clone https://github.com/your_username/DSA_JAVA.gitThe course is divided into 10 modules, each covering a different aspect of DSA. The modules are:
- Module 1: Introduction to Java
- Basics of Java
- Data types and operators
- Control statements and loops
- Arrays and strings
- Functions and recursion
- Module 2: Object Oriented Programming in Java
- Classes and objects
- Constructors and methods
- Inheritance and polymorphism
- Abstraction and interfaces
- Encapsulation and access modifiers
- Module 3: Complexity Analysis
- Time and space complexity
- Big O notation and asymptotic analysis
- Best, average and worst case analysis
- Common complexity classes and examples
- Module 4: Searching and Sorting Algorithms
- Linear and binary search
- Selection, bubble and insertion sort
- Merge, quick and heap sort
- Counting, radix and bucket sort
- Module 5: Linked Lists
- Singly and doubly linked lists
- Circular and skip lists
- Operations on linked lists
- Problems on linked lists
- Module 6: Stacks and Queues
- Stack and queue implementation using arrays and linked lists
- Applications of stacks and queues
- Problems on stacks and queues
- Module 7: Trees
- Binary and binary search trees
- Balanced and self-balancing trees
- AVL, red-black and splay trees
- Heap and priority queue
- Tree traversal and operations
- Problems on trees
- Module 8: Graphs
- Graph representation using adjacency matrix and list
- Graph traversal using BFS and DFS
- Shortest path algorithms using Dijkstra and Bellman-Ford
- Minimum spanning tree algorithms using Prim and Kruskal
- Topological sorting and strongly connected components
- Problems on graphs
- Module 9: Hashing
- Hash function and hash table
- Collision resolution techniques
- Chaining and open addressing
- Linear and quadratic probing
- Double hashing and cuckoo hashing
- Problems on hashing
- Module 10: Dynamic Programming
- Introduction to dynamic programming
- Memoization and tabulation
- Optimal substructure and overlapping subproblems
- Problems on dynamic programming
For more information about the course, you can visit the following links: