group_d_2016_gem 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: e6e81b7418203b953f1e75beeb1ea0ffc51e2257
4
+ data.tar.gz: fe7e3144eb6322ab4fc4e5dca55c1e3611ae84d7
5
+ SHA512:
6
+ metadata.gz: a616c9ec1b719ff322e2685532acc5204696c7dbb2a32a8f25897abcdc95b1d6cde54862ff4c8c71ce61e2819901edabb4639ae8445d69a73eb66f9b1c416f36
7
+ data.tar.gz: d482104efbe8ab8031d3c02173a039acf0aa05978f1ac5344273cb736e4ae2d5c0cc652ab605d643cf72e227f313b71c0821bf5d07e4db89dae4cafbcc1ed89f
data/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ sudo: false
2
+ language: ruby
3
+ rvm:
4
+ - 2.2.5
5
+ before_install: gem install bundler -v 1.12.5
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in group_d_2016_gem.gemspec
4
+ gemspec
data/Guardfile ADDED
@@ -0,0 +1,44 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ # directories %w(app lib config test spec features) \
6
+ # .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
7
+
8
+ ## Note: if you are using the `directories` clause above and you are not
9
+ ## watching the project directory ('.'), then you will want to move
10
+ ## the Guardfile to a watched dir and symlink it back, e.g.
11
+ #
12
+ # $ mkdir config
13
+ # $ mv Guardfile config/
14
+ # $ ln -s config/Guardfile .
15
+ #
16
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+
18
+ guard :minitest do
19
+ # with Minitest::Unit
20
+ # watch(%r{^test/(.*)\/?test_(.*)\.rb$})
21
+ watch(%r{^test/(.*)\/?(.*)_test\.rb$})
22
+ # watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
23
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}#{m[2]}_test.rb" }
24
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
25
+
26
+ # with Minitest::Spec
27
+ # watch(%r{^spec/(.*)_spec\.rb$})
28
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
29
+ # watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
30
+
31
+ # Rails 4
32
+ # watch(%r{^app/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
33
+ # watch(%r{^app/controllers/application_controller\.rb$}) { 'test/controllers' }
34
+ # watch(%r{^app/controllers/(.+)_controller\.rb$}) { |m| "test/integration/#{m[1]}_test.rb" }
35
+ # watch(%r{^app/views/(.+)_mailer/.+}) { |m| "test/mailers/#{m[1]}_mailer_test.rb" }
36
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "test/lib/#{m[1]}_test.rb" }
37
+ # watch(%r{^test/.+_test\.rb$})
38
+ # watch(%r{^test/test_helper\.rb$}) { 'test' }
39
+
40
+ # Rails < 4
41
+ # watch(%r{^app/controllers/(.*)\.rb$}) { |m| "test/functional/#{m[1]}_test.rb" }
42
+ # watch(%r{^app/helpers/(.*)\.rb$}) { |m| "test/helpers/#{m[1]}_test.rb" }
43
+ # watch(%r{^app/models/(.*)\.rb$}) { |m| "test/unit/#{m[1]}_test.rb" }
44
+ end
data/README.md ADDED
@@ -0,0 +1,38 @@
1
+ # GroupD2016Gem
2
+
3
+ [![Build Status](https://travis-ci.org/mori07/group_d_2016_gem.svg?branch=master)](https://travis-ci.org/mori07/group_d_2016_gem)
4
+
5
+ Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/group_d_2016_gem`. To experiment with that code, run `bin/console` for an interactive prompt.
6
+
7
+ TODO: Delete this and the text above, and describe your gem
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ ```ruby
14
+ gem 'group_d_2016_gem'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install group_d_2016_gem
24
+
25
+ ## Usage
26
+
27
+ TODO: Write usage instructions here
28
+
29
+ ## Development
30
+
31
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
32
+
33
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
34
+
35
+ ## Contributing
36
+
37
+ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/group_d_2016_gem.
38
+
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList['test/**/*_test.rb']
8
+ end
9
+
10
+ task :default => :test
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "group_d_2016_gem"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'group_d_2016_gem/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "group_d_2016_gem"
8
+ spec.version = GroupD2016Gem::VERSION
9
+ spec.authors = ["mori07", "tako-t-t-1046", "FK001jp", "IshidaHIRO"]
10
+ spec.email = ["extend71@gmail.com"]
11
+
12
+ spec.summary = %q{This gem is sort module.}
13
+ spec.description = %q{This module can sort(BubbleSort, SelectSort, MergeSort, QuickSort). }
14
+
15
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
+ spec.bindir = "exe"
17
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
18
+ spec.require_paths = ["lib"]
19
+
20
+ spec.add_development_dependency "bundler", "~> 1.12"
21
+ spec.add_development_dependency "rake", "~> 10.0"
22
+ spec.add_development_dependency "minitest", "~> 5.0"
23
+ spec.add_development_dependency "guard"
24
+ spec.add_development_dependency "guard-minitest"
25
+ end
@@ -0,0 +1,77 @@
1
+ require "group_d_2016_gem/version"
2
+
3
+ module GroupD2016Gem
4
+ class Sorter
5
+ def bubble_sort(a)
6
+ n = a.size
7
+ 0.upto(n - 2) do |i|
8
+ (n - 1).downto(i + 1) do |j|
9
+ if a[j] < a[j - 1]
10
+ a[j], a[j - 1] = a[j - 1], a[j]
11
+ p a
12
+ end
13
+ end
14
+ end
15
+ a
16
+ end
17
+
18
+ def quick_sort(a)
19
+ if a.size <= 1
20
+ return a
21
+ end
22
+ pivot = a.delete_at(a.size / 2)
23
+ smaller, bigger = a.partition {|i| i < pivot}
24
+ ret = quick_sort(smaller) + [pivot] + quick_sort(bigger)
25
+ return ret
26
+ end
27
+
28
+ # Merge Sort
29
+ # Use this method if you want to sort.
30
+ def merge_sort(list)
31
+ length = list.length
32
+
33
+ if length <= 1
34
+ return list
35
+ end
36
+
37
+ mid = length/2
38
+ a = list.slice(0...mid)
39
+ b = list.slice(mid..-1)
40
+ ma = merge_sort(a)
41
+ mb = merge_sort(b)
42
+
43
+ merge(ma, mb)
44
+ end
45
+
46
+ # Merge the list
47
+ def merge(a, b)
48
+ res = []
49
+ until a.empty? && b.empty?
50
+ res <<
51
+ case
52
+ when a.empty? then b.shift
53
+ when b.empty? then a.shift
54
+ when a.first < b.first then a.shift
55
+ else b.shift
56
+ end
57
+ end
58
+ res
59
+ end
60
+
61
+ def select_sort(a)
62
+ n= a.size
63
+ 0.upto(n - 2) do |i|
64
+ min = i
65
+ (i + 1).upto(n - 1) do |j|
66
+ min = j if a[j] < a[min]
67
+ end
68
+ if i != min
69
+ a[i], a[min] = a[min], a[i]
70
+ end
71
+ end
72
+ a
73
+ end
74
+ end
75
+ end
76
+
77
+
@@ -0,0 +1,3 @@
1
+ module GroupD2016Gem
2
+ VERSION = "0.1.0"
3
+ end
data/select_sort ADDED
@@ -0,0 +1,12 @@
1
+ class Sorter
2
+ def select_sort
3
+ tmp = self.dup
4
+ res = []
5
+ res.push tmp.delete_min until tmp.empty?
6
+ res
7
+ end
8
+ def delete_min
9
+ min_idx = find_index { |item| item == self.min }
10
+ delete_at(min_idx)
11
+ end
12
+ end
metadata ADDED
@@ -0,0 +1,128 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: group_d_2016_gem
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - mori07
8
+ - tako-t-t-1046
9
+ - FK001jp
10
+ - IshidaHIRO
11
+ autorequire:
12
+ bindir: exe
13
+ cert_chain: []
14
+ date: 2016-08-08 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: bundler
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - "~>"
21
+ - !ruby/object:Gem::Version
22
+ version: '1.12'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.12'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ requirements:
34
+ - - "~>"
35
+ - !ruby/object:Gem::Version
36
+ version: '10.0'
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '10.0'
44
+ - !ruby/object:Gem::Dependency
45
+ name: minitest
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '5.0'
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '5.0'
58
+ - !ruby/object:Gem::Dependency
59
+ name: guard
60
+ requirement: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: guard-minitest
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ description: 'This module can sort(BubbleSort, SelectSort, MergeSort, QuickSort). '
87
+ email:
88
+ - extend71@gmail.com
89
+ executables: []
90
+ extensions: []
91
+ extra_rdoc_files: []
92
+ files:
93
+ - ".gitignore"
94
+ - ".travis.yml"
95
+ - Gemfile
96
+ - Guardfile
97
+ - README.md
98
+ - Rakefile
99
+ - bin/console
100
+ - bin/setup
101
+ - group_d_2016_gem.gemspec
102
+ - lib/group_d_2016_gem.rb
103
+ - lib/group_d_2016_gem/version.rb
104
+ - select_sort
105
+ homepage:
106
+ licenses: []
107
+ metadata: {}
108
+ post_install_message:
109
+ rdoc_options: []
110
+ require_paths:
111
+ - lib
112
+ required_ruby_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ required_rubygems_version: !ruby/object:Gem::Requirement
118
+ requirements:
119
+ - - ">="
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ requirements: []
123
+ rubyforge_project:
124
+ rubygems_version: 2.4.5.1
125
+ signing_key:
126
+ specification_version: 4
127
+ summary: This gem is sort module.
128
+ test_files: []