Facebook
From Dhruv Kothari, 3 Years ago, written in Ruby.
Embed
Download Paste or View Raw
Hits: 83
  1. def quick_sort(list)
  2.  
  3.   return [] if list.empty?
  4.  
  5.   parts = list.group_by { |n| n <=> list.first }
  6.   less_parts    = parts[-1] || []
  7.   first        = parts[0]  || []
  8.   greater_parts = parts[1]  || []
  9.   quick_sort(less_parts) + first + quick_sort(greater_parts)
  10.  
  11. end
  12.  
  13. p quick_sort [13, 27, 25, 11, 88, 92]
  14.