67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
|
/*
|
||
|
* C Program to Implement Cyclesort
|
||
|
*/
|
||
|
#include <stdio.h>
|
||
|
|
||
|
#define MAX 8
|
||
|
|
||
|
void cycle_sort(int *);
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
int a[MAX],i;
|
||
|
printf("enter the elements into array :");
|
||
|
for (i = 0; i < MAX; i++)
|
||
|
{
|
||
|
scanf("%d", &a[i]);
|
||
|
}
|
||
|
cycle_sort(a);
|
||
|
printf("sorted elements are :\n");
|
||
|
for (i = 0; i < MAX; i++)
|
||
|
{
|
||
|
printf("%d", a[i]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* sorts elements using cycle sort algorithm */
|
||
|
void cycle_sort(int * a)
|
||
|
{
|
||
|
int temp, item, pos, i, j, k;
|
||
|
for (i = 0; i < MAX; i++)
|
||
|
{
|
||
|
item = a[i];
|
||
|
pos = i;
|
||
|
do
|
||
|
{
|
||
|
k = 0;
|
||
|
for (j = 0; j < MAX; j++)
|
||
|
{
|
||
|
if (pos != j && a[j] < item)
|
||
|
{
|
||
|
k++;
|
||
|
}
|
||
|
}
|
||
|
if (pos != k)
|
||
|
{
|
||
|
while (pos != k && item == a[k])
|
||
|
{
|
||
|
k++;
|
||
|
}
|
||
|
temp = a[k];
|
||
|
a[k] = item;
|
||
|
item = temp;
|
||
|
pos = k;
|
||
|
}
|
||
|
}
|
||
|
while (pos != i);
|
||
|
}
|
||
|
}
|
||
|
/*
|
||
|
*OUTPUT:
|
||
|
enter the elements into array :7 3 2 5 4 8 9 6
|
||
|
sorted elements are :
|
||
|
23456789
|
||
|
enter the elements into array :7 3 2 4 5 4 6 3
|
||
|
sorted elements are :
|
||
|
23344567
|
||
|
*/
|