grosser-algorithms 0.4.0 → 0.4.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.
Files changed (47) hide show
  1. data/Manifest +45 -0
  2. data/VERSION +1 -0
  3. data/ext/containers/bst/bst.c +249 -0
  4. data/ext/containers/bst/extconf.rb +4 -0
  5. data/grosser-algorithms.gemspec +4 -4
  6. data/rdoc/classes/Algorithms.html +221 -0
  7. data/rdoc/classes/Algorithms/Algorithms.html +115 -0
  8. data/rdoc/classes/Algorithms/Algorithms/Sort.html +569 -0
  9. data/rdoc/classes/Algorithms/Containers.html +162 -0
  10. data/rdoc/classes/Algorithms/Containers/Heap.html +690 -0
  11. data/rdoc/classes/Algorithms/Containers/KDTree.html +195 -0
  12. data/rdoc/classes/Algorithms/Containers/MaxHeap.html +238 -0
  13. data/rdoc/classes/Algorithms/Containers/MinHeap.html +238 -0
  14. data/rdoc/classes/Algorithms/Containers/PriorityQueue.html +456 -0
  15. data/rdoc/classes/Algorithms/Containers/Queue.html +363 -0
  16. data/rdoc/classes/Algorithms/Containers/RubyDeque.html +617 -0
  17. data/rdoc/classes/Algorithms/Containers/RubyRBTreeMap.html +662 -0
  18. data/rdoc/classes/Algorithms/Containers/RubySplayTreeMap.html +623 -0
  19. data/rdoc/classes/Algorithms/Containers/Stack.html +363 -0
  20. data/rdoc/classes/Algorithms/Containers/SuffixArray.html +246 -0
  21. data/rdoc/classes/Algorithms/Containers/Trie.html +555 -0
  22. data/rdoc/classes/Algorithms/Search.html +273 -0
  23. data/rdoc/created.rid +1 -0
  24. data/rdoc/files/History_txt.html +281 -0
  25. data/rdoc/files/README_markdown.html +248 -0
  26. data/rdoc/files/lib/algorithms/search_rb.html +108 -0
  27. data/rdoc/files/lib/algorithms/sort_rb.html +108 -0
  28. data/rdoc/files/lib/algorithms/string_rb.html +115 -0
  29. data/rdoc/files/lib/algorithms_rb.html +252 -0
  30. data/rdoc/files/lib/containers/deque_rb.html +119 -0
  31. data/rdoc/files/lib/containers/heap_rb.html +124 -0
  32. data/rdoc/files/lib/containers/kd_tree_rb.html +135 -0
  33. data/rdoc/files/lib/containers/priority_queue_rb.html +108 -0
  34. data/rdoc/files/lib/containers/queue_rb.html +108 -0
  35. data/rdoc/files/lib/containers/rb_tree_map_rb.html +109 -0
  36. data/rdoc/files/lib/containers/splay_tree_map_rb.html +109 -0
  37. data/rdoc/files/lib/containers/stack_rb.html +108 -0
  38. data/rdoc/files/lib/containers/suffix_array_rb.html +113 -0
  39. data/rdoc/files/lib/containers/trie_rb.html +117 -0
  40. data/rdoc/fr_class_index.html +43 -0
  41. data/rdoc/fr_file_index.html +42 -0
  42. data/rdoc/fr_method_index.html +147 -0
  43. data/rdoc/index.html +24 -0
  44. data/rdoc/rdoc-style.css +208 -0
  45. data/spec/bst_gc_mark_spec.rb +25 -0
  46. data/spec/bst_spec.rb +25 -0
  47. metadata +50 -3
