কম্পিউটার টিউটোরিয়াল

হিপ সর্টের পাইথন প্রোগ্রাম


এই আর্টিকেলে আমরা নিচের সমস্যা সমাধানের কথা শিখব।

সমস্যা: একটি অ্যারে দেওয়া আছে, আমাদের হিপসর্টের কনসেপ্ট ব্যবহার করে এটি সর্ট করতে হবে।

এখানে আমরা ম্যাক্সিমাম এলিমেন্টকে শেষে রাখি। এটি বারবার করা হয় যতক্ষণ না অ্যারেটি সর্টেড হয়।

চলুন নিচের ইমপ্লিমেন্টেশনে সমাধানটি পর্যবেক্ষণ করি।

উদাহরণ

# হিপিফাই
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

হিপ সর্টের পাইথন প্রোগ্রাম

সभी ভেরিয়েবল লোকাল স্কোপে ঘোষণা করা হয়েছে এবং তাদের রেফারেন্স উপরের চিত্রে দেখা যাচ্ছে।

উপসংহার

এই আর্টিকেলে আমরা শিখেছি কিভাবে হিপ সর্টের পাইথন প্রোগ্রাম লিখতে হয়।

  1. পাইথনে সিলেকশন সর্ট (Selection Sort)

  2. পাইথন প্রোগ্রাম: বাবল সোর্ট অ্যালগরিদম

  3. পাইথন প্রোগ্রাম: সিলেকশন সোর্ট অ্যালগরিদম

  4. পাইথন প্রোগ্রাম: ইনসারশন সোর্ট অ্যালগরিদম