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 is another fundamental problem in computer science. Some commonly used searching algorithms include Linear Search, Binary Search, and Hashing.

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 are used to solve problems related to graphs, which are a fundamental data structure in computer science.

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 are used to solve optimization problems by making the locally optimal choice at each step.

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

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.