इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक सरणी दी गई है, हमें मर्ज सॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है।
यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक सरणी क्रमबद्ध नहीं हो जाती।
उदाहरण
# मर्ज फ़ंक्शन
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)
# मुख्य
arr = [2, 5, 3, 8, 6, 5, 4, 7]
n = len(arr)
mergeSort(arr, 0, n-1)
print("Sorted array is:")
for i in range(n):
print(arr[i], end=" ")
आउटपुट
Sorted array is: 2 3 4 5 5 6 7 8
निष्कर्ष
इस लेख में हमने मर्ज सॉर्ट के पायथन प्रोग्राम के बारे में सीखा।