Algoritme
En presis oppskrift som løser et problem steg for steg. En algoritme er uavhengig av programmeringsspråk — den kan skrives som pseudokode, tegnes som flytdiagram, eller kodes i Python; det er den samme algoritmen.
Slik kan du tenke om det
- Oppskriften, ikke koden En algoritme er en presis oppskrift som løser et problem steg for steg, og den er den samme enten du skriver den på norsk, tegner den eller koder den. Du bruker slike oppskrifter hele tiden: en oppskrift på vafler, veibeskrivelsen hjem, måten du slår opp et ord i ordboka.
Vanlige feil
- Du tror en algoritme er det samme som kode Det er lett å sette likhetstegn mellom «algoritme» og «Python-kode». Men en algoritme er *oppskriften* — logikken — og finnes uavhengig av språk. Den samme algoritmen kan skrives som pseudokode, tegnes som flytdiagram, eller kodes i Python, JavaScript eller for hånd. Koden er bare én av mange måter å uttrykke algoritmen på.
- Du tror to løkker inni hverandre tar dobbelt så lang tid Det er lett å tenke at to løkker etter hverandre og to løkker inni hverandre koster det samme — «det er jo to løkker». Men plasseringen avgjør alt. To løkker ETTER hverandre over n elementer gjør n + n = 2n arbeid (dobbelt). En løkke INNI en annen kjører den indre løkka på nytt for HVERT element i den ytre — n · n = n² arbeid. For n = 1000 er det forskjellen på 2000 og 1 000 000 operasjoner. Veksten er ikke dobbelt, men kvadratisk: dobler du n, firedobles arbeidet i den nøstede løkka.
- Du tar ut fra feil ende av køen En kø er først inn, først ut: den som stilte seg først, betjenes først (`pop(0)`). En stakk er sist inn, først ut, som en tallerkenstabel (`pop()`). `pop()` uten argument tar fra slutten — bruker du den i en kø, betjener du den som kom sist.
Øv på dette
- Flervalg: hva er en algoritme?
- Sjekk: er algoritmen og koden det samme?
- Planlegg, så kod: gjennomsnitt
- Øving: tre akkumulatorer i én løkke
- To løsninger på duplikat-jakten — hvilken skalerer?
- Herme: én algoritme, tre former
- Begrepssjekk: Algoritmer og akkumulator
- Drill: Algoritme-begreper
- Drill: Algoritme-begreper (øvet)
- Kodeløype: Algoritmer
- Kodeløype: Blandet utfordring
- Drill: Algoritme-begreper (utfordring)
- Drill: Algoritmer — skriv koden
- Kodeløype: Arena — søk rundt veggene
- Drill: Algoritmer — øvet
- Drill: Algoritmer — utfordring
- Eksamenstrening S1: små algoritmer