Anonymous user
Sorting algorithms/Strand sort: Difference between revisions
→{{header|Ruby}}: used partition
(Nimrod -> Nim) |
(→{{header|Ruby}}: used partition) |
||
Line 1,426:
<lang ruby>class Array
def strandsort
a =
result = []
until a.empty?
sublist, a = a.partition{|val| v=val if v<=val} # In case of v>val, it becomes nil.
result.each_index do |idx|
break if sublist.empty?
result.insert(idx, sublist.shift) if sublist
end
result += sublist
Line 1,452 ⟶ 1,448:
p [1, 6, 3, 2, 1, 7, 5, 3].strandsort</lang>
{{out}}
<pre>[1, 1, 2, 3, 3, 5, 6, 7]</pre>
|