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.