C Implementation
public class CycleSort { public static void SortCycle(int[] input) { for (var i = 0; i < input.Length; i++) { var item = input[i]; var position = i; do { var k = input.Where((t, j) => position != j && t < item).Count(); if (position == k) continue; while (position != k && item == input[k]) { k++; } var temp = input[k]; input[k] = item; item = temp; position = k; } while (position != i); } } public static int[] Main(int[] input) { SortCycle(input); return input; } }
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents