From 9ffe9930ecc1d900536a7943823688d4cce375a3 Mon Sep 17 00:00:00 2001 From: NamyaChandra <114582831+NamyaChandra@users.noreply.github.com> Date: Sat, 8 Oct 2022 17:06:35 +0530 Subject: [PATCH] Create Cyclic Sort Cyclic Sort Implementation in Python --- Cyclic Sort | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Cyclic Sort diff --git a/Cyclic Sort b/Cyclic Sort new file mode 100644 index 0000000..ef47b15 --- /dev/null +++ b/Cyclic Sort @@ -0,0 +1,30 @@ +def cycleSort(array): +writes = 0 +for cycleStart in range(0, len(array) - 1): + item = array[cycleStart] + pos = cycleStart + for i in range(cycleStart + 1, len(array)): + if array[i] < item: + pos += 1 + if pos == cycleStart: + continue + while item == array[pos]: + pos += 1 + array[pos], item = item, array[pos] + writes += 1 + while pos != cycleStart: + pos = cycleStart + for i in range(cycleStart + 1, len(array)): + if array[i] < item: + pos += 1 + while item == array[pos]: + pos += 1 + array[pos], item = item, array[pos] + writes += 1 +return writes +arr = [1, 8, 3, 9, 10, 10, 2, 4 ] +n = len(arr) +cycleSort(arr) +print("After sort : ") +for i in range(0, n) : + print(arr[i], end = \' \')