1. 7kaji

    Posted

    7kaji
Changes in title
+Rubyでクイックソート
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,31 @@
+
+```ruby
+require 'benchmark'
+
+class Array
+ def quick_sort
+ return self if self.length <= 1
+ pivot = pop
+ left, right = partition { |e| e < pivot }
+ push pivot
+ left.quick_sort + [pivot] + right.quick_sort
+ end
+end
+
+# ベンチマークとってみた
+puts Benchmark::CAPTION
+puts Benchmark.measure { [1,3,99,2,54,22,0,6].quick_sort }
+puts Benchmark.measure { [1,3,99,2,54,22,0,6].sort }
+```
+
+```
+ user system total real
+ 0.000000 0.000000 0.000000 ( 0.000017)
+ 0.000000 0.000000 0.000000 ( 0.000007)
+```
+
+Array#sortの実装はこちら(C言語)
+https://github.com/ruby/ruby/blob/trunk/array.c
+(rb_ary_sort_bangメソッドで実装されているっぽい)
+
+C言語難しくてよくわからない(´・ω・`)