Das Beispiel dieses Artikels zeigt den zwei -Punkte -Suchalgorithmus von Java an. Teilen Sie es für alle für Ihre Referenz. Die Einzelheiten sind wie folgt:
1. Voraussetzung: Die Prämisse der beiden Punkte ist, dass das Array, das gefunden werden muss, sortiert werden muss.
2. Prinzipien: Teilen Sie die Zahl in drei Teile, um vor dem Medianwert (der sogenannte Median ist der Wert der mittleren Position des Arrays) vor dem Medianwert zu finden. Dann wird der rekursive Prozess dann die erste oder die zweite Hälfte in drei Teile weiter zersetzt. Es kann nicht klar beschrieben werden. Aus der Beschreibung ist ersichtlich, dass dieser Algorithmus für die Rekursion geeignet ist und diejenigen, die eine Rekursion sind, mit Zyklen implementiert werden können. Daher ist unsere Implementierung in zwei Arten unterteilt: Rekursion und Zyklus.
Code implementieren:
public class binarysearch {public static void main (String [] art) {int Searcharrrrrrr [] = new int [1000000]; println (Binsearch (Searcharrrrrr, 0, Searcharr.Length-99)); End -Start)/2 + starten; (Arr, 0, Mid -1, Sear);} else if (sear> arr [Mid]) {return binsearch (arr, Mid+1, Ende, Sear);} return -1;} // Zyklus zwei Punkte finden Die öffentliche statische int binsearch (int arr [], int key) {int Mid = arrr.length/2; start)/2+start; if (key == arr [Mid]) {return Mid;} else if (key <= arr [Mid]) {end = Mid -1;} else if (key> = arr [Mid) ]) {start = Mid+1;}} return -1;}Effizienzvergleich:
Die Effizienz des Cycle -Duplex -Suchalgorithmus ist höher als der rekursive Dual -Punkte -Suchalgorithmus
Es ist zu hoffen, dass dieser Artikel für Java -Programmdesign aller hilfreich ist.