Anonymous user
Sorting algorithms/Cycle sort: Difference between revisions
→{{header|Kotlin}}
Walterpachl (talk | contribs) 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}}==
|