ruby-heap 1.0.2 → 1.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: e6ecc83dcd850b3ac2c03e244912f8095f1539be
4
- data.tar.gz: 68194b5303313d8b1582660ed131a5bcf4bc2daf
2
+ SHA256:
3
+ metadata.gz: a75592e069ff9bc6d12e7c4edd27c564a49a17c8f60e13a40bb53a79c533a2f8
4
+ data.tar.gz: 243c19ac2859deddf570ab38ebd1f6c9d8962f482f69f7a114117a9590035bd9
5
5
  SHA512:
6
- metadata.gz: 0360ab2168bb8f0cebe0479995f6899f939452907a1e843de951c25fc0083137d7b57395a102e2d18c0de1ca1457ac3ce77ba4a13c037e4cd3961adb9fd1082d
7
- data.tar.gz: 77da29a17c374797136933b9a8a8e8ae8e53a443467464b9a3207ed4ce088b620009e5a163fff9d53e9c561e6fe335a77f2876dcc726d6086c07f4c57db3e175
6
+ metadata.gz: 2895bb61d6f02985c73fe5c392f6781c28797c04f42335d421e3b909055446cdb3f4e968ca85671ad07eaac8d996de988efce9406add86b91b9fff573b6e7649
7
+ data.tar.gz: cf5588e1671b4e6b2bb93821d937680bb441520e9a1818e42499a770a192dbff265decede40fadd284760420eddd4371db11936129f5ba61c7e3eceef2aa9189
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
@@ -8,3 +7,4 @@
8
7
  /spec/reports/
9
8
  /tmp/
10
9
  /.idea/
