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

ইটেরেটিভ কুইক সর্টের পাইথন প্রোগ্রাম


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

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

এখানে আমরা প্রথমে অ্যারেটি পার্টিশন করি এবং আলাদা পার্টিশনগুলো সর্ট করে সর্টেড অ্যারে পাই।

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

উদাহরণ

# ইটেরেটিভ পদ্ধতি
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

ইটেরেটিভ কুইক সর্টের পাইথন প্রোগ্রাম

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

উপসংহার

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

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

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

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

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