# author: Marcin Cherek
# python version: 2.7.11
# Date: 12th of April 2016
# language: English
# Title: Mergesort Algorithm python implementation
# divide conquer combine
# First we split te List and then we sort the parts.
# At the end we combine the parts together to one Solution
# We split until it is not more possible to split. Then we compare
# the splited parts.
# We return all sorted Parts combined in one List
def merge_sort(aList):
middle = len(aList) /2
leftPart = aList[:middle]
rightPart = aList[middle:]
if(middle >0):
leftPart = merge_sort(leftPart)
rightPart = merge_sort(rightPart)
return list(__merge(leftPart,rightPart))
def __merge(leftPart,rightPart):
sortedL = []
left_index, right_index = 0,0
while left_index < len(leftPart) and right_index <len(rightPart):
if( leftPart[left_index] >= rightPart[right_index]):
sortedL.append(leftPart[left_index])
left_index +=1
else:
sortedL.append(rightPart[right_index])
right_index +=1
if leftPart:
sortedL.extend(leftPart[left_index:]) #Extend adds a Lists content
if rightPart:
sortedL.extend(rightPart[right_index:])
return sortedL
Saturday, April 30, 2016
Mergesort in Python
Location:
Zürich, Schweiz
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment