„Einfache“ Suchalgorithmen gehen meist so vor, alle Elemente des Arrays zu durchlaufen, bis der gesuchte Wert gefunden ist. Bei großen Arrays, können durch andere Algorithmen, kleinere oder größere Geschwindigkeitsvorteile erzielt werden – abhängig von Größe des Feldes und Anzahl der Suchoperationen. Ein Beispiel dafür wäre die binäre Suche, bei der das Feld aber sortiert sein muss. Sie basiert auf einer einfachen Form des Schemas Teile und Herrsche. Einfach gesagt, halbiert sich die Länge des Suchbereiches so von Schritt zu Schritt und spätestens bei einer Suchbereichslänge von 1, ist das Element gefunden.
Array.prototype.bsearch = function(value) { var high = this.length, low = -1, mid; while(high - low > 1) { if(this[mid = high + low >> 1] < value) { low = mid; } else { high = mid; } } return this[high] != value ? -1 : high; }
0 Kommentare