Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để tạo một danh sách hợp nhất được sắp xếp gồm hai danh sách không được sắp xếp

Ở đây đưa ra hai danh sách đầu vào của người dùng, các phần tử của hai danh sách không được sắp xếp. Nhiệm vụ của chúng ta là hợp nhất hai mảng không được sắp xếp này và sau đó sắp xếp danh sách.

Ví dụ

Input: A [] = {100, 50, 150}
       B [] = {200, 30, 20}
Output: Merge List:{20, 30, 50, 100, 150, 200}

Thuật toán

Step 1: first we create two user input list.
Step 2: Final merge list size is (size of the first list + the size of the second list).
Step 3: then sort two list using sort() method.
Step 4: Merge two sorted list and store it into a third list.
Step 5: Merging remaining elements of a[] (if any).Merging remaining elements of b[] (if any).
Step 6: display merged sorted list.

Mã mẫu

# Python program to merge two unsorted lists 
# in sorted order
# Function to merge array in sorted order
def unsortedarray (a, b, res, n, m):
   # Sorting a[] and b[]
   a.sort()
   b.sort()
   # Merge two sorted arrays into res[]
   i, j, k = 0, 0, 0
   while (i < n and j < m):
      if (a[i] <= b[j]):
         res[k] = a[i]
         i += 1
         k += 1
      else:
         res[k] = b[j]
         j += 1
         k += 1
   while (i < n):  # Merging remaining
      # elements of a[] (if any)
      res[k] = a[i]
      i += 1
      k += 1
   while (j < m):  # Merging remaining
      # elements of b[] (if any)
      res[k] = b[j]
      j += 1
      k += 1
# Driver code
A=list()
n=int(input("Enter the size of the First List ::"))
print("Enter the Element of First List ::")
for i in range(int(n)):
   k=int(input(""))
   A.append(k)
B=list()
m=int(input("Enter the size of the Second List ::"))
print("Enter the Element of Second List ::")
for i in range(int(n)):
   k=int(input(""))
   B.append(k)
# Final merge list
res = [0 for i in range(n + m)]
unsortedarray(A, B, res, n, m)
print ("Sorted merged list :")
for i in range(n + m):
   print (res[i],)

Đầu ra

Enter the size of the First List: 4
Enter the Element of First List::
8
79
56
3
Enter the size of the Second List: 4
Enter the Element of Second List::
67
1
9
45
Sorted merged list:
1
3
8
9
45
56
67
79