Skip to content

Instantly share code, notes, and snippets.

@blackknight36
Created February 26, 2017 03:21
Show Gist options
  • Save blackknight36/0838d14775afbb9585a75e50c7eaf30a to your computer and use it in GitHub Desktop.
Save blackknight36/0838d14775afbb9585a75e50c7eaf30a to your computer and use it in GitHub Desktop.
#!/usr/bin/ruby
def partition(ar, start, stop)
pivot = ar[stop]
pindex = start
for i in (start..stop-1) do
if ar[i] <= pivot
ar[i], ar[pindex] = ar[pindex], ar[i]
pindex += 1
end
end
ar[pindex], ar[stop] = ar[stop], ar[pindex]
return pindex
end
def quicksort(ar, start, stop)
if start < stop
p = partition(ar, start, stop)
quicksort(ar, start, p-1)
quicksort(ar, p+1, stop)
end
return ar
end
ar = STDIN.gets.chomp.split(" ").map{|x|x.to_i};
puts quicksort(ar, 0, ar.length - 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment