# Cycle Sort

Cycle sort is a comparison sorting algorithm which forces array to be factored into the number of cycles where each of them can be rotated to produce a sorted array. It is theoretically optimal in the sense that it reduces the number of writes to the original array.

### Algorithm

Consider an array of n distinct elements. An element a is given, index of a can be calculated by counting the number of elements that are smaller than a.

1. if the element is found to be at its correct position, simply leave it as it is.
2. Otherwise, find the correct position of a by counting the total number of elements that are less than a. where it must be present in the sorted array. The other element b which is replaced is to be moved to its correct position. This process continues until we got an element at the original position of a.

The illustrated process constitutes a cycle. Repeating this cycle for each element of the list. The resulting list will be sorted. ### C program

Output:

```After sort, array :
1
2
2
2
3
4
9
10
45
```

### Java Program

Output:

```After sort, array :
1
2
2
2
3
4
9
10
45
```

### C# Program

Output:

```After sort, array :
1
2
2
2
3
4
9
10
45
```

Next TopicTim Sort   