Méthode de recherche pour rechercher tout en réduisant la plage de moitié
La vitesse de recherche est rapide
Les données doivent être pré-alignées
BinarySerch.java
class BinarySerch{
public static void main(String[] args){
//Tableau trié à rechercher
int a[] = {1,3,6,8,10};
//Valeur à rechercher
int serchValue = 3;
//La valeur initiale du numéro de séquence des données trouvées est une valeur d'erreur (-1)
int find = -1;
//Numéros les plus à gauche et à droite à rechercher
int left = 0;
int right = a.length-1;
//Répétez quand il y a des données sur les bords gauche et droit à vérifier
while(left <= right){
//Spécifiez la position pour vérifier le nombre au milieu de la gauche et de la droite
int middle = (int)((left + right)/2);
//Comparez la valeur de la position à rechercher avec la position à rechercher
if(a[middle] == serchValue){
//S'ils sont identiques, enregistrez le numéro et terminez l'itération
find = middle;
break;
}else if (a[middle] < serchValue){
//Si elle est inférieure à la valeur que vous recherchez, déplacez le bord gauche
left = middle + 1;
}else {
//S'il est supérieur à la valeur que vous recherchez, déplacez le bord droit
right = middle - 1;
}
}
//Afficher les résultats de la recherche
System.out.println("Résultats de recherche:" + find);
}
}
Livre de référence [Algorithme d'apprentissage agréable et livre illustré de programmation](https://www.amazon.co.jp/%E6%A5%BD%E3%81%97%E3%81%8F%E5%AD%A6%E3%81] % B6-% E3% 82% A2% E3% 83% AB% E3% 82% B4% E3% 83% AA% E3% 82% BA% E3% 83% A0% E3% 81% A8% E3% 83% 97% E3% 83% AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E3% 81% AE% E5% 9B% B3% E9% 91% 91-% E6% A3% AE-% E5% B7% A7% E5% B0% 9A-ebook / dp / B01N56TW48)
Recommended Posts