merge sort in python
def mergesort(list1):
if len(list1) >1 :
mid = len(list1)//2
left_list = list1[:mid]
right_list = list1[mid:]
mergesort(left_list) #Using recursion down here for the sub list
mergesort(right_list) #Using recursion down here for the sub list
i = 0
j = 0
k = 0
while i<len(left_list) and j<len(right_list):
if left_list[i]< right_list[j]:
list1[k] = left_list[i]
i+=1
k+=1
else:
list1[k] = right_list[j]
j+=1
k+=1
while i < len(left_list): # I did this as for the end condition of above loop as when i or j will be equal to len(left/right list)
list1[k] = left_list[i]
i+=1
k+=1
while j < len(right_list):
list1[k] = right_list[j]
j+=1
k+=1
#Start watching from here and then as when function call will come then go check function
n = int(input("Enter how many element you want in the list : "))
list1 = [int(input()) for i in range(n)]
mergesort(list1)
print("sorted list : " + str(list1))