Skip to content

Instantly share code, notes, and snippets.

@redsquirrel
Created January 2, 2011 06:20
Show Gist options
  • Save redsquirrel/762342 to your computer and use it in GitHub Desktop.
Save redsquirrel/762342 to your computer and use it in GitHub Desktop.
def sort(*l)
return l if l.size < 2
eq = l[0]
lt = []
gt = []
l.each do |e|
if e < eq
lt << e
end
if e > eq
gt << e
end
end
[sort(*lt), eq, sort(*gt)].flatten
end
def assert(actual, expected)
if actual == expected
puts "PASS"
else
raise "Fail! Expected #{expected.inspect}, but got #{actual.inspect}"
end
end
assert(sort(), [])
assert(sort(1), [1])
assert(sort(1,2), [1,2])
assert(sort(2,1), [1,2])
assert(sort(1,2,3), [1,2,3])
assert(sort(2,1,3), [1,2,3])
assert(sort(1,3,2), [1,2,3])
assert(sort(3,2,1), [1,2,3])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment