elena_gancedo

Merge sorts_exploring

Sep 4th, 2019
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | None | 0 0
  1. print ("******************************************************************")
  2. def mergeSort(alist):
  3.    print("Splitting ",alist)
  4.    if len(alist)>1:
  5.        mid = len(alist)//2
  6.        lefthalf = alist[:mid]
  7.        righthalf = alist[mid:]
  8.        #recursive call
  9.        mergeSort(lefthalf)
  10.        mergeSort(righthalf)
  11.        i=0
  12.        j=0
  13.        k=0
  14.        while i < len(lefthalf) and j < len(righthalf):
  15.            if lefthalf[i] < righthalf[j]:
  16.                alist[k]=lefthalf[i]
  17.                i=i+1
  18.            else:
  19.                alist[k]=righthalf[j]
  20.                j=j+1
  21.            k=k+1
  22.  
  23.        while i < len(lefthalf):
  24.            alist[k]=lefthalf[i]
  25.            i=i+1
  26.            k=k+1
  27.  
  28.        while j < len(righthalf):
  29.            alist[k]=righthalf[j]
  30.            j=j+1
  31.            k=k+1
  32.    print("Merging ",alist)
  33.  
  34. alist = []
  35. num = int(input('How many items in the list?: '))
  36. for n in range(num):
  37.     numbers = int(input("Enter a number in the list: "))
  38.     alist.append(numbers)
  39. print("My list: " + str(alist))
  40. mergeSort(alist)
  41. print ("******************************************************************")
Add Comment
Please, Sign In to add comment