এই আর্টিকেলে আমরা নিচের সমস্যা সমাধানের কথা শিখব।
সমস্যা: একটি অ্যারে দেওয়া আছে, আমাদের এটি স্টুজ সর্ট ব্যবহার করে সর্ট করতে হবে।
অ্যালগরিদম
1. ইনডেক্স ০-এর মান লাস্ট ইনডেক্সের মান থেকে বড় কিনা চেক করুন, বড় হলে সওয়াপ করুন। 2. অ্যারের প্রারম্ভিক ২/৩ অংশ সর্ট করুন। 3. অ্যারের শেষ ২/৩ অংশ সর্ট করুন। 4. আবার প্রারম্ভিক ২/৩ অংশ সর্ট করুন নিশ্চিত হওয়ার জন্য।
চলুন নিচের ইমপ্লিমেন্টেশনে সমাধানটি পর্যবেক্ষণ করি।
উদাহরণ
def stoogesort(arr, l, h):
if l >= h:
return
# সওয়াপ
if arr[l] > arr[h]:
t = arr[l]
arr[l] = arr[h]
arr[h] = t
# ২-এলিমেন্টের বেশি
if h - l + 1 > 2:
t = (int)((h - l + 1) / 3)
# প্রথম ২/৩ এলিমেন্ট সর্ট
stoogesort(arr, l, (h - t))
# শেষ ২/৩ এলিমেন্ট সর্ট
stoogesort(arr, l + t, (h))
# আবার প্রথম ২/৩ এলিমেন্ট সর্ট
stoogesort(arr, l, (h - t))
# মেইন
arr = [1, 4, 2, 3, 6, 5, 8, 7]
n = len(arr)
stoogesort(arr, 0, n-1)
print("Sorted sequence is:")
for i in range(0, n):
print(arr[i], end=" ")
আউটপুট
Sorted sequence is: 1 2 3 4 5 6 7 8

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