Merge pull request #7 from michellejanosi/add_algorithm

Add quicksort algorithm
This commit is contained in:
Chetan Kaushik 2017-11-05 22:56:07 +05:30 committed by GitHub
commit 1a1c1c3987
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

15
quicksort.rb Normal file
View file

@ -0,0 +1,15 @@
def quicksort
return [] if empty?
# chose a random pivot value
pivot = delete_at(rand(size))
# partition array into 2 arrays and comparing them to each other and eventually returning
# array with the pivot value sorted
left, right = partition(&pivot.method(:>))
# recursively calling the quicksort method on itself
return *left.quicksort, pivot, *right.quicksort
end
arr = [34, 2, 1, 5, 3]
p arr.quicksort