1. Conclusion </ b>
2. Qu'est-ce qu'une recherche binaire? </ B>
3. Comment coder </ b>
4. Ce que j'ai appris d'ici (utilisé en cas d'erreur) </ b>
def binary_search(array, number_factors, value)
min_factor = 0
max_factor = number_factors - 1 #---❷
while min_factor <= max_factor do #---❸
center_factor = (min_factor + max_factor) / 2 #---❹
if array[center_factor] == value
return center_factor
elsif array[center_factor] < value
min_factor = center_factor + 1
else
max_factor = center_factor - 1 #---❺
end
end
return -1 #---❻
end
array=[1,3,5,6,9,10,13,20,26,31]
puts "Quel numéro recherchez-vous?"
value = gets.to_i
number_factors = array.length #---❶
result = binary_search(array, number_factors, value)
if result == -1 #---❼
puts "#{value}N'est pas actuellement enregistré."
else
puts "#{value}Est#{result}C'est la seconde."
end
❶: Commencez par compter les éléments du tableau dans le tableau. La recherche binaire commence par diviser l'élément en deux.
❷: Le numéro de l'élément le plus à gauche et le numéro de l'élément le plus à droite sont décidés. Puisque "0" est appliqué au tout début du tableau, l'extrémité gauche est 0 et l'extrémité droite est le nombre d'éléments incluant 0, donc "-1" est utilisé. (Il y a 10 éléments jusqu'à ex: 1 ... 31, mais l'élément commence par "0" à l'extrémité gauche, il devient donc "9" à l'extrémité droite)
❸: Ici, le nombre d'éléments de gauche et le nombre d'éléments de droite sont comparés. C'est parce que le nombre à l'extrême gauche ne dépasse pas le nombre à l'extrême droite.
❹: ❹ à ❻ sont les parties principales de la recherche binaire. J'ai trouvé l'élément central avec center_factor. Si les éléments du tableau sont impairs, ils seront arrondis automatiquement.
❺: divisez-le en deux et décidez si vous souhaitez effectuer une recherche à partir de la gauche ou de la droite. Si le centre est le numéro que vous recherchez, renvoyez-le avec retour. Ce sera affiché dans ❼. Si le nombre dans l'élément central n'est pas le nombre entré, il est décidé s'il faut attaquer de l'extrémité gauche ou de l'extrémité droite en fonction de la taille. Si la valeur saisie est plus grande, recherchez à partir de l'extrémité gauche (car ce tableau est plus grand de gauche à droite), si la valeur saisie est plus petite, recherchez à partir de l'extrémité droite (ce tableau est plus petit de droite à gauche) (Parce qu'il y a). Ensuite, ❹-❺ est répété par l'instruction while.
❻: Désigne le cas où le numéro recherché n'est pas trouvé. Il est courant de juger par intermittence avec "0" ou "1", mais comme "0" est utilisé dans l'élément du tableau de décharge, il est exprimé d'une manière facile à comprendre avec "-1".
❼: Enfin, les résultats recherchés sont affichés.
N'est-il pas nécessaire d'ajouter ".round" dans la partie de? Il semble qu'il soit automatiquement arrondi lorsque je le recherche. Lors de l'arrondi à l'endroit spécifié, il est pratique de coder avec ".round (2) <Puisque jusqu'à la 2ème place de la fraction est affichée, elle sera arrondie à la 3ème place de la fraction>" etc.!
Recommended Posts