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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 02d99f4a0be8d7c4109261332c9165392600a890
4
- data.tar.gz: a9ce587853849046b45b87f3d02683403d51a8f2
3
+ metadata.gz: b3216107a4ddb2418d18acaef78753d6f6cbea3b
4
+ data.tar.gz: ea16f081b9b857733cea934e6928d4fdf65d97a1
5
5
  SHA512:
6
- metadata.gz: 3e3623ac9b32f7ff3c4cea76852668b27805c18cc446a658445cce0a96546dfe4554da52704b1eeaaa16e3924cd2c1566eb2d1ad51b18a55e5fffd400c6001ec
7
- data.tar.gz: dc5cd3de277d4b63028447f05e49eb82b97193a157aa4c9c8678d95362a5881391208602972cdafbd871e1b20d627776ffa60cf4d5c191d1cddef527f1b4cdf9
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
- updating...
12
+ ## Example
9
13
 
10
- example: <br/>
11
- array = [10,9,8,7,6,5,4,3,2,1] <br/>
12
- array.quicksort -> [1,2,3,4,5,6,7,8,9,10] <br/>
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
 
@@ -1,3 +1,3 @@
1
1
  module KimquyAlgo
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
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.2
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.1.gem
55
+ - pkg/kimquy_algo-0.0.2.gem
56
56
  homepage: https://github.com/kimquy/kimquy_algo
57
57
  licenses:
58
58
  - MIT
Binary file