In this tutorial you will learn about the Cycle Sort Algorithm and its application with practical example.
Cycle Sort Program In C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#include<stdio.h> void cycle_sort(int a[], int n) { int writes = 0,start,element,pos,temp,i; for (start = 0; start <= n - 2; start++) { element = a[start]; pos = start; for (i = start + 1; i < n; i++) if (a[i] < element) pos++; if (pos == start) continue; while (element == a[pos]) pos += 1; if (pos != start) { temp = element; element = a[pos]; a[pos] = temp; writes++; } while (pos != start) { pos = start; for (i = start + 1; i < n; i++) if (a[i] < element) pos += 1; while (element == a[pos]) pos += 1; if (element != a[pos]) { temp = element; element = a[pos]; a[pos] = temp; writes++; } } } } int main() { int i, n, a[10]; printf("Enter number of elements: "); scanf("%d",&n); printf("Enter %d integer numbers\n", n); for(i = 0; i < n; i++) { scanf("%d",&a[i]); } cycle_sort(a, n); printf("Elements after sorting: "); for (i = 0; i < n; i++) printf("%d ",a[i]); return 0; } |
Output:-