kimquy_algo 0.0.2 → 0.0.3
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/README.md +29 -5
- data/lib/kimquy_algo/version.rb +1 -1
- data/lib/kimquy_algo.rb +35 -0
- data/pkg/kimquy_algo-0.0.2.gem +0 -0
- metadata +2 -2
- data/pkg/kimquy_algo-0.0.1.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3216107a4ddb2418d18acaef78753d6f6cbea3b
|
4
|
+
data.tar.gz: ea16f081b9b857733cea934e6928d4fdf65d97a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4e81b47d54dbea4283439363dce10cb4da87eec9943e0c38514d8a5aa7bff23ae76d228cd9f3c982e628faa3b0ec937821c01d9251fceedcb4ea8c0b0338a36
|
7
|
+
data.tar.gz: 9145d59afe56a54c21b31aa3635867cc4ea736d8c2f122ebe270bd3ddd986e7b19a16572a12b71bd6699689400a940c9bf8cc506806e9b86c6d0af7c2658db18
|
data/README.md
CHANGED
@@ -2,14 +2,38 @@
|
|
2
2
|
|
3
3
|
I created a simple ruby gem for sorting algorithms:
|
4
4
|
+ insertion sort
|
5
|
-
+ merge sort
|
5
|
+
+ merge sort (this one still buggy need to be fixed)
|
6
6
|
+ quick sort
|
7
|
+
+ bubble sort
|
8
|
+
+ selection sort
|
9
|
+
+ heap sort
|
10
|
+
+ and more ...
|
7
11
|
|
8
|
-
|
12
|
+
## Example
|
9
13
|
|
10
|
-
|
11
|
-
|
12
|
-
|
14
|
+
require 'kimquy_algo'
|
15
|
+
require 'benchmark'
|
16
|
+
|
17
|
+
arr = [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
|
18
|
+
puts Benchmark.measure { arr.insertion_sort }
|
19
|
+
|
20
|
+
|
21
|
+
arr = [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
|
22
|
+
puts Benchmark.measure {arr.quicksort }
|
23
|
+
|
24
|
+
|
25
|
+
arr = [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
|
26
|
+
puts Benchmark.measure {arr.bubble_sort}
|
27
|
+
|
28
|
+
|
29
|
+
arr = [20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1]
|
30
|
+
puts Benchmark.measure {arr.selection_sort}
|
31
|
+
|
32
|
+
##Performance result
|
33
|
+
0.000000 0.000000 0.000000 ( 0.000120)
|
34
|
+
0.000000 0.000000 0.000000 ( 0.000038) (quicksort won!)
|
35
|
+
0.000000 0.000000 0.000000 ( 0.000108)
|
36
|
+
0.000000 0.000000 0.000000 ( 0.000068)
|
13
37
|
|
14
38
|
## Installation
|
15
39
|
|
data/lib/kimquy_algo/version.rb
CHANGED
data/lib/kimquy_algo.rb
CHANGED
@@ -71,6 +71,41 @@ class Array
|
|
71
71
|
self[j] = temp
|
72
72
|
end
|
73
73
|
|
74
|
+
define_method(:selection_sort) do
|
75
|
+
0.upto(self.length-1) do |i|
|
76
|
+
minIndex = i
|
77
|
+
j = i
|
78
|
+
j.upto(self.length-1) do |k|
|
79
|
+
if self[k] < self[minIndex]
|
80
|
+
minIndex = k
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
if minIndex != i
|
85
|
+
swap(minIndex,i)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
define_method(:bubble_sort) do
|
91
|
+
swapped = true
|
92
|
+
j = 0
|
93
|
+
|
94
|
+
while(swapped)
|
95
|
+
swapped = false
|
96
|
+
j += 1
|
97
|
+
0.upto(self.length-j-1) do |i|
|
98
|
+
if self[i] > self[i+1]
|
99
|
+
temp = self[i]
|
100
|
+
self[i] = self[i+1]
|
101
|
+
self[i+1] = temp
|
102
|
+
swapped = true
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
|
74
109
|
define_method(:quicksort) do
|
75
110
|
kimquy_quicksort(self,0, self.length)
|
76
111
|
end
|
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kimquy_algo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- long nguyen
|
@@ -52,7 +52,7 @@ files:
|
|
52
52
|
- kimquy_algo.gemspec
|
53
53
|
- lib/kimquy_algo.rb
|
54
54
|
- lib/kimquy_algo/version.rb
|
55
|
-
- pkg/kimquy_algo-0.0.
|
55
|
+
- pkg/kimquy_algo-0.0.2.gem
|
56
56
|
homepage: https://github.com/kimquy/kimquy_algo
|
57
57
|
licenses:
|
58
58
|
- MIT
|
data/pkg/kimquy_algo-0.0.1.gem
DELETED
Binary file
|