fork(2) download
  1. def quick_sort(a, l, r)
  2. return if l >= r
  3.  
  4. pivot = a[l]
  5. ll = l
  6. rr = r
  7. loop do
  8. ll += 1 while a[ll] < pivot
  9. rr -= 1 while a[rr] > pivot
  10.  
  11. break if ll >= rr
  12.  
  13. a[ll], a[rr] = a[rr], a[ll]
  14. ll += 1
  15. rr -= 1
  16. end
  17.  
  18. quick_sort(a, l, rr)
  19. quick_sort(a, rr + 1, r)
  20. end
  21.  
  22. data = [4,2,82,8,3,-5,11,4,6,22]
  23. quick_sort(data, 0, data.size - 1)
  24. p data
Success #stdin #stdout 0.02s 7416KB
stdin
Standard input is empty
stdout
Standard output is empty