CMD + K

Kapittel 0Begreper & formler · Verktøykassa: notasjon og forkunnskaper
Referanseside · Kapittel 0

Begreper & referanser

Alle nøkkelbegrepene, formlene og referansene fra Verktøykassa: notasjon og forkunnskaper, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.

Øv med flashcards20 kort fra dette kapittelet

Begreper

Sentrale begreper fra kapittelet med korte definisjoner.

01Tak og gulv

Taket runder opp til nærmeste heltall, gulvet runder ned. Brukes når vi deler noe i (nesten) like store deler.

02Logaritme

er eksponenten slik at . I algoritmer bruker vi mest tobaselogaritmen , som teller halveringer.

03Modulo

er resten når deles på . Sentralt i hashing og når indekser skal pakkes inn i et fast intervall.

04Mengde

En uordnet samling distinkte elementer. Grunnlaget for å snakke om noder, kanter og delmengder presist.

05Graf

Et par av noder og kanter som modellerer relasjoner. Kan være rettet eller urettet, vektet eller uvektet.

06Grad

Antall kanter som møter en node. I rettede grafer skiller vi inn-grad og ut-grad.

07Array

En sammenhengende blokk minne med konstant-tids tilgang via indeks, men dyr innsetting midt i.

08Lenket liste

En sekvens av noder der hver peker på den neste. Billig innsetting/sletting, men lineært oppslag.

09Hashtabell

En struktur som gir forventet konstant-tids oppslag, innsetting og sletting ved å spre nøkler over bøtter med en hashfunksjon.

10Tabelldobling

Strategi der et dynamisk array dobler kapasiteten når det blir fullt, slik at innsetting blir amortisert konstant.

11Abstrakt datatype

En spesifikasjon av hvilke operasjoner en struktur tilbyr, uavhengig av hvordan den er implementert — for eksempel en kø eller en prioritetskø.

12Fakultet

Produktet av alle heltall fra 1 til , skrevet . Teller antall måter å ordne ting på, og vokser raskere enn enhver eksponentialfunksjon.

Formler

Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.

gulv-og-tak

Gulv og tak

Gulvet runder nedover til nærmeste heltall, taket oppover. For et heltall er de like. De dukker opp hver gang noe deles i (nesten) like store halvdeler.

aritmetisk-sum

Aritmetisk sum (håndtrykk)

Summen av de første heltallene. Forklarer hvorfor doble løkker der den indre teller opp mot den ytre koster .

geometrisk-sum

Geometrisk sum

Dominert av det største leddet når . Forklarer hvorfor totalkostnaden ved tabelldobling forblir lineær.

logaritmeregler

Logaritmeregler

Logaritmer gjør multiplikasjon til addisjon, og basebytte er bare en konstant faktor. Derfor skriver vi gjerne uten å bry oss om basen i -notasjon.

modulo-formel

Modulo

Resten ved heltallsdivisjon. Brukes til å pakke indekser inn i et fast intervall, blant annet i hashfunksjoner.

handtrykkslemma

Håndtrykkslemma

I en urettet graf teller hver kant to ganger i gradsummen — én gang for hver ende. Derfor er gradsummen alltid et partall.

maks-kanter

Maks antall kanter

En enkel urettet graf uten løkker eller parallelle kanter har høyst denne kantmengden. Tette grafer nærmer seg grensa, glisne grafer er langt under.

amortisert-dobling

Amortisert kostnad ved tabelldobling

Selv om enkelte innsettinger i et dynamisk array koster når tabellen dobles, blir gjennomsnittet per innsetting konstant fordi doblingene blir stadig sjeldnere.

Læringsmål

Hva du skal kunne etter å ha lest kapittelet.

  1. 01Bruke tak, gulv og modulo til å dele en mengde i nesten like deler og pakke indekser inn i et fast intervall
  2. 02Tolke en toerlogaritme som antall halveringer, og forklare hvorfor basen er likegyldig i kjøretidsanalyse
  3. 03Gjenkjenne den aritmetiske og den geometriske summen, og koble dem til kjøretiden til nøstede løkker og tabelldobling
  4. 04Forklare avveiningene mellom array, lenket liste og hashtabell, og hvorfor tabelldobling gir amortisert konstant innsetting