About This Course

This Advanced course in algorithms covering a broad range of fundamental concepts that are crucial for understanding the core principles of computer science and software engineering. Here's a list of the some important algorithms categories that we will cover in this course:

Note: the following is initial list (Draft) and will be updated as we go in this course.

Sorting Algorithms (we will pick 5 sorting algorithms)

  • Bubble Sort: Introduction to sorting, demonstrating basic algorithm design and its inefficiencies.
  • Insertion Sort: A simple algorithm that works well for small or partially sorted arrays.
  • Merge Sort: An efficient, stable, comparison-based, divide and conquer sorting algorithm.
  • Quick Sort: A highly efficient sorting algorithm that uses partitioning to recursively divide and conquer.
  • Heap Sort: This algorithm sorts an array by using the properties of a heap data structure.

Search Algorithms

  • Linear Search: The simplest search algorithm; a basic demonstration of searching.
  • Binary Search: A fast algorithm for finding a target value within a sorted array.
  • Depth-First Search (DFS): An algorithm for traversing or searching tree or graph data structures, starting at the root and exploring as far as possible along each branch before backtracking.
  • Breadth-First Search (BFS): An algorithm for searching a tree or graph that explores all of the neighbor nodes at the present depth prior to moving on to the nodes at the next depth level.

Graph Algorithms

Data Structure Algorithms

  • Binary Search Tree (BST) Operations: Insertion, deletion, and search operations in a BST.
  • Balancing Trees: Algorithms like AVL or Red-Black Tree that ensure that the tree remains balanced for optimal operations.

Dynamic Programming

Greedy Algorithms

  • Activity Selection Problem: An introductory problem to understand the greedy method.
  • Huffman Coding: A compression algorithm that uses a greedy approach to reduce the average cost of encoding symbols.

String Algorithms

Other Essential Algorithms


Including these algorithms in this course will provide a solid foundation in algorithmic thinking, covering a range of techniques and applications from simple to complex problem-solving strategies.


Complete and Continue  
Discussion

29 comments