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. |

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. |