Heim >Java >javaLernprogramm >Beispiel für eine Java-Suche: Binäre Methode zum Suchen von Elementen (Code)

Beispiel für eine Java-Suche: Binäre Methode zum Suchen von Elementen (Code)

不言
不言Original
2018-08-21 14:20:062527Durchsuche

Der Inhalt dieses Artikels befasst sich mit Java-Suchbeispielen: Die Methode (Code) zum Finden von Elementen mithilfe der Binärmethode. Ich hoffe, dass sie für Freunde hilfreich ist.

Idee des binären Suchprinzips:

Suchdaten und Geordnetes Array Vergleichen Sie das mittlere Element, um festzustellen, ob es sich links oder rechts vom mittleren Element befindet. Passen Sie den minimalen Suchindexwert an. Wenn es sich links befindet, passen Sie den maximalen Wert an Indexwert suchen und den nächsten Zyklus eingeben; Wenn sie gleich sind, ist die aktuelle Position die Position der Suchdaten und die Schleife stoppt:

Weil es auf der Größenbeziehung zwischen Array-Elementen basiert. Um Elemente zu finden, muss das Array ein geordnetes

Array sein und die Codes für aufsteigende Reihenfolge (von klein nach groß) und absteigende Reihenfolge ( von groß nach klein) wird unterschiedlich sein. In diesem Artikel wird als Beispiel die aufsteigende Reihenfolge verwendet.

public class Dichotomy {
	
	public static void main(String[] args) {
        int [] array = {1,2,3,4,5};
        int target = 2;//即array[1]
        
        int low = 0;
	int high = array.length - 1;
	while (low <= high) {
	    int middle = (low + high) / 2;
	    if (target > array[middle]) {
	    low = middle + 1;
	    } else if (target < array[middle]) {
		    high = middle - 1;
	    } else {
		    System.out.println(middle);
		    break;
	    }
	}
    }
}
Das Folgende ist das laufende Ergebnis:

Wenn es sich um ein ungeordnetes Array handelt und die Binärmethode zum Suchen von Elementen verwendet, sortieren Sie es einfach Array zuerst. Verwenden Sie beispielsweise die Blasensortierung, um in aufsteigender Reihenfolge (von klein nach groß) zu sortieren.

Das Folgende ist der spezifische Code:

public class Dichotomy {
	
	public static void main(String[] args) {
        int [] array = {3,2,5,1,4};
        //排序
        int temp = 0;
		for (int time = 1; time < array.length; time++) {
			for (int i = 0; i < array.length-time; i++) {
				if (array[i+1]<array[i]) {
					temp = array[i+1];
					array[i+1] = array[i];
					array[i] = temp;
				}
			}
		}
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}

        //二分法查找
        int target = 2;//即array[1]
        int low = 0;
        int high = array.length - 1;
		
        while (low <= high) {
	        int middle = (low + high) / 2;
	        if (target > array[middle]) {
	        low = middle + 1;
	        } else if (target < array[middle]) {
		        high = middle - 1;
	        } else {
		        System.out.println(middle);
		        break;
	        }
        }
    }
}

Das Folgende ist das laufende Ergebnis:

Verwandte Empfehlungen:

Detaillierte Beispiele für binäre Suche und binäre Suche im Java-Algorithmus

Beispielcode für die Implementierung eines binären Suchbaums in Java

Das obige ist der detaillierte Inhalt vonBeispiel für eine Java-Suche: Binäre Methode zum Suchen von Elementen (Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn