def merge( listA, listB):
mergeList = []
i = 0
j = 0
while i < len(listA) and j < len(listB):
if listA[i] < listB[j]:
mergeList.append(listA[i])
i += 1
else:
mergeList.append(listB[j])
j += 1
# check to see if listA or list B has non merged elements
while i < len(listA):
mergeList.append(listA[i])
i += 1
while j < len(listB):
mergeList.append(listB[j])
j += 1
return mergeList
def mergeSort(aList):
if len(aList) > 1:
mid = len(aList) // 2
leftList = aList[:mid]
rightList = aList[mid:]
leftSorted = mergeSort(leftList)
rightSorted = mergeSort(rightList)
mergedList = merge(leftSorted, rightSorted)
return mergedList
else:
return aList
myList = [7,5,3,8,2,6,1,4]
sortedList = mergeSort(myList)
print(sortedList)