Sorting algorithms/Cycle sort: Difference between revisions

m (→‎{{header|REXX}}: removed incorrect.flag)
Line 748:
[0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 5, 5, 5, 6, 8, 9]
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}}==
Anonymous user