इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक सरणी दी गई है, हमें पुनरावर्ती तरीके से क्विक सॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है।
यहां हम पहले सरणी को पार्टीशन करते हैं और क्रमबद्ध सरणी प्राप्त करने के लिए अलग-अलग पार्टीशन को क्रमबद्ध करते हैं।
उदाहरण
# पुनरावर्ती तरीका
def partition(arr, l, h):
i = (l - 1)
x = arr[h]
for j in range(l, h):
if arr[j] <= x:
# बढ़ाएं
i = i + 1
arr[i], arr[j] = arr[j], arr[i]
arr[i+1], arr[h] = arr[h], arr[i+1]
return (i+1)
# क्रमबद्ध करें
def quickSortIterative(arr, l, h):
# स्टैक का निर्माण
size = h - l + 1
stack = [0] * (size)
# इनिशियलाइज़ेशन
top = -1
# प्रारंभिक मान पुश करें
top = top + 1
stack[top] = l
top = top + 1
stack[top] = h
# स्टैक से पॉप करें
while top >= 0:
# पॉप
h = stack[top]
top = top - 1
l = stack[top]
top = top - 1
# पिवट तत्व को उसकी सही स्थिति पर सेट करें
p = partition(arr, l, h)
# बाईं ओर के तत्व
if p-1 > l:
top = top + 1
stack[top] = l
top = top + 1
stack[top] = p - 1
# दाईं ओर के तत्व
if p+1 < h:
top = top + 1
stack[top] = p + 1
top = top + 1
stack[top] = h
# मुख्य
arr = [2, 5, 3, 8, 6, 5, 4, 7]
n = len(arr)
quickSortIterative(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
निष्कर्ष
इस लेख में हमने पुनरावर्ती क्विक सॉर्ट के पायथन प्रोग्राम के बारे में सीखा।