|
1 | 1 | # frozen_string_literal: true
|
| 2 | +def binary_search(value, array, left, right) |
| 3 | + middle = ((left + right) / 2).truncate |
2 | 4 |
|
3 |
| -def busca_binaria(valor, vetor, esquerda, direita) |
4 |
| - meio = ((esquerda + direita) / 2).floor |
| 5 | + return -1 unless left <= right |
5 | 6 |
|
6 |
| - return -1 unless esquerda <= direita |
7 |
| - |
8 |
| - if valor > vetor[meio] |
9 |
| - busca_binaria(valor, vetor, meio + 1, direita) |
10 |
| - elsif valor < vetor[meio] |
11 |
| - busca_binaria(valor, vetor, esquerda, meio - 1) |
| 7 | + if value > array[middle] |
| 8 | + binary_search(value, array, middle + 1, right) |
| 9 | + elsif value < array[middle] |
| 10 | + binary_search(value, array, left, middle - 1) |
12 | 11 | else
|
13 |
| - meio |
| 12 | + middle |
14 | 13 | end
|
15 | 14 | end
|
16 | 15 |
|
17 |
| -vetor = [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12] |
18 |
| -print busca_binaria(12, vetor, 0, vetor.length) |
| 16 | +array = [0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12] |
| 17 | +puts binary_search(12, array, 0, array.length) |
0 commit comments