## Sorting Algorithm

Sorting is a fundamental problem in computer science. Some of the commonly used sorting algorithms include Bubble Sort, Merge Sort, Quick Sort, and Heap Sort.

## Searching Algorithms

Searching is another fundamental problem in computer science. Some commonly used searching algorithms include Linear Search, Binary Search, and Hashing.

## Dynamic Programming

Dynamic Programming is a technique used to solve problems by breaking them down into smaller sub-problems and solving each sub-problem only once.

## Graph Algorithms

Graph algorithms are used to solve problems related to graphs, which are a fundamental data structure in computer science.

## Divide and Conquer

Divide and Conquer is a technique used to solve problems by breaking them down into smaller sub-problems and solving each sub-problem independently.

## Greedy Algorithms

Greedy Algorithms are used to solve optimization problems by making the locally optimal choice at each step.

## Backtracking

Backtracking is a technique used to solve problems by systematically trying all possible solutions until a solution is found.

## Randomized Algorithms

Randomized Algorithms use randomness to solve problems. These algorithms are often used to solve problems where deterministic algorithms are too slow or do not exist.