python
Dashboard
My Repos
Compilers
Python Online
Node JS Online
Golang Online
codepy
Login
My Repos
Sign Out
Online Python Interpreter
Stop
Run
import time from numpy.random import seed import matplotlib.pyplot as plt import numpy as np def merge(arr, l, m, r): n1 = m - l + 1 n2 = r- m L = [0] * (n1) R = [0] * (n2) for i in range(0 , n1): L[i] = arr[l + i] for j in range(0 , n2): R[j] = arr[m + 1 + j] i = 0 j = 0 k = l while i < n1 and j < n2 : if L[i] <= R[j]: arr[k] = L[i] i += 1 else: arr[k] = R[j] j += 1 k += 1 while i < n1: arr[k] = L[i] i += 1 k += 1 while j < n2: arr[k] = R[j] j += 1 k += 1 def mergesort(arr,l,r): if l < r: m = (l+(r-1))//2 mergesort(arr, l, m) mergesort(arr, m+1, r) merge(arr, l, m, r) t1=t2=t3=t4=t5=t6=t7=t8=t9=0 array=np.random.randint(1,26,100) start_time=time.time() mergesort(array,0,99) end_time=time.time() t1=end_time-start_time print("execution time for 100 element=",t1) array=np.random.randint(1,26,1000) start_time=time.time() mergesort(array,0,999) end_time=time.time() t2=end_time-start_time print("execution time for 1000 element=",t2) array=np.random.randint(1,26,2000) start_time=time.time() mergesort(array,0,1999) end_time=time.time() t3=end_time-start_time print("execution time for 2000 element=",t3) array=np.random.randint(1,26,4000) start_time=time.time() mergesort(array,0,3999) end_time=time.time() t4=end_time-start_time print("execution time for 4000 element=",t4) array=np.random.randint(1,26,8000) start_time=time.time() mergesort(array,0,7999) end_time=time.time() t5=end_time-start_time print("execution time for 8000 element=",t5) array=np.random.randint(1,26,16000) start_time=time.time() mergesort(array,0,15999) end_time=time.time() t6=end_time-start_time print("execution time for 16000 element=",t6) array=np.random.randint(1,26,30000) start_time=time.time() mergesort(array,0,29999) end_time=time.time() t7=end_time-start_time print("execution time for 30000 element=",t7) array=np.random.randint(1,26,50000) start_time=time.time() mergesort(array,0,49999) end_time=time.time() t8=end_time-start_time print("execution time for 50000 element=",t8) array=np.random.randint(1,26,70000) start_time=time.time() mergesort(array,0,69999) end_time=time.time() t9=end_time-start_time print("execution time for 70000 element=",t9) plt.plot([100,1000,2000,4000,8000,16000,30000,50000,70000],[t1,t2,t3 ,t4,t5,t6,t7,t8,t9]) plt.title("merge sort") plt.xlabel("no of input") plt.ylabel("time taken") plt.show() print("finish")
Share this code with others
Public
Clear
My Repos
Repo
Lang
Login
Register
Login
Create a free account. No Credit card info required.
I agree with the Codepy
Term of Service
Sign Up