Sorting algorithms/Cycle sort: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: removed incorrect.flag)
Line 748: Line 748:
[0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 5, 5, 5, 6, 8, 9]
[0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 5, 5, 5, 6, 8, 9]
writes: 14</pre>
writes: 14</pre>

=={{header|Julia}}==
{{works with|Julia|0.6}}

<lang julia>function cyclesort!(v::Vector)
writes = 0
for (cyclestart, item) in enumerate(v)
pos = cyclestart
for item2 in v[cyclestart + 1:end]
if item2 < item pos += 1 end
end

if pos == cyclestart continue end
while item == v[pos]
pos += 1
end
v[pos], item = item, v[pos]
writes += 1

while pos != cyclestart
pos = cyclestart
for item2 in v[cyclestart + 1:end]
if item2 < item pos += 1 end
end
while item == v[pos]
pos += 1
end

v[pos], item = item, v[pos]
writes += 1
end
end
return v
end

v = rand(-10:10, 10)
println("# unordered: $v\n -> ordered: ", cyclesort!(v))</lang>

{{out}}
<pre># unordered: [-2, -2, -5, -9, 8, 7, 2, -1, 3, -6]
-> ordered: [-9, -6, -5, -2, -2, -1, 2, 3, 7, 8]</pre>


=={{header|Kotlin}}==
=={{header|Kotlin}}==