Number of Elements
[Range: 10-100]
[Range: 10-100]
void cycleSort(int array[], int n){
int temp;
for (int start = 0; start <= n - 2; start++){
int item = array[start];
int position = start;
for (int i = start + 1; i < n; i++){
if (array[i] < item){
position++;
}
}
if (position == start) continue;
while (item == array[position]){
position++;
}
if (position != start){
temp = array[position];
array[position] = item;
item = temp;
}
while (position != start){
position = start;
for (int i = start + 1; i < n; i++){
if (array[i] < item){
position++;
}
while (item == array[position]){
position++;
}
if (item != array[position]){
temp = array[position];
array[position] = item;
item = temp;
}
}
}
}
}
def cycleSort(array):
n = len(array)
for (start in range(0, n - 1)):
item = array[start]
position = start
for i in range(start + 1, n):
if array[i] < item:
position = position + 1
if position == start:
continue
while item == array[position]:
position = position + 1
array[position], item = item, array[position]
while position != start:
positoin = start
for i in range(start + 1, n):
if array[i] < item:
position = position + 1
while item == array[position]:
position = position + 1
array[position], item = item, array[position]
function cycleSort(array){
var n = array.length;
let temp;
for (let start = 0; start <= n - 2; start++){
let item = array[start];
let position = start;
for (let i = start + 1; i < n; i++){
if (array[i] < item){
position++;
}
}
if (position == start){
continue;
}
while (item == array[position]){
position++;
}
if (position != start){
temp = array[position];
array[position] = item;
item = temp;
}
while (position != start){
position = start;
for (let i = start + 1; i < n; i++){
if (array[i] < item){
position++;
}
while (item == array[position]){
position++;
}
if (item != array[position]){
temp = array[position];
array[position] = item;
item = temp;
}
}
}
}
}
The Cycle sorting method is a comparison sort that specializes in the least amount of writes. In other words, this sorting method will only write a value to the array if it is sure that is where the value belongs.
The Cycle sorting method has a time complexity of: O(N2)