इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक सूची दी गई है, हमें दी गई सूची पर बिटोनिक सॉर्ट करना है और सूची प्रदर्शित करनी है।
कॉकटेल सॉर्ट
यहां सॉर्ट बबल सॉर्ट की तरह होता है जहां पुनरावृत्ति दोनों दिशाओं में होती है।
एल्गोरिदम
सबसे पहले सरणी को बाएं से दाएं पार किया जाता है। पारगमन के दौरान, आसन्न वस्तुओं की तुलना की जाती है और शर्तों के आधार पर मान स्वैप किए जाते हैं। इससे सबसे बड़ी संख्या सरणी के अंत में होगी।
अब सरणी को विपरीत दिशा में पार किया जाता है और शर्तों के आधार पर तत्वों को स्वैप किया जाता है। इससे सबसे छोटी संख्या शुरुआत में होगी।
उदाहरण
# फ़ंक्शन
def cocktailSort(a):
n = len(a)
flag = True
start = 0
end = n-1
while (flag == True):
# पिछली पुनरावृत्ति के परिणाम को अनदेखा करने के लिए
flag = False
# बाएं से दाएं पारगमन
for i in range(start, end):
if (a[i] > a[i+1]):
a[i], a[i+1] = a[i+1], a[i]
flag = True
# यदि कोई स्वैप नहीं होता है तो सरणी क्रमबद्ध रहती है
if (flag == False):
break
# अन्यथा, फ्लैग रीसेट करें
flag = False
# अंतिम आइटम पहले से ही क्रमबद्ध है
end = end-1
# दाएं से बाएं पुनरावृत्ति
for i in range(end-1, start-1, -1):
if (a[i] > a[i+1]):
a[i], a[i+1] = a[i+1], a[i]
flag = True
# पहला तत्व पहले से ही क्रमबद्ध है
start = start+1
# मुख्य
a = [2, 5, 4, 3, 8, 3, 4, 6]
cocktailSort(a)
print("Sorted array is:")
for i in range(len(a)):
print(a[i], end=" ")
आउटपुट
Sorted array is: 2 3 3 4 4 5 6 8
निष्कर्ष
इस लेख में हमने कॉकटेल सॉर्ट के पायथन प्रोग्राम के बारे में सीखा।