@@ -0,0 +1,115 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: string.rb</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>string.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/algorithms/string.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Tue Aug 10 13:58:23 +0200 2010</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <p>
73
+ This module implements string algorithms. Documentation is provided for
74
+ each algorithm.
75
+ </p>
76
+
77
+ </div>
78
+
79
+ <div id="requires-list">
80
+ <h3 class="section-bar">Required files</h3>
81
+
82
+ <div class="name-list">
83
+ CString&nbsp;&nbsp;
84
+ </div>
85
+ </div>
86
+
87
+ </div>
88
+
89
+
90
+ </div>
91
+
92
+
93
+ <!-- if includes -->
94
+
95
+ <div id="section">
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+ <!-- if method_list -->
105
+
106
+
107
+ </div>
108
+
109
+
110
+ <div id="validator-badges">
111
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
112
+ </div>
113
+
114
+ </body>
115
+ </html>
@@ -0,0 +1,252 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: algorithms.rb</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>algorithms.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/algorithms.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Tue Aug 10 14:28:08 +0200 2010</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <p>
73
+ The &#8216;<a href="../../classes/Algorithms.html">Algorithms</a> and
74
+ Containers&#8217; library is an effort to provide a set of commonly used
75
+ algorithms and containers to Ruby programmers.
76
+ </p>
77
+ <p>
78
+ This is a Google Summer of Code 2008 project
79
+ </p>
80
+ <p>
81
+ Written by Kanwei Li, mentored by Austin Ziegler
82
+ </p>
83
+ <p>
84
+ To avoid typing Algorithms::Containers::xxx to initialize containers,
85
+ include the <a href="../../classes/Algorithms.html">Algorithms</a>
86
+ namespace and Containers module.
87
+ </p>
88
+ <pre>
89
+ require 'algorithms'
90
+ include Algorithms
91
+ include Containers
92
+
93
+ tree = RBTreeMap.new
94
+ </pre>
95
+ <p>
96
+ instead of:
97
+ </p>
98
+ <pre>
99
+ require 'algorithms'
100
+
101
+ tree = Algorithms::Containers::RBTreeMap.new
102
+ </pre>
103
+ <p>
104
+ Done so far:
105
+ </p>
106
+ <ul>
107
+ <li>Heaps - <a
108
+ href="../../classes/Algorithms/Containers/Heap.html">Algorithms::Containers::Heap</a>,
109
+ <a
110
+ href="../../classes/Algorithms/Containers/MaxHeap.html">Algorithms::Containers::MaxHeap</a>,
111
+ <a
112
+ href="../../classes/Algorithms/Containers/MinHeap.html">Algorithms::Containers::MinHeap</a>
113
+
114
+ </li>
115
+ <li>Priority Queue - <a
116
+ href="../../classes/Algorithms/Containers/PriorityQueue.html">Algorithms::Containers::PriorityQueue</a>
117
+
118
+ </li>
119
+ <li>Stack - <a
120
+ href="../../classes/Algorithms/Containers/Stack.html">Algorithms::Containers::Stack</a>
121
+
122
+ </li>
123
+ <li>Queue - <a
124
+ href="../../classes/Algorithms/Containers/Queue.html">Algorithms::Containers::Queue</a>
125
+
126
+ </li>
127
+ <li>Deque - Algorithms::Containers::Deque, Algorithms::Containers::CDeque (C
128
+ extension), <a
129
+ href="../../classes/Algorithms/Containers/RubyDeque.html">Algorithms::Containers::RubyDeque</a>
130
+
131
+ </li>
132
+ <li>Red-Black Trees - Algorithms::Containers::RBTreeMap,
133
+ Algorithms::Containers::CRBTreeMap (C extension), <a
134
+ href="../../classes/Algorithms/Containers/RubyRBTreeMap.html">Algorithms::Containers::RubyRBTreeMap</a>
135
+
136
+ </li>
137
+ <li>Splay Trees - Algorithms::Containers::SplayTreeMap
138
+
139
+ </li>
140
+ <li>Tries - <a
141
+ href="../../classes/Algorithms/Containers/Trie.html">Algorithms::Containers::Trie</a>
142
+
143
+ </li>
144
+ <li>Suffix Array - <a
145
+ href="../../classes/Algorithms/Containers/SuffixArray.html">Algorithms::Containers::SuffixArray</a>
146
+
147
+ </li>
148
+ <li>kd Tree - <a
149
+ href="../../classes/Algorithms/Containers/KDTree.html">Algorithms::Containers::KDTree</a>
150
+
151
+ </li>
152
+ <li>Search algorithms
153
+
154
+ <ul>
155
+ <li>Binary Search - Algorithms::Algorithms::Search.binary_search
156
+
157
+ </li>
158
+ <li>Knuth-Morris-Pratt - Algorithms::Algorithms::Search.kmp_search
159
+
160
+ </li>
161
+ </ul>
162
+ </li>
163
+ <li>Sort algorithms
164
+
165
+ <ul>
166
+ <li>Bubble sort - Algorithms::Algorithms::Sort.bubble_sort
167
+
168
+ </li>
169
+ <li>Comb sort - Algorithms::Algorithms::Sort.comb_sort
170
+
171
+ </li>
172
+ <li>Selection sort - Algorithms::Algorithms::Sort.selection_sort
173
+
174
+ </li>
175
+ <li>Heapsort - Algorithms::Algorithms::Sort.heapsort
176
+
177
+ </li>
178
+ <li>Insertion sort - Algorithms::Algorithms::Sort.insertion_sort
179
+
180
+ </li>
181
+ <li>Shell sort - Algorithms::Algorithms::Sort.shell_sort
182
+
183
+ </li>
184
+ <li>Quicksort - Algorithms::Algorithms::Sort.quicksort
185
+
186
+ </li>
187
+ <li>Mergesort - Algorithms::Algorithms::Sort.mergesort
188
+
189
+ </li>
190
+ </ul>
191
+ </li>
192
+ <li>String algorithms
193
+
194
+ <ul>
195
+ <li>Levenshtein distance - Algorithms::Algorithms::String.levenshtein_dist
196
+
197
+ </li>
198
+ </ul>
199
+ </li>
200
+ </ul>
201
+
202
+ </div>
203
+
204
+ <div id="requires-list">
205
+ <h3 class="section-bar">Required files</h3>
206
+
207
+ <div class="name-list">
208
+ algorithms/search&nbsp;&nbsp;
209
+ algorithms/sort&nbsp;&nbsp;
210
+ algorithms/string&nbsp;&nbsp;
211
+ containers/heap&nbsp;&nbsp;
212
+ containers/stack&nbsp;&nbsp;
213
+ containers/deque&nbsp;&nbsp;
214
+ containers/queue&nbsp;&nbsp;
215
+ containers/priority_queue&nbsp;&nbsp;
216
+ containers/rb_tree_map&nbsp;&nbsp;
217
+ containers/splay_tree_map&nbsp;&nbsp;
218
+ containers/suffix_array&nbsp;&nbsp;
219
+ containers/trie&nbsp;&nbsp;
220
+ containers/kd_tree&nbsp;&nbsp;
221
+ </div>
222
+ </div>
223
+
224
+ </div>
225
+
226
+
227
+ </div>
228
+
229
+
230
+ <!-- if includes -->
231
+
232
+ <div id="section">
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+ <!-- if method_list -->
242
+
243
+
244
+ </div>
245
+
246
+
247
+ <div id="validator-badges">
248
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
249
+ </div>
250
+
251
+ </body>
252
+ </html>
@@ -0,0 +1,119 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!DOCTYPE html
3
+ PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
+
6
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7
+ <head>
8
+ <title>File: deque.rb</title>
9
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
11
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
12
+ <script type="text/javascript">
13
+ // <![CDATA[
14
+
15
+ function popupCode( url ) {
16
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17
+ }
18
+
19
+ function toggleCode( id ) {
20
+ if ( document.getElementById )
21
+ elem = document.getElementById( id );
22
+ else if ( document.all )
23
+ elem = eval( "document.all." + id );
24
+ else
25
+ return false;
26
+
27
+ elemStyle = elem.style;
28
+
29
+ if ( elemStyle.display != "block" ) {
30
+ elemStyle.display = "block"
31
+ } else {
32
+ elemStyle.display = "none"
33
+ }
34
+
35
+ return true;
36
+ }
37
+
38
+ // Make codeblocks hidden by default
39
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40
+
41
+ // ]]>
42
+ </script>
43
+
44
+ </head>
45
+ <body>
46
+
47
+
48
+
49
+ <div id="fileHeader">
50
+ <h1>deque.rb</h1>
51
+ <table class="header-table">
52
+ <tr class="top-aligned-row">
53
+ <td><strong>Path:</strong></td>
54
+ <td>lib/containers/deque.rb
55
+ </td>
56
+ </tr>
57
+ <tr class="top-aligned-row">
58
+ <td><strong>Last Update:</strong></td>
59
+ <td>Tue Aug 10 13:58:23 +0200 2010</td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ <!-- banner header -->
64
+
65
+ <div id="bodyContent">
66
+
67
+
68
+
69
+ <div id="contextContent">
70
+
71
+ <div id="description">
72
+ <p>
73
+ A Deque is a container that allows items to be added and removed from both
74
+ the front and back, acting as a combination of a Stack and Queue.
75
+ </p>
76
+ <p>
77
+ This implementation uses a doubly-linked list, guaranteeing O(1) complexity
78
+ for all operations.
79
+ </p>
80
+
81
+ </div>
82
+
83
+ <div id="requires-list">
84
+ <h3 class="section-bar">Required files</h3>
85
+
86
+ <div class="name-list">
87
+ CDeque&nbsp;&nbsp;
88
+ </div>
89
+ </div>
90
+
91
+ </div>
92
+
93
+
94
+ </div>
95
+
96
+
97
+ <!-- if includes -->
98
+
99
+ <div id="section">
100
+
101
+
102
+
103
+
104
+
105
+
106
+
107
+
108
+ <!-- if method_list -->
109
+
110
+
111
+ </div>
112
+
113
+
114
+ <div id="validator-badges">
115
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
116
+ </div>
117
+
118
+ </body>
119
+ </html>