| def Merge_Sort_Merge (List, First, Middle, Last):
NewList = [0]*(Last - First)
 List1Counter = First
 List2Counter = Middle+1
 NewListCounter = 0
 Counter = 0
 while (List1Counter <= Middle and List2Counter <= Last):
 if List[List1Counter] < List[List2Counter]:
 NewList[Counter] = List[List1Counter]
 List1Counter += 1
 else:
 NewList[Counter] = List[List2Counter]
 List2Counter += 1
 Counter += 1
 while (List1Counter <= Middle):
 NewList[Counter] = List[List1Counter]
 List1Counter += 1
 Counter += 1
 while (List2Counter <= Last):
 NewList[Counter] = List[List2Counter]
 List2Counter += 1
 Counter += 1
 Counter = 0
 List1Counter = First
 while (List1Counter <= Last):
 List[List1Counter] = NewList[Counter]
 Counter += 1
 List1Counter += 1
 
 def Merge_Sort (List, First, Last):
 if First < Last:
 Middle = (First + Last) / 2
 Merge_Sort(List, First, Middle)
 Merge_Sort(List, Middle+1, Last)
 Merge_Sort_Merge(List, First, Middle, Last)
 
 def Main():
 import random
 List = []
 for x in range(100):
 List.append(random.randint(1,1000))
 print List
 Merge_Sort(List, 0, 99)
 print List
 |