এই আর্টিকেলে আমরা নিচের সমস্যা সমাধানের কথা শিখব।
সমস্যা: একটি অ্যারে দেওয়া আছে, আমাদের সাইকেল সর্টের কনসেপ্ট ব্যবহার করে এটি সর্ট করতে হবে।
এটি একটি ইন-প্লেস অ্যালগরিদম এবং সওয়াপ সাইকেল ফরমেশন দিয়ে হয়।
চলুন নিচের ইমপ্লিমেন্টেশনে সমাধানটি পর্যবেক্ষণ করি।
উদাহরণ
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

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