Python 程序创建两个未排序列表的已排序合并列表
此处给出两个用户输入列表,两个列表的元素未排序。我们的任务是合并这两个未排序数组,然后对列表进行排序。
示例
Input: A [] = {100, 50, 150} B [] = {200, 30, 20} Output: Merge List:{20, 30, 50, 100, 150, 200}
算法
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.
示例代码
# 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],)
输出
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
广告