advanced sorting we introduced the sorting problem in and explored three basic sorting algorithmsbut there are many others most sorting algorithms can be divided into two categoriescomparison sorts and distribution sorts in comparison sortthe data items can be arranged in either ascending (from smallest to largestor descending (from largest to smallestorder by performing pairwise logical comparisons between the sort keys the pairwise comparisons are typically based on either numerical order when working with integers and reals or lexicographical order when working with strings and sequences distribution sorton the other handdistributes or divides the sort keys into intermediate groups or collections based on the individual key values for exampleconsider the problem of sorting list of numerical grades based on their equivalent letter grade instead of the actual numerical value the grades can be divided into groups based on the corresponding letter grade without having to make comparisons between the numerical values the sorting algorithms described in used nested iterative loops to sort sequence of values in this we explore two additional comparison sort algorithmsboth of which use recursion and apply divide and conquer strategy to sort sequences many of the comparison sorts can also be applied to linked listswhich we explore along with one of the more common distribution sorts merge sort the merge sort algorithm uses the divide and conquer strategy to sort the keys stored in mutable sequence the sequence of values is recursively divided into smaller and smaller subsequences until each value is contained within its own subsequences the subsequences are then merged back together to create sorted sequence for illustration purposeswe assume the mutable sequence is list