Sorting is an algorithm that sorts the elements in the list with ascending or descending order. The sorting algorithm classified based on size, memory usage and recursion or iterative. The performance worst, average and best behavior analysis based on Big O notation.

For example, a list of words could be sorted alphabetically or by length. A list of cities could be sorted by population, by area, or by zip code.

Data structure problems
172 Bubble sort
Bubble sort is a simple sorting algorithm. It compares each item from array and swap with adjacent item if they are not in order.
173 Merge sort
Merge sort is a divide and conquers algorithm. It is a comparison-based sorting algorithm. It divide the array into subarray and conquer recursively by sorting two subarrays. It combines the results into the final array.
174 Quick sort
Quicksort is an efficient comparison sort. It can operate in place on an array, requiring small additional amounts of memory to perform sorting.
175 Insertion sort
Insertion sort is a simple sorting algorithm that builds sorted array one item at a time. It is efficient for the small data set.
176 Heap sort
Heapsort is a comparison-based sorting algorithm and divides the input into a sorted and an unsorted region, and it iteratively shrinks the unsorted region by extracting the largest element and moving that to the sorted region.
177 Priority queue
The priority queue is a data structure with each element has a priority associated with it. The high priority served before an element with low priority.
178 Radix sort
Radix sort is linear sorting algorithm that sorts data with integer keys by grouping keys by the individual digits which share the same significant position and value.
179 Bucket sort
Bucket sorting is a sorting algorithm that works with partitioning an array into a number of packets. Each bucket sorted individually using same or different algorithm.
180 Selection sort
Selection sort is a sorting algorithm that divide into the sorted and unsorted part. It move unsorted items to sorted array every step.
181 Shell sort
Shell sort is a sorting algorithm that starts by sorting pairs of elements far apart from each other, then progressively reducing the gap between elements to be compared.
182 Exchange Sort
The exchange sort is a sorting algorithm that compares each item from the array and swap the item if requires.
183 Max heap priority queue
Max heap priority queue is a priority queue with largest key insert at the beginning of the queue (max heap).
184 Min-heap priority queue
Min-heap priority queue is a priority queue with smallest key value insert at the beginning of the queue (max heap).
187 LSD radix sort
LSD radix sort process the integer representations starting from the least digit and move towards the most significant digit.
188 MSD radix sort
MSD radix sorts process the integer representations starting from the most digit and moves towards the least significant digit.