This repository contains the laboratory work for the ALGO-LAB course. Each lab focuses on different aspects of algorithms and data structures, providing a comprehensive understanding of the field.
- Topics: The importance of algorithms, algorithm analysis, big O notation.
- Algorithms: Basic sorting algorithms (Bubble Sort, Selection Sort).
- Key Concepts: Time complexity, space complexity.
- Topics: Introduction to data structures, types of data structures.
- Algorithms: Array vs List.
- Key Concepts: Memory allocation.
- Topics: Understanding function, matplotlib.
- Topics: Different searching techniques.
- Algorithms: Binary Search, Linear Search.
- Key Concepts: Search efficiency.
- Topics: Advanced sorting techniques.
- Algorithms: Quick Sort, Merge Sort.
- Key Concepts: Divide and conquer.
- Topics: Understanding hashing functions.
- Algorithms: Hash table implementations.
- Key Concepts: Collision resolution.
- Topics: Binary Trees, Binary Search Trees (BST).
- Algorithms: Traversals (Preorder, Inorder, Postorder).
- Key Concepts: Tree height and balance.
- Topics: Introduction to graphs, representations.
- Algorithms: Depth First Search (DFS), Breadth First Search (BFS).
- Key Concepts: Graph traversal techniques.
- Topics: Principles of dynamic programming.
- Algorithms: Fibonacci sequence, Knapsack problem.
- Key Concepts: Memoization, state space.
- Topics: Overview of greedy techniques.
- Algorithms: Activity selection, Huffman coding.
- Key Concepts: Optimal substructure.
- Topics: Introduction to advanced structures.
- Algorithms: AVL trees, B-trees.
- Key Concepts: Balancing and efficiency.
- Topics: Analyzing algorithm complexities.
- Algorithms: Case studies on various algorithms.
- Key Concepts: Worst-case, average-case analysis.
Understanding these algorithms and data structures is crucial for efficiently solving problems in computer science and software engineering.