from time import clock import sys def merge(list, first, last, sred): global comp helper_list = [] i = first j = sred + 1 while i <= sred and j <= last: if list[i] <= list[j]: comp+=1 helper_list.append(list[i]) i += 1 else: comp+=1 helper_list.append(list[j]) j += 1 while i <= sred: comp+=1 helper_list.append(list[i]) i +=1 while j <= last: comp+=1 helper_list.append(list[j]) j += 1 for k in range(0, last - first + 1): list[first + k] = helper_list[k] def merge_sort_r(list, first, last): if first < last: sred = (first + last)/2 merge_sort_r(list, first, sred) merge_sort_r(list, sred + 1, last) merge(list, first, last, sred) f=open("in10_5a.txt","r") f1=open("out_10_5a.txt","w") comp=0 start=clock() list=f.readline().split(",") for i in range(0,len(list)): list[i]=int(list[i]) merge_sort_r(list, 0, len(list)-1) for i in list: f1.write(str(i)+",") memory=sys.getsizeof(comp)+sys.getsizeof(i)+sys.getsizeof(f)+sys.getsizeof(f1)+sys.getsizeof(start)+sys.getsizeof(list) f1.write("\n\nComparision is:"+str(comp)+"\nMemory used:"+str(memory)) f1.write("\nTime is:"+str(clock()-start)) f.close() f1.close()