Sorting Algorithms
My first python class was actually very helpful. Link to various sorting algorithms implemented in Python.
| Algorithm | Best Case(Ω) | Average Case(Θ) | Worst Case(O) |
|---|---|---|---|
| Selection Sort | |||
| Insertion Sort | |||
| Bubble Sort | |||
| Merge Sort | |||
| Quick Sort | |||
| Heap Sort | |||
| Radix Sort | |||
| Counting Sort | |||
| Bucket Sort |
https://www.bigocheatsheet.com/


Merge Sort Vs. Quick Sort
- Quicksort is likely faster in practice, but merge sort is faster on paper.
- Merge Sort divides the set into the smallest possible groups immediately then reconstructs the incrementally as it sorts the groupings.
- Quicksort continually partitions the data set by a pivot, until the set is recursively sorted
Custom Sorting in C++
You can do something like the following
sort(begin(arr), end(arr), [](string &s1, string &s2){ return s1+s2>s2+s1; });For a C++ Vector,
sort(v.begin(), v.end());Using the greater operator
sort(arr, arr + n, greater<int>());