এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে শিখব।
সমস্যা বিবৃতি − আমাদের একটি অ্যারে দেওয়া হয়েছে, আমাদের এটিকে হেপসর্টের ধারণা ব্যবহার করে সাজাতে হবে।
এখানে আমরা সর্বাধিক উপাদানটি শেষে রাখি। অ্যারে সাজানো না হওয়া পর্যন্ত এটি পুনরাবৃত্তি হয়।
এখন নিচের বাস্তবায়নে সমাধানটি পর্যবেক্ষণ করা যাক—
উদাহরণ
# heapify
def heapify(arr, n, i):
largest = i # largest value
l = 2 * i + 1 # left
r = 2 * i + 2 # right
# if left child exists
if l < n and arr[i] < arr[l]:
largest = l
# if right child exits
if r < n and arr[largest] < arr[r]:
largest = r
# root
if largest != i:
arr[i],arr[largest] = arr[largest],arr[i] # swap
# root.
heapify(arr, n, largest)
# sort
def heapSort(arr):
n = len(arr)
# maxheap
for i in range(n, -1, -1):
heapify(arr, n, i)
# element extraction
for i in range(n-1, 0, -1):
arr[i], arr[0] = arr[0], arr[i] # swap
heapify(arr, i, 0)
# main
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

সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের উল্লেখ উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা শিখেছি কিভাবে আমরা হিপ সাজানোর জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি