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 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