Ich bin eine binäre Suche ausführen, sagen wir, ich muss den Mindestwert von x
so finden, dass black_box(x)
gibt mir true
Ergebnis.Durchführen einer binären Suche
Eigentum von black_box(x)
- Wenn
black_box(x)
mich wahr gibt dannx+1,x+2,x+3,x+4....upto infinty
alles gibt mirtrue
Für Integer Wert diese binäre Suche einfach
start=0;
end = Max;
ans=-1;
while(start<=end){
mid =(start+end)/2;
if(black_box(mid)):
end =mid-1
ans=mid;
else: start=mid+1;
}
Was ich, wenn will ein floating point
Ganzzahl bis 2 Dezimalstellen, wie soll ich binäre Suche durchführen?
Wenn 'end = Inf', wie können Sie die Mitte davon bestimmen? Selbst für "Int" ist das nicht der Fall. –
@WillemVanOnsem Es ist ein kleiner Ausdruck, Inf wird der Maximalwert, nur eine Darstellung, hoffe, Sie bekommen diese –
ja, aber es gibt Möglichkeiten, Ganzzahlen ohne Höchstwert darzustellen (oder zumindest nicht, bis Sie nicht mehr genügend Speicher haben, wie 'BigInteger' in Java –