'''
Python implementation of merge sort algorithm.
Takes an average of 0.6 microseconds to sort a list of length 1000 items.
Best Case Scenario : O(n)
Worst Case Scenario : O(n)
'''
def merge_sort(LIST):
    start = []
    end = []
    a = LIST[0]
    b = LIST[-1]
    while (LIST.index(a) == LIST.index(b) and len(LIST) <=2):
        a = min(LIST)
        b = max(LIST)
        start.append(a)
        end.append(b)
        LIST.remove(a)
        LIST.remove(b)
    end.reverse()
return start + end

'''
Python implementation of merge sort algorithm.
Takes an average of 0.6 microseconds to sort a list of length 1000 items.
Best Case Scenario : O(n)
Worst Case Scenario : O(n)
'''
def merge_sort(LIST):
    start = []
    end = []
    while LIST:
        a = min(LIST)
        b = max(LIST)
        start.append(a)
        end.append(b)
        try:
            LIST.remove(a)
            LIST.remove(b)
        except ValueError:
            continue
    end.reverse()
    return (start + end)

Update merge_sort_fastest.py