heapify 0.1.0 → 0.1.1
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 +4 -4
- data/.rspec_status +8 -0
- data/README.md +2 -2
- data/lib/heapify/version.rb +1 -1
- data/lib/heapify.rb +3 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 869287480a83c49cc2dc64ae94d6fb505c9163ab75f80f50a77c68340d94ca10
|
4
|
+
data.tar.gz: da33f9d0afd89961d828f8e61c00f275fc94843285fb08d2fab1bbf7a70d1eeb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 63ea5cc7975cc9fab0aa4885da4bef86b3cc17675376edbbb22a003707ee6dba1de66374f0b7c6d4d92a1725548616256ecc24786f57f234d07298a4b8c487a4
|
7
|
+
data.tar.gz: 57952d95a35dc17ce0469c577a0584ccd12995aed8ebb49f5f61394ab0a098d6206b3fa92e13cc60445a3ede5c1f0c043db7d1fced9da54e5215370d3700168b
|
data/.rspec_status
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
example_id | status | run_time |
|
2
|
+
------------------------------- | ------ | --------------- |
|
3
|
+
./spec/heapify_spec.rb[1:1] | passed | 0.00057 seconds |
|
4
|
+
./spec/heapify_spec.rb[1:2:1:1] | passed | 0.00042 seconds |
|
5
|
+
./spec/heapify_spec.rb[1:2:1:2] | passed | 0.00006 seconds |
|
6
|
+
./spec/heapify_spec.rb[1:2:2:1] | passed | 0.00007 seconds |
|
7
|
+
./spec/heapify_spec.rb[1:2:3:1] | passed | 0.00006 seconds |
|
8
|
+
./spec/heapify_spec.rb[1:2:4:1] | passed | 0.00008 seconds |
|
data/README.md
CHANGED
@@ -36,8 +36,8 @@ Transforms an array into a heap in-place. It has a time complexity of O(n) and a
|
|
36
36
|
|
37
37
|
```ruby
|
38
38
|
array = [4, 1, 3, 2, 16, 9, 10, 14, 8, 7]
|
39
|
-
|
40
|
-
#
|
39
|
+
array.heapify
|
40
|
+
# array => [1, 2, 3, 4, 7, 9, 10, 14, 8, 16]
|
41
41
|
```
|
42
42
|
|
43
43
|
### `heap_push(val)`
|
data/lib/heapify/version.rb
CHANGED
data/lib/heapify.rb
CHANGED
@@ -47,8 +47,8 @@ module Heapify
|
|
47
47
|
right = 2 * index + 2
|
48
48
|
smallest = index
|
49
49
|
|
50
|
-
smallest = left if left < size && self[left]
|
51
|
-
smallest = right if right < size && self[right]
|
50
|
+
smallest = left if left < size && (self[left] <=> self[smallest]) == -1
|
51
|
+
smallest = right if right < size && (self[right] <=> self[smallest]) == -1
|
52
52
|
|
53
53
|
return if smallest == index
|
54
54
|
|
@@ -59,7 +59,7 @@ module Heapify
|
|
59
59
|
def heapify_up(index)
|
60
60
|
parent = (index - 1) / 2
|
61
61
|
|
62
|
-
return if index.zero? || self[parent]
|
62
|
+
return if index.zero? || (self[parent] <=> self[index]) <= 0
|
63
63
|
|
64
64
|
swap(index, parent)
|
65
65
|
heapify_up(parent)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heapify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Garrison Jensen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-03
|
11
|
+
date: 2024-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Heapify is a gem that provides a heapify method for arrays. It also provides
|
14
14
|
methods for adding and removing elements from the heap.
|
@@ -19,6 +19,7 @@ extensions: []
|
|
19
19
|
extra_rdoc_files: []
|
20
20
|
files:
|
21
21
|
- ".rspec"
|
22
|
+
- ".rspec_status"
|
22
23
|
- ".rubocop.yml"
|
23
24
|
- CHANGELOG.md
|
24
25
|
- CODE_OF_CONDUCT.md
|
@@ -51,7 +52,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
51
52
|
- !ruby/object:Gem::Version
|
52
53
|
version: '0'
|
53
54
|
requirements: []
|
54
|
-
rubygems_version: 3.
|
55
|
+
rubygems_version: 3.5.7
|
55
56
|
signing_key:
|
56
57
|
specification_version: 4
|
57
58
|
summary: Heapify is a gem that provides a heapify method for arrays.
|