0
Je suis confronté à des problèmes dans le développement d'un algorithme de recherche binaire efficace Ruby en référence à this site
binaire Recherche retour mauvaise valeur
Réponse correcte: Retour une valeur -1432
reçu Réponse: Nil
est la suivante:
def bsearch(a, k)
lower = 0
upper = a.length-1
while a[upper].to_f> k.to_f and a[lower].to_f< k.to_f
low_diff = k.to_f -a[lower].to_f
range_diff = a[upper].to_f-a[lower].to_f
count_diff = upper-lower
range = ((low_diff/range_diff) * (count_diff)) + lower
if k.to_f > a[range].to_f
lower = range+1
elsif k.to_f < a[range].to_f
upper =range-1
else
lower = range
end
end
if k =a[lower]
return lower
else
return nil
end
end
S'il vous plaît aidez-moi avec la logique.
Vous savez (http://www.ruby-doc.org/core-2.0.0/Array.html#method-i-bsearch) [ 'Tableau # bsearch'], n'est-ce pas? – Stefan