Søk (lineært)
Å lete gjennom en liste etter et element. Lineært søk går gjennom listen ett element om gangen fra start til du finner det du leter etter (eller når slutten). Bygger på akkumulator-tankegangen: en løkke som sjekker hvert element.
Slik kan du tenke om det
- Stopp når du har funnet det Lineært søk leter fra start, ett element om gangen — og kan stoppe i det treffet kommer. Det er hele poenget med return eller break: i en liste med 1000 navn kan 998 celler stå helt urørt. Å lete videre etter at svaret er funnet, er bortkastet arbeid.
Vanlige feil
- Du tror løkka må gå helt til slutten selv om du har funnet svaret Når du leter etter ett element, er det lett å la løkka gå gjennom HELE listen uansett. Men når du har funnet det du leter etter, kan du stoppe med en gang — med `return` (i en funksjon) eller `break`. Det sparer arbeid, særlig i lange lister.
- Du starter maks-søket på 0 Når du leter etter det største tallet, er det fristende å skrive `storst = 0` før løkka. Det virker så lenge alle tallene er positive — men er alle negative, blir svaret `0`, et tall som ikke engang finnes i lista. Startverdien må hentes fra dataene selv: `storst = tall[0]`.
Øv på dette
- Flervalg: hva er lineært søk?
- Herme: søk i en liste
- Sjekk: må søket lete ferdig?
- Utvide: sorter og finn
- Utvide: tell antall treff
- Feilsøk: søket svarer for tidlig
- Øving: lineært søk i en liste
- Begrepssjekk: Søk og sortering
- Drill: Algoritme-begreper (øvet)
- Drill: Algoritmer — skriv koden
- Kodeløype: Arena — søk rundt veggene
- Drill: Algoritmer — utfordring
- Planlegg, så kod: finn den dyreste varen
- Tidlig stopp og kortstokken
- Lineært søk, eller bygg et oppslag først?