Permalänk
Medlem

binär sökning

Hej alla!
Jag behöver hjälp med en fråga, som jag inte kunnat lösa riktig.

Vilket är det största antalet element som kommer att
undersökas om man gör en binär sökning på 4000
namn?

jag trodde först det var 2000, sen 1000 men det var fel.

Jag vet att i en sekventiell sökning så kollas alla poster i tur och ordning, (4000). Och att i binär så kolla man ena hälften hela tiden.

Jag tror nu att jag kankse borde räkna såhär:

2 + 4+ 8 +16+ 32+ 64 +128+ 250+ 500+ 1000 +2000 =

kan det stämma??

snälla hjälp och råd:)

Permalänk
Medlem

http://sv.wikipedia.org/wiki/Bin%C3%A4rs%C3%B6kning
låter mer som att svaret skulle vara log2(4000) ? dvs ~12sökningar.

Visa signatur

Citera om du skriver till mig. Annars läser jag troligtvis INTE.

Permalänk
Hedersmedlem

Precis, för varje gång du väljer en gren så tar du ju direkt bort hälften av alla som du hade att välja mellan. Står du vid roten och väljer höger gren, då har du direkt valt bort hälften av alla 4000. Det blir samma sak för varje val man gör, hälften försvinner. Så log2(4000) låter rätt.

Permalänk
Medlem

precis som ovanstående skriver blir antalet logaritmiskt i en binär sökning

Permalänk
Medlem

jaha okei tack för hjälpen:)
Nu förstår jag:)

Jag trodde jag skulle plussa ihop delningarna såhär:
2 + 4+ 8 +16+ 32+ 64 +128+ 250+ 500+ 1000 +2000+4000

Men skall alltså bara räkna stegen som blir 12

Tack igen för alla svar:)