Linjär sökning och binär sökning är vanliga algoritmer som används för att hitta element i en lista. Förstå det förväntade antalet jämförelser varje algoritm gör kan hjälpa till att välja den mest effektiva metoden för specifika situationer. Denna artikel jämför de förväntade jämförelserna i linjära kontra binära sökmetoder.
Linear Search
Linjär sök kontrollerar varje element i listan sekventiellt tills det hittar målet eller når slutet. Det förväntade antalet jämförelser beror på om målet är närvarande och dess position i listan.
Om listan innehåller ]]] element och målet är lika sannolikt att vara i någon position, är det förväntade antalet jämförelser:
] Förväntade jämförelser = (n + 1) / 2
Detta beror på att i genomsnitt sökningen kommer att hitta målet halvvägs genom listan.
Binär sökning
Binär sökning fungerar på sorterade listor genom att upprepade gånger dela sökintervallet i hälften. Dess effektivitet beror på listans storlek och målets position.
I bästa fall är målet i mitten, vilket kräver endast en jämförelse. I värsta fall tar det ungefär ] logg ]]]] 2 ]] n[]]] jämförelser.
Om målet är lika sannolikt att vara i någon position, är det förväntade antalet jämförelser ungefär:
] Förutsedda jämförelser ≈ log[][]] n[]]]]
Jämförelse Sammanfattning
- Linjär sökning har en förväntad jämförelseräkning av (n + 1) / 2.
- Binär sökning har en förväntad jämförelse räknas av ungefärlig log ] 2 n.
- Binär sökning kräver i allmänhet färre jämförelser för stora listor.
- Linjär sökning kan vara att föredra för små eller osorterade listor.