10
+ *.gem
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.1
data/Gemfile.lock ADDED
@@ -0,0 +1,22 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ruby-heap (1.0.2)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+ minitest (5.14.4)
10
+ rake (13.0.6)
11
+
12
+ PLATFORMS
13
+ x86_64-darwin-20
14
+
15
+ DEPENDENCIES
16
+ bundler (>= 2.2.10)
17
+ minitest (~> 5.0)
18
+ rake (~> 13.0)
19
+ ruby-heap!
20
+
21
+ BUNDLED WITH
22
+ 2.2.29
data/Heap.gemspec CHANGED
@@ -1,5 +1,3 @@
1
- # coding: utf-8
2
-
3
1
  lib = File.expand_path('../lib', __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'Heap/version'
@@ -21,7 +19,7 @@ Gem::Specification.new do |spec|
21
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
20
  spec.require_paths = ['lib']
23
21
 
24
- spec.add_development_dependency 'bundler', '~> 1.14'
25
- spec.add_development_dependency 'rake', '~> 10.0'
22
+ spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.10'
23
+ spec.add_development_dependency 'rake', '~> 13.0'
26
24
  spec.add_development_dependency 'minitest', '~> 5.0'
27
25
  end
data/README.md CHANGED
@@ -1,8 +1,12 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/ruby-heap.svg)](https://badge.fury.io/rb/ruby-heap)
2
+ [![Gem](https://img.shields.io/gem/dt/ruby-heap.svg)](https://rubygems.org/gems/ruby-heap)
3
+ [![Build Status](https://travis-ci.org/pups3s/ruby-heap.svg?branch=master)](https://travis-ci.org/pups3s/ruby-heap)
2
4
  [![Code Climate](https://codeclimate.com/github/pups3s/ruby-heap/badges/gpa.svg)](https://codeclimate.com/github/pups3s/ruby-heap)
3
- # Heap (ruby heapsort)
4
5
 
5
- Gem is using for making Heaps (binary only for now).
6
+ [Русская версия](README_ru.md)
7
+
8
+ # Heap (ruby heapsort)
9
+ Gem is using for making Heaps.
6
10
 
7
11
  ## Installation
8
12
 
@@ -76,10 +80,10 @@ b_heap.sort # [3, 2, 1, -1]
76
80
  # Count of elements in Heap
77
81
  b_heap.count # 4
78
82
 
79
- # Return min element without removing from Heap
83
+ # Return max element without removing from Heap
80
84
  b_heap.extract_max # 3
81
85
 
82
- # Return min element and remove it from Heap
86
+ # Return max element and remove it from Heap
83
87
  b_heap.extract_max! # 3
84
88
  b_heap.count # 3
85
89
  b_heap.elements # [2, -1, 1]
@@ -120,17 +124,11 @@ min_heap = Heap::MultipleHeap::MinHeap.new(5, [10, 20, 30])
120
124
  max_heap = Heap::MultipleHeap::MaxHeap.new(7)
121
125
  ```
122
126
 
123
- ## Development
124
-
125
- 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.
126
-
127
- 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).
128
-
129
127
  ## Contributing
130
128
 
131
- Bug reports and pull requests are welcome on GitHub at [Project page](https://github.com/pups3s/ruby-heap). This project is intended to be a safe, welcoming space for collaboration.
129
+ Bug reports and pull requests are welcome on GitHub at [Project page](https://github.com/pups3s/ruby-heap).
132
130
 
133
131
 
134
132
  ## License
135
133
 
136
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
134
+ The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/README_ru.md ADDED
@@ -0,0 +1,131 @@
1
+ [![Gem Version](https://badge.fury.io/rb/ruby-heap.svg)](https://badge.fury.io/rb/ruby-heap)
2
+ [![Code Climate](https://codeclimate.com/github/pups3s/ruby-heap/badges/gpa.svg)](https://codeclimate.com/github/pups3s/ruby-heap)
3
+ # Heap (ruby сортировка кучей)
4
+ Библиотека используется для создания бинарной или d-ичной кучи (Heap).
5
+
6
+ ## Установка
7
+
8
+ Добавьте данную строчку в Gemfile Вашего приложения:
9
+
10
+ ```ruby
11
+ gem 'ruby-heap'
12
+ ```
13
+
14
+ Затем выполните:
15
+
16
+ $ bundle
17
+
18
+ Или установите библиотеку отдельно, выполнив:
19
+
20
+ $ gem install ruby-heap
21
+
22
+ ## Использование
23
+
24
+ ### Двоичные кучи
25
+
26
+ #### Двоичная куча с минимальным корнем
27
+ Во время инициализации (и после создания кучи) Вы можете добавить в нее любые сравниваемые объекты (не только числа).
28
+ Используемые объекты должны иметь функции сравнения (>, >=, <, <=).
29
+ ```ruby
30
+ require 'Heap'
31
+
32
+ # Инициализация
33
+ b_heap = Heap::BinaryHeap::MinHeap.new([2, 3, 1, -1])
34
+
35
+ # Получение элементов кучи (доступ только для чтения)
36
+ b_heap.elements # [-1, 1, 3, 2]
37
+
38
+ # Получение отсортированных элементов кучи без
39
+ # изменения её элементов
40
+ b_heap.sort # [-1, 1, 2, 3]
41
+
42
+ # Количество элементов в куче
43
+ b_heap.count # 4
44
+
45
+ # Получение минимального элемента без удаления его из кучи
46
+ b_heap.extract_min # -1
47
+
48
+ # Получение минимального элемента и его удаление из кучи
49
+ b_heap.extract_min! # -1
50
+ b_heap.count # 3
51
+ b_heap.elements # [1, 2, 3]
52
+
53
+ # Также Вы можете добавить новые элементы с помощью
54
+ # функции add
55
+ b_heap.add -1
56
+ b_heap.elements # [-1, 1, 3, 2]
57
+ b_heap.add [0, 9, 200, -15, 6]
58
+ b_heap.elements # [-15, -1, 3, 0, 1, 9, 200, 2, 6]
59
+ b_heap.sort # [-15, -1, 0, 1, 2, 3, 6, 9, 200]
60
+ ```
61
+
62
+ #### Те же действия с кучей (с максимальным корнем)
63
+ ```ruby
64
+ require 'Heap'
65
+
66
+ # Инициализация
67
+ b_heap = Heap::BinaryHeap::MaxHeap.new([2, 3, 1, -1])
68
+
69
+ # Получение элементов кучи (доступ только для чтения)
70
+ b_heap.elements # [3, 2, 1, -1]
71
+
72
+ # Получение отсортированных элементов кучи без
73
+ # изменения её элементов
74
+ b_heap.sort # [3, 2, 1, -1]
75
+
76
+ # Количество элементов в куче
77
+ b_heap.count # 4
78
+
79
+ # Получение максимального элемента без удаления его из кучи
80
+ b_heap.extract_max # 3
81
+
82
+ # Получение максимального элемента и его удаление из кучи
83
+ b_heap.extract_max! # 3
84
+ b_heap.count # 3
85
+ b_heap.elements # [2, -1, 1]
86
+
87
+ # Также Вы можете добавить новые элементы с помощью
88
+ # функции add
89
+ b_heap.add -1
90
+ b_heap.elements # [2, -1, 1, -1]
91
+ b_heap.add [0, 9, 200, -15, 6]
92
+ b_heap.elements # [200, 6, 9, 0, -1, 1, 2, -15, -1]
93
+ b_heap.sort # [200, 9, 6, 2, 1, 0, -1, -1, -15]
94
+ ```
95
+
96
+ #### Слияние куч
97
+ ```ruby
98
+ require 'Heap'
99
+
100
+ # Инициализация
101
+ min_heap = Heap::BinaryHeap::MinHeap.new [1, 2, 3]
102
+ max_heap = Heap::BinaryHeap::MaxHeap.new [9, -1, 4]
103
+
104
+ # Слияние
105
+ min_heap.add max_heap
106
+
107
+ min_heap.count # 6
108
+ min_heap.sort # [-1, 1, 2, 3, 4, 9]
109
+ ```
110
+
111
+ ### Многомерные кучи
112
+
113
+ Многомерные (d-ичные) кучи имеют **те же методы, что и бинарные**. Однако, отличается инициализация:
114
+
115
+ ```ruby
116
+ require 'Heap'
117
+
118
+ # Первый параметр - измерение кучи (d)
119
+ # Второй параметр опционален и может содержать первые элементы в куче
120
+ min_heap = Heap::MultipleHeap::MinHeap.new(5, [10, 20, 30])
121
+ max_heap = Heap::MultipleHeap::MaxHeap.new(7)
122
+ ```
123
+
124
+ ## Вклад в проект
125
+
126
+ **Баг репорты** и **pull реквесты** приветствуются на GitHub [Страница проекта](https://github.com/pups3s/ruby-heap).
127
+
128
+
129
+ ## Лицензия
130
+
131
+ Библиотека является open source и регламентируется [MIT License](http://opensource.org/licenses/MIT).
data/lib/Heap/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Heap
2
- VERSION = '1.0.2'
2
+ VERSION = '1.0.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-heap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexandr Sysoev
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-29 00:00:00.000000000 Z
11
+ date: 2021-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,28 +16,34 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.14'
19
+ version: '2.2'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.2.10
20
23
  type: :development
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
- version: '1.14'
29
+ version: '2.2'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.2.10
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '10.0'
39
+ version: '13.0'
34
40
  type: :development
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '10.0'
46
+ version: '13.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: minitest
43
49
  requirement: !ruby/object:Gem::Requirement
@@ -52,7 +58,7 @@ dependencies:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
60
  version: '5.0'
55
- description:
61
+ description:
56
62
  email:
57
63
  - sanchous.ok@gmail.com
58
64
  executables: []
@@ -60,11 +66,14 @@ extensions: []
60
66
  extra_rdoc_files: []
61
67
  files:
62
68
  - ".gitignore"
69
+ - ".tool-versions"
63
70
  - ".travis.yml"
64
71
  - Gemfile
72
+ - Gemfile.lock
65
73
  - Heap.gemspec
66
74
  - LICENSE.txt
67
75
  - README.md
76
+ - README_ru.md
68
77
  - Rakefile
69
78
  - bin/console
70
79
  - bin/setup
@@ -81,7 +90,7 @@ homepage: https://github.com/pups3s/ruby-heap
81
90
  licenses:
82
91
  - MIT
83
92
  metadata: {}
84
- post_install_message:
93
+ post_install_message:
85
94
  rdoc_options: []
86
95
  require_paths:
87
96
  - lib
@@ -96,9 +105,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
105
  - !ruby/object:Gem::Version
97
106
  version: '0'
98
107
  requirements: []
99
- rubyforge_project:
100
- rubygems_version: 2.6.12
101
- signing_key:
108
+ rubygems_version: 3.1.2
109
+ signing_key:
102
110
  specification_version: 4
103
111
  summary: Binary or multiple heap
104
112
  test_files: []