Suchmethode zum Suchen, während der Bereich halbiert wird
Die Suchgeschwindigkeit ist schnell
Daten müssen vorab ausgerichtet werden
BinarySerch.java
class BinarySerch{
public static void main(String[] args){
//Sortiertes Array zur Suche
int a[] = {1,3,6,8,10};
//Wert zu suchen
int serchValue = 3;
//Der Anfangswert der Sequenznummer der gefundenen Daten ist ein Fehlerwert (-1)
int find = -1;
//Zahlen ganz links und ganz rechts zu suchen
int left = 0;
int right = a.length-1;
//Wiederholen Sie diesen Vorgang, wenn am linken und rechten Rand Daten zur Überprüfung vorhanden sind
while(left <= right){
//Geben Sie die Position an, an der die Nummer in der Mitte links und rechts überprüft werden soll
int middle = (int)((left + right)/2);
//Vergleichen Sie den Wert der zu suchenden Position mit der zu suchenden Position
if(a[middle] == serchValue){
//Wenn sie identisch sind, speichern Sie die Nummer und beenden Sie die Iteration
find = middle;
break;
}else if (a[middle] < serchValue){
//Wenn es kleiner als der gesuchte Wert ist, verschieben Sie den linken Rand
left = middle + 1;
}else {
//Wenn es größer als der gesuchte Wert ist, verschieben Sie die rechte Kante
right = middle - 1;
}
}
//Suchergebnisse anzeigen
System.out.println("Suchergebnisse:" + find);
}
}
Nachschlagewerk [Angenehmer Lernalgorithmus und Programmierbilderbuch](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