Programmering 1

SÖK- OCH SORTERINGSALGORITMER
SÖKALGORITMER
Att söka efter ett visst element i en lista med n element
Man skiljer i huvudsak på två fall:
- Elementen är sorterade
- Elementen är osorterade
Linjär sökning
Algoritm
- Sök igenom elementen i tur och ordning
- Bryt när det sökta elementet påträffas eller när det uppenbaras att det sökta elementet inte finns med
eng. Sequential search
def seq_search(alist, item):
for x in alist:
if x == item:
return True
return False
print(seq_search([11, 23, 58, 31, 56, 77, 43, 12, 65, 19], 31))
Kod
Binär sökning
Förutsättning: Listan är sorterad
eng. Binary Search
- Binär betyder tvåfaldig
- En sökalgoritm som letar efter ett värde genom att upprepade gånger dela en lista i två hälfter och bestämma i vilken hälft sökvärdet finns.
Binär sökning

Mål: Söka efter värdet 15.
Hur algoritmen fungerar
LEFT
MIDDLE
RIGHT
Binär sökning
Följande samling av instruktioner utgör en binärsökningsalgoritm för att hitta positionen av värdet T i listan A, som innehåller n element med värdena A0 , A1, ..., An-1.
- Sätt L till 0 och R till n − 1.
- Om L > R, så har binärsökningen misslyckats.
- Sätt m (positionen av elementet i mitten av listan) till heltalsdelen av (L + R) / 2.
- Om Am < T, sätt L till m + 1 och gå till steg 2.
- Om Am > T, sätt R till m − 1 och gå till steg 2.
- Nu är Am = T, sökningen är färdig; returnera m.
eng. Binary search
Sök- och sorteringsalgoritmer
By Sandra Larsson
Sök- och sorteringsalgoritmer
- 257