Skip to content

Instantly share code, notes, and snippets.

@katryo
Created September 8, 2012 13:23
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save katryo/3674920 to your computer and use it in GitHub Desktop.
Save katryo/3674920 to your computer and use it in GitHub Desktop.
Rubyでのクイックソート
def quicksort(seq)
if seq.size == 0
return seq
end
pivot = seq[0]
right = Array.new
left = Array.new
for i in 1..seq.size-1
if seq[i] <= pivot
left.push(seq[i])
else
right.push(seq[i])
end
end
left = quicksort(left)
right = quicksort(right)
return left + [pivot] + right
end
arr = [1,53,36,77,22,100,4,20]
p(quicksort(arr))
@k-ohtani-is-deleting
Copy link

ガード条件

if seq.size == 0
return seq
end

は、size == 1 でも大丈夫っぽい?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment