-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrecursivlyMergingOfTwoSortedList.py
55 lines (53 loc) · 2.09 KB
/
recursivlyMergingOfTwoSortedList.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
def mergeSortedList(list1,list2,list3,lower1,lower2,upper1,upper2):
'''
Objective : Merge two Sorted list by recursion
Input Parameters :
list1-> containig first sorted list
lower1-> lower index of first list
upper1-> upper index of first list
list2-> containig second sorted list
lower2-> lower index of second list
upper2-> upper index of second list
Result: third list which is Merging of two Sorted list
'''
# Approach : recursive
if(lower1<upper1 and lower2<upper2):
if(list1[lower1]<list2[lower2]):
list3.append(list1[lower1])
return mergeSortedList(list1,list2,list3,lower1+1,lower2,upper1,upper2)
else:
list3.append(list2[lower2])
return mergeSortedList(list1,list2,list3,lower1,lower2+1,upper1,upper2)
elif(lower1<upper1 and lower2==upper2):
list3.append(list1[lower1])
return mergeSortedList(list1,list2,list3,lower1+1,lower2,upper1,upper2)
elif(lower1==upper1 and lower2<upper2):
list3.append(list2[lower2])
return mergeSortedList(list1,list2,list3,lower1,lower2+1,upper1,upper2)
elif(lower1==upper1 and lower2==upper2):
return list3
def main():
'''
Objective : Merge two Sorted list by recursion
Input Parameters :
list1-> containig first sorted list
lower1-> lower index of first list
upper1-> upper index of first list
list2-> containig second sorted list
lower2-> lower index of second list
upper2-> upper index of second list
Result: third list which is Merging of two Sorted list
'''
# Approach : Call the function mergeSortedList()
list1=[12,15,41,48,54,55,78,55]
upper1=len(list1)
lower1=0
list2=[1,16,48,49,64,87,92,95]
upper2=len(list2)
lower2=0
list3=[]
list3=(mergeSortedList(list1,list2,list3,lower1,lower2,upper1,upper2))
print(list3)
print(list3)
if __name__ == '__main__':
main()