Heim  >  Artikel  >  Java  >  Java implementiert die binäre Suche

Java implementiert die binäre Suche

王林
王林nach vorne
2019-12-30 11:50:392303Durchsuche

Java implementiert die binäre Suche

Was ist binäre Suche:

Biometrische Suche ist eine binäre Suche, die nach dem angegebenen Element in einer geordneten Reihenfolge sucht und dabei den Mindestindex (niedrig) und The festlegt Maximaler Index (Höhe-1) und der Zwischenwert Mitte ((niedrig+höhe-1)/2). ist größer als das angegebene Element, Let height=mid-1;

Code-Implementierung: (Kostenlose Video-Tutorial-Freigabe: Java-Video-Tutorial)

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
 
public class Main2 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
				int arr[] = { 2, 5, 6, 8, 9, 4, 7 };
				Arrays.sort(arr);
				int deix(索引) = getxiabiao(arr, 7);
				
			}
			public static int getxiabiao(int[] arr, int key) {
				int heigh = arr.length-1;
				int low = 0;
				int mid = 0;
				while (low <= heigh) {
					mid = low + (heigh - low)/2;
					if (arr[mid] == key) {
						return mid;
					} else if (arr[mid] < key) {
						low = mid + 1;
					} else if (arr[mid] > key) {
						heigh = mid - 1;
					}
				}
				return -1;
			}
		}

Es gibt zwei Möglichkeiten um den Zwischenwert festzulegen;

Algorithmus 1: mittel = (niedrig + hoch) / 2

Algorithmus 2: mittel = niedrig + (hoch – niedrig)/2

Auf den ersten Blick ist Algorithmus 1 einfach, nach der Extraktion durch Algorithmus 2 gibt es keinen Unterschied zu Algorithmus 1. Aber tatsächlich besteht der Unterschied.

Der Ansatz von Algorithmus 1 birgt im Extremfall (niedrig + hoch) das Risiko eines Überlaufs und erhält dann falsche Mittelwerte, was zu Programmfehlern führt, während Algorithmus 2 sicherstellen kann, dass der berechnete Mittelwert sein muss größer als niedrig, kleiner als hoch, es gibt kein Überlaufproblem.

Empfohlene verwandte Artikel und Tutorials: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonJava implementiert die binäre Suche. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen