Cycle Sort is a non-comparative sorting algorithm that places elements at their correct positions by cycling them through the array. It is efficient for sorting arrays where the elements are distinct.
Steps:
For each element in the array, find its correct position by rotating the cycle.
Swap the element to its correct position.
Repeat until all elements are sorted.
Time Complexity:
Best, Average, Worst Case:O(n^2).
def cycle_sort(arr): n = len(arr) for cycle_start in range(0, n - 1): item = arr[cycle_start] # Find the position of the element to be placed pos = cycle_start for i in range(cycle_start + 1, n): if arr[i] < item: pos += 1 # If the element is already in the correct position if pos == cycle_start: continue # Otherwise, put the element to its correct position while item == arr[pos]: pos += 1 arr[pos], item = item, arr[pos] # Rotate the remaining elements in the cycle while pos != cycle_start: pos = cycle_start for i in range(cycle_start + 1, n): if arr[i] < item: pos += 1 while item == arr[pos]: pos += 1 arr[pos], item = item, arr[pos] return arr# Example usagearr = [5, 2, 9, 1, 5, 6]print("Sorted array is:", cycle_sort(arr))