This topic is one of the most common studied. When somebody started preparation of coding interviews. Sorting algorithms would in his top 2 topics. Even typical computer science graduate study sorting algorithms 3-4 times before they complete graduation.
Why you should study Sorting Algorithms
- These are one of the most fundamental building block which helps in other complex algorithms.
- If you understand different tricks and basics around these algorithms, you can solve many-many more complex problems. Or, you can utilize the code somewhere.
- Most common techniques Divide and Conquer, covers few sorting algorithms. Which gives you more understanding of Divide and Conquer algorithms.
- In other computational algorithms, you must be using one of sorting algorithms either directly or indirectly.
- These are used in database queries
And, the list is endless.
Which algorithm to study?
There are lot of sorting algorithms available, if you search in wikipedia. But, you should consider reading few of them. In below section, I will mention the important ones.
Different Sorting Algorithms
There are lot of Sorting algorithms out there. I’ve categorized them as below:
Most Basic Ones
Very basic ones. You should consider reading them at least once.
- Bubble Sort
- Selection Sort
- Insertion Sort (Important)
Most Used and Optimized algorithms
Below algorithms must be on your tips.
- Merge Sort
- Quick Sort
- Heap Sort
Other Algorithms
You should be familiar with these algorithms, although not much deep knowledge is required.
- Bucket Sort
- Counting Sort
- Radix Sort
Time complexities of Sorting Algorithms
| Algorithms | Average(Expected) Running time | Worst Running time |
|---|---|---|
| Insert Sort | O(n^2) | O(n^2) |
| Bubble Sort | O(n^2) | O(n^2) |
| Selection Sort | O(n^2) | O(n^2) |
| Quick Sort | O(n log n) | O(n^2) |
| Merge Sort | O(n log n) | O(n log n) |
| Heap Sort | O(n log n) | O(n log n) |












