Heim  >  Artikel  >  Web-Frontend  >  JavaScript verwendet einen binären Suchalgorithmus, um Daten in einem Array zu finden. Tipps zu Javascript

JavaScript verwendet einen binären Suchalgorithmus, um Daten in einem Array zu finden. Tipps zu Javascript

WBOY
WBOYOriginal
2016-05-16 16:05:221126Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie JavaScript den binären Suchalgorithmus verwendet, um Daten in einem Array zu finden. Teilen Sie es als Referenz mit allen. Die spezifische Analyse lautet wie folgt:

Die binäre Suche, auch Halbsuche genannt, hat den Vorteil, dass weniger Vergleiche erforderlich sind, die Suchgeschwindigkeit schnell ist und die Durchschnittsleistung gut ist. Der Nachteil besteht darin, dass die nachzuschlagende Tabelle eine geordnete Tabelle sowie Einfügung und Löschung sein muss sind schwierig. Daher eignet sich die binäre Suchmethode für geordnete Listen, die sich nicht häufig ändern, aber häufig durchsucht werden. Unter der Annahme, dass die Elemente in der Tabelle in aufsteigender Reihenfolge angeordnet sind, vergleichen Sie zunächst das an der mittleren Position der Tabelle aufgezeichnete Schlüsselwort mit dem Suchschlüsselwort. Wenn die beiden gleich sind, ist die Suche erfolgreich. Andernfalls wird der Datensatz an der mittleren Position verwendet Teilen Sie die Tabelle in zwei Untertabellen, die erste und die letzte. Wenn das an der mittleren Position aufgezeichnete Schlüsselwort größer als das Suchschlüsselwort ist, wird die vorherige Untertabelle weiter durchsucht, andernfalls wird die nächste Untertabelle weiter durchsucht. Wiederholen Sie den obigen Vorgang, bis ein Datensatz gefunden wird, der die Bedingungen erfüllt, wodurch die Suche erfolgreich ist, oder bis die Untertabelle nicht mehr vorhanden ist. In diesem Fall schlägt die Suche fehl.

var Arr = [3,5,6,7,9,12,15];
function binary(find,arr,low,high){
if(low <= high){
if(arr[low] == find)
return low;
if(arr[high] == find)
return high;
var mid = Math.ceil((high + low)/2);
if(arr[mid] == find){
return mid;
}else if(arr[mid] > find){
return binary(find,arr,low,mid-1);
}else{
return binary(find,arr,mid+1,high);
}
}
return -1;
}
binary(15,Arr,0,Arr.length-1);

Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.

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