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.

 

  1. Sätt L till 0 och R till n − 1.
  2. Om L > R, så har binärsökningen misslyckats.
  3. Sätt m (positionen av elementet i mitten av listan) till heltalsdelen av (L + R) / 2.
  4. Om Am < T, sätt L till m + 1 och gå till steg 2.
  5. Om Am > T, sätt R till m − 1 och gå till steg 2.
  6. Nu är Am = T, sökningen är färdig; returnera m.

eng. Binary search

Made with Slides.com