A Divide and Conquer algorithm that divides the list in two sub-lists and calls itself onto them recursively till it can't be split and merges them afterwards in a sorted manner.
An in-place sorting algorithm that finds max. element in each cycle and puts it in appropriate position in list by performing swapping adjacent elements.