इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें एक सरणी दी गई है, हमें साइकिल सॉर्ट की अवधारणा का उपयोग करके इसे क्रमबद्ध करना है।
यह एक इन-प्लेस एल्गोरिदम है और स्वैपिंग चक्रों के निर्माण द्वारा होती है।
उदाहरण
def cycleSort(array):
writes = 0
# घुमाए जाने वाले चक्र
for cycleStart in range(0, len(array) - 1):
item = array[cycleStart]
# आइटम रखने की स्थिति
pos = cycleStart
for i in range(cycleStart + 1, len(array)):
if array[i] < item:
pos += 1
# यदि आइटम मौजूद है, तो यह चक्र नहीं है
if pos == cycleStart:
continue
# अन्यथा, आइटम रखें
while item == array[pos]:
pos += 1
array[pos], item = item, array[pos]
writes += 1
# घुमाव जारी रहा
while pos != cycleStart:
# आइटम रखने की स्थिति खोजें
pos = cycleStart
for i in range(cycleStart + 1, len(array)):
if array[i] < item:
pos += 1
# आइटम रखें
while item == array[pos]:
pos += 1
array[pos], item = item, array[pos]
writes += 1
return writes
# मुख्य
arr = [1, 5, 3, 4, 8, 6, 3, 4, 5]
n = len(arr)
cycleSort(arr)
print("Sorted array is:")
for i in range(0, n):
print(arr[i], end=" ")
आउटपुट
Sorted array is: 1 3 3 4 4 5 5 6 8
निष्कर्ष
इस लेख में हमने साइकिल सॉर्ट के पायथन प्रोग्राम के बारे में सीखा।