इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक सरणी दी गई है, हमें हीपसॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है।
यहां हम अधिकतम तत्व को अंत में रखते हैं। यह तब तक दोहराया जाता है जब तक सरणी क्रमबद्ध नहीं हो जाती।
उदाहरण
# हीपिफाई
def heapify(arr, n, i):
largest = i # सबसे बड़ा मान
l = 2 * i + 1 # बायां
r = 2 * i + 2 # दायां
# यदि बायां बच्चा मौजूद है
if l < n and arr[i] < arr[l]:
largest = l
# यदि दायां बच्चा मौजूद है
if r < n and arr[largest] < arr[r]:
largest = r
# रूट
if largest != i:
arr[i], arr[largest] = arr[largest], arr[i] # स्वैप
# रूट।
heapify(arr, n, largest)
# क्रमबद्ध करें
def heapSort(arr):
n = len(arr)
# मैक्सहीप
for i in range(n, -1, -1):
heapify(arr, n, i)
# तत्व निष्कर्षण
for i in range(n-1, 0, -1):
arr[i], arr[0] = arr[0], arr[i] # स्वैप
heapify(arr, i, 0)
# मुख्य
arr = [2, 5, 3, 8, 6, 5, 4, 7]
heapSort(arr)
n = len(arr)
print("Sorted array is:")
for i in range(n):
print(arr[i], end=" ")
आउटपुट
Sorted array is: 2 3 4 5 5 6 7 8
निष्कर्ष
इस लेख में हमने हीप सॉर्ट के पायथन प्रोग्राम के बारे में सीखा।