quicksort 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/qs.rb +18 -0
  2. metadata +46 -0
@@ -0,0 +1,18 @@
1
+ class Quicksort
2
+ def self.qs (array)
3
+ if array.length <= 1
4
+ return array
5
+ end
6
+ less = Array.new
7
+ greater = Array.new
8
+ pivot = array.delete_at(array.length/2)
9
+ array.each do |x|
10
+ if x < pivot
11
+ less << x
12
+ else
13
+ greater << x
14
+ end
15
+ end
16
+ return (self.qs(less) << pivot << self.qs(greater)).flatten.compact
17
+ end
18
+ end
metadata ADDED
@@ -0,0 +1,46 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: quicksort
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jons Hugger
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-12-30 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: lightweight implementation of the quicksort algorithm
15
+ email: jona@kyr.li
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/qs.rb
21
+ homepage: http://rubygems.org/gems/quicksort
22
+ licenses:
23
+ - MIT
24
+ post_install_message:
25
+ rdoc_options: []
26
+ require_paths:
27
+ - lib
28
+ required_ruby_version: !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ! '>='
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ requirements: []
41
+ rubyforge_project:
42
+ rubygems_version: 1.8.23
43
+ signing_key:
44
+ specification_version: 3
45
+ summary: lightweight implementation of the quicksort algorithm
46
+ test_files: []