Site icon DataFlair

Two Way Merge Sort in DSA Python

Program 1

import os
os.system('cls')
a=[]
b=[]
c=[]
m=int(input("Enter limit of first array"))
print("Enter element in first array")
for i in range(0,m):
    x=int(input())
    a.append(x)

n=int(input("Enter limit of second array"))
print("Enter element in second array")
for i in range(0,n):
    x=int(input())
    b.append(x)

# Sorting of first collection(array)
for i in range(0,m):
    for j in range(i+1,m):
        if(a[j]<a[i]):
            a[i],a[j]=a[j],a[i]


# Sorting of second collection(array)
for i in range(0,n):
    for j in range(i+1,n):
        if(b[j]<b[i]):
            b[i],b[j]=b[j],b[i]
# a.sort()
# b.sort()

# Two way Merge sort Logic
i=0
j=0
k=0
while(i<m and j<n):
    if(a[i]<b[j]):
        c.insert(k,a[i])
        i=i+1
        k=k+1
    else:
        c.insert(k,b[j])
        c[k]=b[j]
        j=j+1
        k=k+1

if(i==m):
    while(j<n):
        c.insert(k,b[j])
        k=k+1
        j=j+1

if(j==n):
    while(i<m):
        c.insert(k,a[i])
        i=i+1
        k=k+1

print("Sorted element of Third Array")

for i in range(m+n):
    print(c[i],end=" ") 

 

Exit mobile version