Program for Cycle Sort using Python

Introduction

Cycle sort algorithm is an unstable in-place sorting algorithm. Our task is to sort the given array using cycle sort.

Program

def sort(arr):
    temp = 0
    for start in range(0, len(arr) - 1):
        ele = arr[start]
# Find the index to place
        idx = start
        for i in range(start + 1, len(arr)):
            if arr[i] < ele:
                idx += 1
        if idx == start:
            continue
        while ele == arr[idx]:
            idx += 1
        arr[idx], ele = ele, arr[idx]
        temp += 1
        while idx != start:
            idx = start
            for i in range(start + 1, len(arr)):
                if arr[i] < ele:
                    idx += 1
            while ele == arr[idx]:
                idx += 1
            arr[idx], ele = ele, arr[idx]
            temp += 1
    return temp
       
ip_arr = [10, 2, 51, 3]
sort(ip_arr)
print("The sorted array is: ")
for i in range(0, len(ip_arr)):
    print(ip_arr[i])

Output

Program for Cycle Sort using Python

Explanation

The steps followed in the above program are:

  • Take the first element of the array and find all the elements that are smaller than it.
  • Move the element to index = number of elements that are smaller and swap.
  • Repeat the above for all the elements in the given array.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.