E

Size: a a a
E
E
BO
BO
E
E
SL
SL
AS
Т
Т
Т
Т
И
Т
VA
num = Array.new(1000000) { |i| i+=1 }
- равно лишнее. Там берётся значение, возвращаемое в блокеif final.nil?
- лучше unless final
. А вообще в таких случаях используют конструкцию ||=
exit
- слишком круто. Лучше использовать return
Ну или raise
Между +
, -
и прочим пробелы надо с двух сторон вставлятьreturn
если переделать if array[half] != find
на if array[half] == find ..... else ....
В итоге это похоже на хвостовую рекурсию - так что можно развернуть в цикл.Т
Т