इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक सरणी दी गई है, हमें इसे स्टूज सॉर्ट का उपयोग करके क्रमबद्ध करना है।
एल्गोरिदम
1. जांचें कि इंडेक्स 0 पर मान अंतिम इंडेक्स पर मान से बड़ा है या नहीं, फिर उन्हें स्वैप करें। 2. सरणी के प्रारंभिक 2/3 भाग को क्रमबद्ध करें। 3. सरणी के अंतिम 2/3 भाग को क्रमबद्ध करें। 4. पुष्टि के लिए प्रारंभिक 2/3 भाग को फिर से क्रमबद्ध करें।
उदाहरण
def stoogesort(arr, l, h):
if l >= h:
return
# स्वैप
if arr[l] > arr[h]:
t = arr[l]
arr[l] = arr[h]
arr[h] = t
# 2 से अधिक तत्व
if h - l + 1 > 2:
t = (int)((h - l + 1) / 3)
# पहले 2/3 तत्व क्रमबद्ध करें
stoogesort(arr, l, (h - t))
# अंतिम 2/3 तत्व क्रमबद्ध करें
stoogesort(arr, l + t, (h))
# पहले 2/3 तत्व फिर से क्रमबद्ध करें
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
निष्कर्ष
इस लेख में हमने स्टूज सॉर्ट के पायथन प्रोग्राम के बारे में सीखा।