# Python Program for Iterative Merge Sort

Following is a typical recursive implementation of Merge Sort that uses last element as pivot.

## Python

 `# Recursive Python Program for merge sort`   `def` `merge(left, right):` `    ``if` `not` `len``(left) ``or` `not` `len``(right):` `        ``return` `left ``or` `right`   `    ``result ``=` `[]` `    ``i, j ``=` `0``, ``0` `    ``while` `(``len``(result) < ``len``(left) ``+` `len``(right)):` `        ``if` `left[i] < right[j]:` `            ``result.append(left[i])` `            ``i``+``=` `1` `        ``else``:` `            ``result.append(right[j])` `            ``j``+``=` `1` `        ``if` `i ``=``=` `len``(left) ``or` `j ``=``=` `len``(right):` `            ``result.extend(left[i:] ``or` `right[j:])` `            ``break`   `    ``return` `result`   `def` `mergesort(``list``):` `    ``if` `len``(``list``) < ``2``:` `        ``return` `list`   `    ``middle ``=` `len``(``list``)``/``2` `    ``left ``=` `mergesort(``list``[:middle])` `    ``right ``=` `mergesort(``list``[middle:])`   `    ``return` `merge(left, right)` `    `  `seq ``=` `[``12``, ``11``, ``13``, ``5``, ``6``, ``7``]` `print``(``"Given array is"``)` `print``(seq); ` `print``(``"\n"``)` `print``(``"Sorted array is"``)` `print``(mergesort(seq))`   `# Code Contributed by Mohit Gupta_OMG `

Please refer complete article on Iterative Merge Sort for more details!

My Personal Notes arrow_drop_up