kimquy_algo 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|