algorithm_selector 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,442 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Searches
8
+
9
+ &mdash; Documentation by YARD 0.9.4
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "Searches";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index (S)</a> &raquo;
40
+
41
+
42
+ <span class="title">Searches</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <iframe id="search_frame" src="class_list.html"></iframe>
63
+
64
+ <div id="content"><h1>Class: Searches
65
+
66
+
67
+
68
+ </h1>
69
+ <div class="box_info">
70
+
71
+ <dl>
72
+ <dt>Inherits:</dt>
73
+ <dd>
74
+ <span class="inheritName">Object</span>
75
+
76
+ <ul class="fullTree">
77
+ <li>Object</li>
78
+
79
+ <li class="next">Searches</li>
80
+
81
+ </ul>
82
+ <a href="#" class="inheritanceTree">show all</a>
83
+
84
+ </dd>
85
+ </dl>
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <dl>
98
+ <dt>Defined in:</dt>
99
+ <dd>lib/algorithm_selector.rb</dd>
100
+ </dl>
101
+
102
+ </div>
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+
111
+
112
+ <h2>
113
+ Instance Method Summary
114
+ <small><a href="#" class="summary_toggle">collapse</a></small>
115
+ </h2>
116
+
117
+ <ul class="summary">
118
+
119
+ <li class="public ">
120
+ <span class="summary_signature">
121
+
122
+ <a href="#all-instance_method" title="#all (instance method)">#<strong>all</strong>(array, num_tests, target) &#x21d2; Object </a>
123
+
124
+
125
+
126
+ </span>
127
+
128
+
129
+
130
+
131
+
132
+
133
+
134
+
135
+
136
+ <span class="summary_desc"><div class='inline'></div></span>
137
+
138
+ </li>
139
+
140
+
141
+ <li class="public ">
142
+ <span class="summary_signature">
143
+
144
+ <a href="#analyze-instance_method" title="#analyze (instance method)">#<strong>analyze</strong>(array, algorithm, num_tests, target) &#x21d2; Object </a>
145
+
146
+
147
+
148
+ </span>
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+ <span class="summary_desc"><div class='inline'></div></span>
159
+
160
+ </li>
161
+
162
+
163
+ <li class="public ">
164
+ <span class="summary_signature">
165
+
166
+ <a href="#best-instance_method" title="#best (instance method)">#<strong>best</strong>(array, num_tests, target) &#x21d2; Object </a>
167
+
168
+
169
+
170
+ </span>
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+ <span class="summary_desc"><div class='inline'></div></span>
181
+
182
+ </li>
183
+
184
+
185
+ <li class="public ">
186
+ <span class="summary_signature">
187
+
188
+ <a href="#compare-instance_method" title="#compare (instance method)">#<strong>compare</strong>(array, first_algorithm, second_algorithm, num_tests, target) &#x21d2; Object </a>
189
+
190
+
191
+
192
+ </span>
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+ <span class="summary_desc"><div class='inline'></div></span>
203
+
204
+ </li>
205
+
206
+
207
+ </ul>
208
+
209
+
210
+
211
+
212
+ <div id="instance_method_details" class="method_details_list">
213
+ <h2>Instance Method Details</h2>
214
+
215
+
216
+ <div class="method_details first">
217
+ <h3 class="signature first" id="all-instance_method">
218
+
219
+ #<strong>all</strong>(array, num_tests, target) &#x21d2; <tt>Object</tt>
220
+
221
+
222
+
223
+
224
+
225
+ </h3><table class="source_code">
226
+ <tr>
227
+ <td>
228
+ <pre class="lines">
229
+
230
+
231
+ 199
232
+ 200
233
+ 201
234
+ 202
235
+ 203
236
+ 204
237
+ 205
238
+ 206
239
+ 207
240
+ 208
241
+ 209
242
+ 210
243
+ 211
244
+ 212
245
+ 213
246
+ 214</pre>
247
+ </td>
248
+ <td>
249
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 199</span>
250
+
251
+ <span class='kw'>def</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
252
+ <span class='id identifier rubyid_stack'>stack</span> <span class='op'>=</span> <span class='const'>Stack</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='comma'>,</span> <span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
253
+ <span class='id identifier rubyid_queue'>queue</span> <span class='op'>=</span> <span class='const'>Queue</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='comma'>,</span> <span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
254
+ <span class='id identifier rubyid_linked_list'>linked_list</span> <span class='op'>=</span> <span class='const'>LinkedList</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
255
+ <span class='id identifier rubyid_binary_tree'>binary_tree</span> <span class='op'>=</span> <span class='const'>BinaryTree</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
256
+ <span class='lbrace'>{</span>
257
+ <span class='label'>found:</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span><span class='comma'>,</span>
258
+ <span class='label'>results:</span>
259
+ <span class='lbrace'>{</span>
260
+ <span class='label'>stack:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
261
+ <span class='label'>queue:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_queue'>queue</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
262
+ <span class='label'>linked_list:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_linked_list'>linked_list</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
263
+ <span class='label'>binary_tree:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_binary_tree'>binary_tree</span><span class='period'>.</span><span class='id identifier rubyid_search'>search</span><span class='lparen'>(</span><span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
264
+ <span class='rbrace'>}</span>
265
+ <span class='rbrace'>}</span>
266
+ <span class='kw'>end</span></pre>
267
+ </td>
268
+ </tr>
269
+ </table>
270
+ </div>
271
+
272
+ <div class="method_details ">
273
+ <h3 class="signature " id="analyze-instance_method">
274
+
275
+ #<strong>analyze</strong>(array, algorithm, num_tests, target) &#x21d2; <tt>Object</tt>
276
+
277
+
278
+
279
+
280
+
281
+ </h3><table class="source_code">
282
+ <tr>
283
+ <td>
284
+ <pre class="lines">
285
+
286
+
287
+ 231
288
+ 232
289
+ 233
290
+ 234
291
+ 235
292
+ 236
293
+ 237
294
+ 238
295
+ 239
296
+ 240
297
+ 241
298
+ 242
299
+ 243</pre>
300
+ </td>
301
+ <td>
302
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 231</span>
303
+
304
+ <span class='kw'>def</span> <span class='id identifier rubyid_analyze'>analyze</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_algorithm'>algorithm</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
305
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
306
+ <span class='id identifier rubyid_alg'>alg</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
307
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span>
308
+ <span class='kw'>if</span> <span class='id identifier rubyid_algorithm'>algorithm</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span>
309
+ <span class='id identifier rubyid_alg'>alg</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
310
+ <span class='kw'>end</span>
311
+ <span class='kw'>end</span>
312
+ <span class='lbrace'>{</span>
313
+ <span class='label'>found:</span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:found</span><span class='rbracket'>]</span><span class='comma'>,</span>
314
+ <span class='id identifier rubyid_alg'>alg</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_alg'>alg</span><span class='lbracket'>[</span><span class='id identifier rubyid_alg'>alg</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
315
+ <span class='rbrace'>}</span>
316
+ <span class='kw'>end</span></pre>
317
+ </td>
318
+ </tr>
319
+ </table>
320
+ </div>
321
+
322
+ <div class="method_details ">
323
+ <h3 class="signature " id="best-instance_method">
324
+
325
+ #<strong>best</strong>(array, num_tests, target) &#x21d2; <tt>Object</tt>
326
+
327
+
328
+
329
+
330
+
331
+ </h3><table class="source_code">
332
+ <tr>
333
+ <td>
334
+ <pre class="lines">
335
+
336
+
337
+ 216
338
+ 217
339
+ 218
340
+ 219
341
+ 220
342
+ 221
343
+ 222
344
+ 223
345
+ 224
346
+ 225
347
+ 226
348
+ 227
349
+ 228
350
+ 229</pre>
351
+ </td>
352
+ <td>
353
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 216</span>
354
+
355
+ <span class='kw'>def</span> <span class='id identifier rubyid_best'>best</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
356
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
357
+ <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>=</span> <span class='int'>0</span>
358
+ <span class='id identifier rubyid_best_algorithm'>best_algorithm</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
359
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span>
360
+ <span class='kw'>if</span> <span class='id identifier rubyid_val'>val</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>||</span> <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>==</span> <span class='int'>0</span>
361
+ <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>=</span> <span class='id identifier rubyid_val'>val</span>
362
+ <span class='id identifier rubyid_best_algorithm'>best_algorithm</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
363
+ <span class='kw'>end</span>
364
+ <span class='kw'>end</span>
365
+ <span class='lbrace'>{</span>
366
+ <span class='id identifier rubyid_best_algorithm'>best_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_best_algorithm'>best_algorithm</span><span class='lbracket'>[</span><span class='id identifier rubyid_best_algorithm'>best_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
367
+ <span class='rbrace'>}</span>
368
+ <span class='kw'>end</span></pre>
369
+ </td>
370
+ </tr>
371
+ </table>
372
+ </div>
373
+
374
+ <div class="method_details ">
375
+ <h3 class="signature " id="compare-instance_method">
376
+
377
+ #<strong>compare</strong>(array, first_algorithm, second_algorithm, num_tests, target) &#x21d2; <tt>Object</tt>
378
+
379
+
380
+
381
+
382
+
383
+ </h3><table class="source_code">
384
+ <tr>
385
+ <td>
386
+ <pre class="lines">
387
+
388
+
389
+ 245
390
+ 246
391
+ 247
392
+ 248
393
+ 249
394
+ 250
395
+ 251
396
+ 252
397
+ 253
398
+ 254
399
+ 255
400
+ 256
401
+ 257
402
+ 258
403
+ 259
404
+ 260</pre>
405
+ </td>
406
+ <td>
407
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 245</span>
408
+
409
+ <span class='kw'>def</span> <span class='id identifier rubyid_compare'>compare</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_first_algorithm'>first_algorithm</span><span class='comma'>,</span> <span class='id identifier rubyid_second_algorithm'>second_algorithm</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
410
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='comma'>,</span> <span class='id identifier rubyid_target'>target</span><span class='rparen'>)</span>
411
+ <span class='id identifier rubyid_first'>first</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
412
+ <span class='id identifier rubyid_second'>second</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
413
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span>
414
+ <span class='kw'>if</span> <span class='id identifier rubyid_first_algorithm'>first_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span>
415
+ <span class='id identifier rubyid_first'>first</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
416
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_second_algorithm'>second_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span>
417
+ <span class='id identifier rubyid_second'>second</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
418
+ <span class='kw'>end</span>
419
+ <span class='kw'>end</span>
420
+ <span class='lbrace'>{</span>
421
+ <span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_first'>first</span><span class='lbracket'>[</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='comma'>,</span>
422
+ <span class='id identifier rubyid_second'>second</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_second'>second</span><span class='lbracket'>[</span><span class='id identifier rubyid_second'>second</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
423
+ <span class='rbrace'>}</span>
424
+ <span class='kw'>end</span></pre>
425
+ </td>
426
+ </tr>
427
+ </table>
428
+ </div>
429
+
430
+ </div>
431
+
432
+ </div>
433
+
434
+ <div id="footer">
435
+ Generated on Fri Jul 22 11:22:30 2016 by
436
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
437
+ 0.9.4 (ruby-2.1.2).
438
+ </div>
439
+
440
+ </div>
441
+ </body>
442
+ </html>
@@ -0,0 +1,916 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: Sorts
8
+
9
+ &mdash; Documentation by YARD 0.9.4
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="css/style.css" type="text/css" charset="utf-8" />
14
+
15
+ <link rel="stylesheet" href="css/common.css" type="text/css" charset="utf-8" />
16
+
17
+ <script type="text/javascript" charset="utf-8">
18
+ pathId = "Sorts";
19
+ relpath = '';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="class_list.html"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="_index.html">Index (S)</a> &raquo;
40
+
41
+
42
+ <span class="title">Sorts</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <iframe id="search_frame" src="class_list.html"></iframe>
63
+
64
+ <div id="content"><h1>Class: Sorts
65
+
66
+
67
+
68
+ </h1>
69
+ <div class="box_info">
70
+
71
+ <dl>
72
+ <dt>Inherits:</dt>
73
+ <dd>
74
+ <span class="inheritName">Object</span>
75
+
76
+ <ul class="fullTree">
77
+ <li>Object</li>
78
+
79
+ <li class="next">Sorts</li>
80
+
81
+ </ul>
82
+ <a href="#" class="inheritanceTree">show all</a>
83
+
84
+ </dd>
85
+ </dl>
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+ <dl>
98
+ <dt>Defined in:</dt>
99
+ <dd>lib/algorithm_selector.rb</dd>
100
+ </dl>
101
+
102
+ </div>
103
+
104
+ <h2>Overview</h2><div class="docstring">
105
+ <div class="discussion">
106
+
107
+ <p>Sorts class</p>
108
+
109
+
110
+ </div>
111
+ </div>
112
+ <div class="tags">
113
+
114
+
115
+ </div>
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+ <h2>
124
+ Instance Method Summary
125
+ <small><a href="#" class="summary_toggle">collapse</a></small>
126
+ </h2>
127
+
128
+ <ul class="summary">
129
+
130
+ <li class="public ">
131
+ <span class="summary_signature">
132
+
133
+ <a href="#all-instance_method" title="#all (instance method)">#<strong>all</strong>(array, num_tests) &#x21d2; Object </a>
134
+
135
+
136
+
137
+ </span>
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+ <span class="summary_desc"><div class='inline'>
148
+ <p>Show all results from sorting algorithms.</p>
149
+ </div></span>
150
+
151
+ </li>
152
+
153
+
154
+ <li class="public ">
155
+ <span class="summary_signature">
156
+
157
+ <a href="#analyze-instance_method" title="#analyze (instance method)">#<strong>analyze</strong>(array, algorithm, num_tests) &#x21d2; Object </a>
158
+
159
+
160
+
161
+ </span>
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+ <span class="summary_desc"><div class='inline'>
172
+ <p>Analyze specific sorting algorithm by name.</p>
173
+ </div></span>
174
+
175
+ </li>
176
+
177
+
178
+ <li class="public ">
179
+ <span class="summary_signature">
180
+
181
+ <a href="#best-instance_method" title="#best (instance method)">#<strong>best</strong>(array, num_tests) &#x21d2; Object </a>
182
+
183
+
184
+
185
+ </span>
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+ <span class="summary_desc"><div class='inline'>
196
+ <p>Show the best sorting algorithm.</p>
197
+ </div></span>
198
+
199
+ </li>
200
+
201
+
202
+ <li class="public ">
203
+ <span class="summary_signature">
204
+
205
+ <a href="#bubble_sort-instance_method" title="#bubble_sort (instance method)">#<strong>bubble_sort</strong>(array) &#x21d2; Object </a>
206
+
207
+
208
+
209
+ </span>
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+ <span class="summary_desc"><div class='inline'>
220
+ <p>Bubble sort Worst-Case Space Complexity: O(1) Averge-Case Time Complexity:
221
+ O(n^2) Worst-Case Time Complexity: O(n^2).</p>
222
+ </div></span>
223
+
224
+ </li>
225
+
226
+
227
+ <li class="public ">
228
+ <span class="summary_signature">
229
+
230
+ <a href="#compare-instance_method" title="#compare (instance method)">#<strong>compare</strong>(array, first_algorithm, second_algorithm, num_tests) &#x21d2; Object </a>
231
+
232
+
233
+
234
+ </span>
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+ <span class="summary_desc"><div class='inline'>
245
+ <p>Compare two algorithms for data set.</p>
246
+ </div></span>
247
+
248
+ </li>
249
+
250
+
251
+ <li class="public ">
252
+ <span class="summary_signature">
253
+
254
+ <a href="#insertion_sort-instance_method" title="#insertion_sort (instance method)">#<strong>insertion_sort</strong>(array) &#x21d2; Object </a>
255
+
256
+
257
+
258
+ </span>
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+ <span class="summary_desc"><div class='inline'>
269
+ <p>Insertion sort Worst-Case Space Complexity: O(1) Averge-Case Time
270
+ Complexity: O(n^2) Worst-Case Time Complexity: O(n^2).</p>
271
+ </div></span>
272
+
273
+ </li>
274
+
275
+
276
+ <li class="public ">
277
+ <span class="summary_signature">
278
+
279
+ <a href="#merge_sort-instance_method" title="#merge_sort (instance method)">#<strong>merge_sort</strong>(array) &#x21d2; Object </a>
280
+
281
+
282
+
283
+ </span>
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+ <span class="summary_desc"><div class='inline'>
294
+ <p>Merge sort Worst-Case Space Complexity: O(n) Averge-Case Time Complexity:
295
+ O(n log(n)) Worst-Case Time Complexity: O(n log(n)).</p>
296
+ </div></span>
297
+
298
+ </li>
299
+
300
+
301
+ <li class="public ">
302
+ <span class="summary_signature">
303
+
304
+ <a href="#quick_sort-instance_method" title="#quick_sort (instance method)">#<strong>quick_sort</strong>(array) &#x21d2; Object </a>
305
+
306
+
307
+
308
+ </span>
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+ <span class="summary_desc"><div class='inline'>
319
+ <p>Quick sort Worst-Case Space Complexity: O(log(n)) Averge-Case Time
320
+ Complexity: O(n log(n)) Worst-Case Time Complexity: O(n^2).</p>
321
+ </div></span>
322
+
323
+ </li>
324
+
325
+
326
+ <li class="public ">
327
+ <span class="summary_signature">
328
+
329
+ <a href="#selection_sort-instance_method" title="#selection_sort (instance method)">#<strong>selection_sort</strong>(array) &#x21d2; Object </a>
330
+
331
+
332
+
333
+ </span>
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+ <span class="summary_desc"><div class='inline'>
344
+ <p>Selection sort Worst-Case Space Complexity: O(1) Averge-Case Time
345
+ Complexity: O(n^2) Worst-Case Time Complexity: O(n^2).</p>
346
+ </div></span>
347
+
348
+ </li>
349
+
350
+
351
+ </ul>
352
+
353
+
354
+
355
+
356
+ <div id="instance_method_details" class="method_details_list">
357
+ <h2>Instance Method Details</h2>
358
+
359
+
360
+ <div class="method_details first">
361
+ <h3 class="signature first" id="all-instance_method">
362
+
363
+ #<strong>all</strong>(array, num_tests) &#x21d2; <tt>Object</tt>
364
+
365
+
366
+
367
+
368
+
369
+ </h3><div class="docstring">
370
+ <div class="discussion">
371
+
372
+ <p>Show all results from sorting algorithms</p>
373
+
374
+
375
+ </div>
376
+ </div>
377
+ <div class="tags">
378
+
379
+
380
+ </div><table class="source_code">
381
+ <tr>
382
+ <td>
383
+ <pre class="lines">
384
+
385
+
386
+ 53
387
+ 54
388
+ 55
389
+ 56
390
+ 57
391
+ 58
392
+ 59
393
+ 60
394
+ 61
395
+ 62
396
+ 63
397
+ 64</pre>
398
+ </td>
399
+ <td>
400
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 53</span>
401
+
402
+ <span class='kw'>def</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
403
+ <span class='lbrace'>{</span>
404
+ <span class='label'>sorted:</span> <span class='id identifier rubyid_merge_sort'>merge_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span><span class='comma'>,</span>
405
+ <span class='label'>results:</span> <span class='lbrace'>{</span>
406
+ <span class='label'>bubble_sort:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_bubble_sort'>bubble_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
407
+ <span class='label'>insertion_sort:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_insertion_sort'>insertion_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
408
+ <span class='label'>selection_sort:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_selection_sort'>selection_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
409
+ <span class='label'>merge_sort:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_merge_sort'>merge_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span><span class='comma'>,</span>
410
+ <span class='label'>quick_sort:</span> <span class='id identifier rubyid_display_time'>display_time</span><span class='lparen'>(</span><span class='const'>Proc</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span> <span class='lbrace'>{</span><span class='id identifier rubyid_quick_sort'>quick_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
411
+ <span class='rbrace'>}</span>
412
+ <span class='rbrace'>}</span>
413
+ <span class='kw'>end</span></pre>
414
+ </td>
415
+ </tr>
416
+ </table>
417
+ </div>
418
+
419
+ <div class="method_details ">
420
+ <h3 class="signature " id="analyze-instance_method">
421
+
422
+ #<strong>analyze</strong>(array, algorithm, num_tests) &#x21d2; <tt>Object</tt>
423
+
424
+
425
+
426
+
427
+
428
+ </h3><div class="docstring">
429
+ <div class="discussion">
430
+
431
+ <p>Analyze specific sorting algorithm by name</p>
432
+
433
+
434
+ </div>
435
+ </div>
436
+ <div class="tags">
437
+
438
+
439
+ </div><table class="source_code">
440
+ <tr>
441
+ <td>
442
+ <pre class="lines">
443
+
444
+
445
+ 83
446
+ 84
447
+ 85
448
+ 86
449
+ 87
450
+ 88
451
+ 89
452
+ 90
453
+ 91
454
+ 92
455
+ 93
456
+ 94
457
+ 95</pre>
458
+ </td>
459
+ <td>
460
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 83</span>
461
+
462
+ <span class='kw'>def</span> <span class='id identifier rubyid_analyze'>analyze</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_algorithm'>algorithm</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
463
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
464
+ <span class='id identifier rubyid_alg'>alg</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
465
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span>
466
+ <span class='kw'>if</span> <span class='id identifier rubyid_algorithm'>algorithm</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span>
467
+ <span class='id identifier rubyid_alg'>alg</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
468
+ <span class='kw'>end</span>
469
+ <span class='kw'>end</span>
470
+ <span class='lbrace'>{</span>
471
+ <span class='label'>sorted:</span> <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:sorted</span><span class='rbracket'>]</span><span class='comma'>,</span>
472
+ <span class='id identifier rubyid_alg'>alg</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_alg'>alg</span><span class='lbracket'>[</span><span class='id identifier rubyid_alg'>alg</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
473
+ <span class='rbrace'>}</span>
474
+ <span class='kw'>end</span></pre>
475
+ </td>
476
+ </tr>
477
+ </table>
478
+ </div>
479
+
480
+ <div class="method_details ">
481
+ <h3 class="signature " id="best-instance_method">
482
+
483
+ #<strong>best</strong>(array, num_tests) &#x21d2; <tt>Object</tt>
484
+
485
+
486
+
487
+
488
+
489
+ </h3><div class="docstring">
490
+ <div class="discussion">
491
+
492
+ <p>Show the best sorting algorithm</p>
493
+
494
+
495
+ </div>
496
+ </div>
497
+ <div class="tags">
498
+
499
+
500
+ </div><table class="source_code">
501
+ <tr>
502
+ <td>
503
+ <pre class="lines">
504
+
505
+
506
+ 67
507
+ 68
508
+ 69
509
+ 70
510
+ 71
511
+ 72
512
+ 73
513
+ 74
514
+ 75
515
+ 76
516
+ 77
517
+ 78
518
+ 79
519
+ 80</pre>
520
+ </td>
521
+ <td>
522
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 67</span>
523
+
524
+ <span class='kw'>def</span> <span class='id identifier rubyid_best'>best</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
525
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
526
+ <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>=</span> <span class='int'>0</span>
527
+ <span class='id identifier rubyid_best_algorithm'>best_algorithm</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
528
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span>
529
+ <span class='kw'>if</span> <span class='id identifier rubyid_val'>val</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>||</span> <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>==</span> <span class='int'>0</span>
530
+ <span class='id identifier rubyid_best_time'>best_time</span> <span class='op'>=</span> <span class='id identifier rubyid_val'>val</span>
531
+ <span class='id identifier rubyid_best_algorithm'>best_algorithm</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
532
+ <span class='kw'>end</span>
533
+ <span class='kw'>end</span>
534
+ <span class='lbrace'>{</span>
535
+ <span class='id identifier rubyid_best_algorithm'>best_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_best_algorithm'>best_algorithm</span><span class='lbracket'>[</span><span class='id identifier rubyid_best_algorithm'>best_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
536
+ <span class='rbrace'>}</span>
537
+ <span class='kw'>end</span></pre>
538
+ </td>
539
+ </tr>
540
+ </table>
541
+ </div>
542
+
543
+ <div class="method_details ">
544
+ <h3 class="signature " id="bubble_sort-instance_method">
545
+
546
+ #<strong>bubble_sort</strong>(array) &#x21d2; <tt>Object</tt>
547
+
548
+
549
+
550
+
551
+
552
+ </h3><div class="docstring">
553
+ <div class="discussion">
554
+
555
+ <p>Bubble sort Worst-Case Space Complexity: O(1) Averge-Case Time Complexity:
556
+ O(n^2) Worst-Case Time Complexity: O(n^2)</p>
557
+
558
+
559
+ </div>
560
+ </div>
561
+ <div class="tags">
562
+
563
+
564
+ </div><table class="source_code">
565
+ <tr>
566
+ <td>
567
+ <pre class="lines">
568
+
569
+
570
+ 119
571
+ 120
572
+ 121
573
+ 122
574
+ 123
575
+ 124
576
+ 125
577
+ 126
578
+ 127
579
+ 128
580
+ 129
581
+ 130
582
+ 131
583
+ 132
584
+ 133
585
+ 134</pre>
586
+ </td>
587
+ <td>
588
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 119</span>
589
+
590
+ <span class='kw'>def</span> <span class='id identifier rubyid_bubble_sort'>bubble_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
591
+ <span class='kw'>return</span> <span class='id identifier rubyid_array'>array</span> <span class='kw'>if</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&lt;</span> <span class='int'>2</span>
592
+ <span class='id identifier rubyid_switched'>switched</span> <span class='op'>=</span> <span class='kw'>true</span>
593
+ <span class='kw'>until</span> <span class='id identifier rubyid_switched'>switched</span> <span class='op'>==</span> <span class='kw'>false</span>
594
+ <span class='id identifier rubyid_switched'>switched</span> <span class='op'>=</span> <span class='kw'>false</span>
595
+ <span class='lparen'>(</span><span class='int'>1</span><span class='op'>...</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
596
+ <span class='kw'>if</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span>
597
+ <span class='id identifier rubyid_temp'>temp</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span>
598
+ <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
599
+ <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_temp'>temp</span>
600
+ <span class='id identifier rubyid_switched'>switched</span> <span class='op'>=</span> <span class='kw'>true</span>
601
+ <span class='kw'>end</span>
602
+ <span class='kw'>end</span>
603
+ <span class='kw'>end</span>
604
+ <span class='kw'>return</span> <span class='id identifier rubyid_array'>array</span>
605
+ <span class='kw'>end</span></pre>
606
+ </td>
607
+ </tr>
608
+ </table>
609
+ </div>
610
+
611
+ <div class="method_details ">
612
+ <h3 class="signature " id="compare-instance_method">
613
+
614
+ #<strong>compare</strong>(array, first_algorithm, second_algorithm, num_tests) &#x21d2; <tt>Object</tt>
615
+
616
+
617
+
618
+
619
+
620
+ </h3><div class="docstring">
621
+ <div class="discussion">
622
+
623
+ <p>Compare two algorithms for data set</p>
624
+
625
+
626
+ </div>
627
+ </div>
628
+ <div class="tags">
629
+
630
+
631
+ </div><table class="source_code">
632
+ <tr>
633
+ <td>
634
+ <pre class="lines">
635
+
636
+
637
+ 98
638
+ 99
639
+ 100
640
+ 101
641
+ 102
642
+ 103
643
+ 104
644
+ 105
645
+ 106
646
+ 107
647
+ 108
648
+ 109
649
+ 110
650
+ 111
651
+ 112
652
+ 113</pre>
653
+ </td>
654
+ <td>
655
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 98</span>
656
+
657
+ <span class='kw'>def</span> <span class='id identifier rubyid_compare'>compare</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_first_algorithm'>first_algorithm</span><span class='comma'>,</span> <span class='id identifier rubyid_second_algorithm'>second_algorithm</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
658
+ <span class='id identifier rubyid_hash'>hash</span> <span class='op'>=</span> <span class='id identifier rubyid_all'>all</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='comma'>,</span> <span class='id identifier rubyid_num_tests'>num_tests</span><span class='rparen'>)</span>
659
+ <span class='id identifier rubyid_first'>first</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
660
+ <span class='id identifier rubyid_second'>second</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
661
+ <span class='id identifier rubyid_hash'>hash</span><span class='lbracket'>[</span><span class='symbol'>:results</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='op'>|</span>
662
+ <span class='kw'>if</span> <span class='id identifier rubyid_first_algorithm'>first_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span>
663
+ <span class='id identifier rubyid_first'>first</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
664
+ <span class='kw'>elsif</span> <span class='id identifier rubyid_second_algorithm'>second_algorithm</span><span class='period'>.</span><span class='id identifier rubyid_to_sym'>to_sym</span> <span class='op'>==</span> <span class='id identifier rubyid_key'>key</span>
665
+ <span class='id identifier rubyid_second'>second</span> <span class='op'>=</span> <span class='const'>Hash</span><span class='lbracket'>[</span><span class='id identifier rubyid_key'>key</span><span class='comma'>,</span> <span class='id identifier rubyid_val'>val</span><span class='rbracket'>]</span>
666
+ <span class='kw'>end</span>
667
+ <span class='kw'>end</span>
668
+ <span class='lbrace'>{</span>
669
+ <span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_first'>first</span><span class='lbracket'>[</span><span class='id identifier rubyid_first'>first</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span><span class='comma'>,</span>
670
+ <span class='id identifier rubyid_second'>second</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span> <span class='op'>=&gt;</span> <span class='id identifier rubyid_second'>second</span><span class='lbracket'>[</span><span class='id identifier rubyid_second'>second</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
671
+ <span class='rbrace'>}</span>
672
+ <span class='kw'>end</span></pre>
673
+ </td>
674
+ </tr>
675
+ </table>
676
+ </div>
677
+
678
+ <div class="method_details ">
679
+ <h3 class="signature " id="insertion_sort-instance_method">
680
+
681
+ #<strong>insertion_sort</strong>(array) &#x21d2; <tt>Object</tt>
682
+
683
+
684
+
685
+
686
+
687
+ </h3><div class="docstring">
688
+ <div class="discussion">
689
+
690
+ <p>Insertion sort Worst-Case Space Complexity: O(1) Averge-Case Time
691
+ Complexity: O(n^2) Worst-Case Time Complexity: O(n^2)</p>
692
+
693
+
694
+ </div>
695
+ </div>
696
+ <div class="tags">
697
+
698
+
699
+ </div><table class="source_code">
700
+ <tr>
701
+ <td>
702
+ <pre class="lines">
703
+
704
+
705
+ 140
706
+ 141
707
+ 142
708
+ 143
709
+ 144
710
+ 145
711
+ 146
712
+ 147
713
+ 148
714
+ 149
715
+ 150
716
+ 151
717
+ 152</pre>
718
+ </td>
719
+ <td>
720
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 140</span>
721
+
722
+ <span class='kw'>def</span> <span class='id identifier rubyid_insertion_sort'>insertion_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
723
+ <span class='kw'>return</span> <span class='id identifier rubyid_array'>array</span> <span class='kw'>if</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&lt;</span> <span class='int'>2</span>
724
+ <span class='lparen'>(</span><span class='int'>1</span><span class='op'>...</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
725
+ <span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span>
726
+ <span class='id identifier rubyid_j'>j</span> <span class='op'>=</span> <span class='id identifier rubyid_i'>i</span> <span class='op'>-</span> <span class='int'>1</span>
727
+ <span class='kw'>while</span> <span class='lparen'>(</span><span class='id identifier rubyid_j'>j</span> <span class='op'>&gt;=</span> <span class='int'>0</span> <span class='op'>&amp;&amp;</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_j'>j</span><span class='rbracket'>]</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span> <span class='kw'>do</span>
728
+ <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_j'>j</span><span class='op'>+</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_j'>j</span><span class='rbracket'>]</span>
729
+ <span class='id identifier rubyid_j'>j</span> <span class='op'>=</span> <span class='id identifier rubyid_j'>j</span> <span class='op'>-</span> <span class='int'>1</span>
730
+ <span class='kw'>end</span>
731
+ <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_j'>j</span><span class='op'>+</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span>
732
+ <span class='kw'>end</span>
733
+ <span class='id identifier rubyid_array'>array</span>
734
+ <span class='kw'>end</span></pre>
735
+ </td>
736
+ </tr>
737
+ </table>
738
+ </div>
739
+
740
+ <div class="method_details ">
741
+ <h3 class="signature " id="merge_sort-instance_method">
742
+
743
+ #<strong>merge_sort</strong>(array) &#x21d2; <tt>Object</tt>
744
+
745
+
746
+
747
+
748
+
749
+ </h3><div class="docstring">
750
+ <div class="discussion">
751
+
752
+ <p>Merge sort Worst-Case Space Complexity: O(n) Averge-Case Time Complexity:
753
+ O(n log(n)) Worst-Case Time Complexity: O(n log(n))</p>
754
+
755
+
756
+ </div>
757
+ </div>
758
+ <div class="tags">
759
+
760
+
761
+ </div><table class="source_code">
762
+ <tr>
763
+ <td>
764
+ <pre class="lines">
765
+
766
+
767
+ 177
768
+ 178
769
+ 179
770
+ 180
771
+ 181
772
+ 182
773
+ 183</pre>
774
+ </td>
775
+ <td>
776
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 177</span>
777
+
778
+ <span class='kw'>def</span> <span class='id identifier rubyid_merge_sort'>merge_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
779
+ <span class='kw'>return</span> <span class='id identifier rubyid_array'>array</span> <span class='kw'>if</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span> <span class='op'>&lt;</span> <span class='int'>2</span>
780
+ <span class='id identifier rubyid_middle'>middle</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>/</span><span class='int'>2</span>
781
+ <span class='id identifier rubyid_left'>left</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='int'>0</span><span class='op'>...</span><span class='id identifier rubyid_middle'>middle</span><span class='rbracket'>]</span>
782
+ <span class='id identifier rubyid_right'>right</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_middle'>middle</span><span class='op'>...</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rbracket'>]</span>
783
+ <span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_merge_sort'>merge_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_left'>left</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_merge_sort'>merge_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_right'>right</span><span class='rparen'>)</span><span class='rparen'>)</span>
784
+ <span class='kw'>end</span></pre>
785
+ </td>
786
+ </tr>
787
+ </table>
788
+ </div>
789
+
790
+ <div class="method_details ">
791
+ <h3 class="signature " id="quick_sort-instance_method">
792
+
793
+ #<strong>quick_sort</strong>(array) &#x21d2; <tt>Object</tt>
794
+
795
+
796
+
797
+
798
+
799
+ </h3><div class="docstring">
800
+ <div class="discussion">
801
+
802
+ <p>Quick sort Worst-Case Space Complexity: O(log(n)) Averge-Case Time
803
+ Complexity: O(n log(n)) Worst-Case Time Complexity: O(n^2)</p>
804
+
805
+
806
+ </div>
807
+ </div>
808
+ <div class="tags">
809
+
810
+
811
+ </div><table class="source_code">
812
+ <tr>
813
+ <td>
814
+ <pre class="lines">
815
+
816
+
817
+ 189
818
+ 190
819
+ 191
820
+ 192
821
+ 193
822
+ 194
823
+ 195</pre>
824
+ </td>
825
+ <td>
826
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 189</span>
827
+
828
+ <span class='kw'>def</span> <span class='id identifier rubyid_quick_sort'>quick_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
829
+ <span class='kw'>return</span> <span class='id identifier rubyid_array'>array</span> <span class='kw'>if</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_count'>count</span> <span class='op'>&lt;</span> <span class='int'>2</span>
830
+ <span class='id identifier rubyid_pivot'>pivot</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
831
+ <span class='id identifier rubyid_left'>left</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_el'>el</span><span class='op'>|</span> <span class='id identifier rubyid_el'>el</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_pivot'>pivot</span><span class='rbrace'>}</span>
832
+ <span class='id identifier rubyid_right'>right</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_el'>el</span><span class='op'>|</span> <span class='id identifier rubyid_el'>el</span> <span class='op'>&gt;</span> <span class='id identifier rubyid_pivot'>pivot</span><span class='rbrace'>}</span>
833
+ <span class='id identifier rubyid_quick_sort'>quick_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_left'>left</span><span class='rparen'>)</span> <span class='op'>+</span> <span class='lbracket'>[</span><span class='id identifier rubyid_pivot'>pivot</span><span class='rbracket'>]</span> <span class='op'>+</span> <span class='id identifier rubyid_quick_sort'>quick_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_right'>right</span><span class='rparen'>)</span>
834
+ <span class='kw'>end</span></pre>
835
+ </td>
836
+ </tr>
837
+ </table>
838
+ </div>
839
+
840
+ <div class="method_details ">
841
+ <h3 class="signature " id="selection_sort-instance_method">
842
+
843
+ #<strong>selection_sort</strong>(array) &#x21d2; <tt>Object</tt>
844
+
845
+
846
+
847
+
848
+
849
+ </h3><div class="docstring">
850
+ <div class="discussion">
851
+
852
+ <p>Selection sort Worst-Case Space Complexity: O(1) Averge-Case Time
853
+ Complexity: O(n^2) Worst-Case Time Complexity: O(n^2)</p>
854
+
855
+
856
+ </div>
857
+ </div>
858
+ <div class="tags">
859
+
860
+
861
+ </div><table class="source_code">
862
+ <tr>
863
+ <td>
864
+ <pre class="lines">
865
+
866
+
867
+ 158
868
+ 159
869
+ 160
870
+ 161
871
+ 162
872
+ 163
873
+ 164
874
+ 165
875
+ 166
876
+ 167
877
+ 168
878
+ 169
879
+ 170
880
+ 171</pre>
881
+ </td>
882
+ <td>
883
+ <pre class="code"><span class="info file"># File 'lib/algorithm_selector.rb', line 158</span>
884
+
885
+ <span class='kw'>def</span> <span class='id identifier rubyid_selection_sort'>selection_sort</span><span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='rparen'>)</span>
886
+ <span class='lparen'>(</span><span class='int'>0</span><span class='op'>...</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='op'>-</span><span class='int'>1</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_i'>i</span><span class='op'>|</span>
887
+ <span class='id identifier rubyid_min'>min</span> <span class='op'>=</span> <span class='id identifier rubyid_i'>i</span>
888
+ <span class='lparen'>(</span><span class='id identifier rubyid_i'>i</span><span class='op'>+</span><span class='int'>1</span><span class='op'>...</span><span class='id identifier rubyid_array'>array</span><span class='period'>.</span><span class='id identifier rubyid_length'>length</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_a'>to_a</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_j'>j</span><span class='op'>|</span>
889
+ <span class='kw'>if</span> <span class='lparen'>(</span><span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_j'>j</span><span class='rbracket'>]</span> <span class='op'>&lt;</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_min'>min</span><span class='rbracket'>]</span><span class='rparen'>)</span>
890
+ <span class='id identifier rubyid_min'>min</span> <span class='op'>=</span> <span class='id identifier rubyid_j'>j</span>
891
+ <span class='kw'>end</span>
892
+ <span class='kw'>end</span>
893
+ <span class='kw'>if</span> <span class='id identifier rubyid_min'>min</span> <span class='op'>!=</span> <span class='id identifier rubyid_i'>i</span>
894
+ <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_min'>min</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_i'>i</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id identifier rubyid_array'>array</span><span class='lbracket'>[</span><span class='id identifier rubyid_min'>min</span><span class='rbracket'>]</span>
895
+ <span class='kw'>end</span>
896
+ <span class='kw'>end</span>
897
+ <span class='kw'>return</span> <span class='id identifier rubyid_array'>array</span>
898
+ <span class='kw'>end</span></pre>
899
+ </td>
900
+ </tr>
901
+ </table>
902
+ </div>
903
+
904
+ </div>
905
+
906
+ </div>
907
+
908
+ <div id="footer">
909
+ Generated on Fri Jul 22 11:22:30 2016 by
910
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
911
+ 0.9.4 (ruby-2.1.2).
912
+ </div>
913
+
914
+ </div>
915
+ </body>
916
+ </html>