Kapitel 5 - instuderingsfrågor Flashcards

1
Q

Definiera begreppet algoritm (algorithm)!

A

En algoritm är en ordnad mängd av otvetydiga, exekverbara steg som beskriver en avslutande process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad är rekursion?

A

Rekursion är en repetition vars funktion kan anropa sig själv.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Varför är binär sökning bättre än sekvensiell sökning på sorterat data?

A

Därför att med binärsökning så växer antalet steg i sökprocessen logaritmiskt med antalet poster, medan med sekventiell sökning så växer antalet steg linjärt med antalet poster, vilket innebär att binärsökning är betydligt effektivare.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Vad är det minsta antalet gånger som satserna i en loop-kropp (loop body) utförs i en iteration med post-test- villkor? Ange svaret som ett heltal.

A

1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ä̈r det någon skillnad mellan iteration och rekursion när det gäller användningen av minne?

A

Ja, varje rekursivt anrop i en rekursion kräver extra minne, till skillnad från en iteration där varje varv inte kräver något extra minne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Vad är pseudo-kod (pseudo code)?

A

Pseudo-kod är kod som inte skrivits enligt reglerna för ett specifikt programmeringsspråk utan för en annan människa. Ett beskrivningssystem för algoritmer, och som är mindre formellt än riktiga programmeringsspråk

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Kan alla algoritmer beskrivas som ett flödes-schema (flow chart)? Motivera ditt svar!

A

Ja, rektanglar och romber beskriver exekverbara steg, varav romber beskriver villkor, och pilar beskriver sekvenser och loopar, vilket är vad som behövs för att beskriva varje tänkbar algoritm.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Är ett programmeringsspråk, t.ex. Python, lämpligt för att beskriva algoritmer? Motivera ditt svar!

A

Ja, alla programmeringsspråk är grundade på algoritmer. De är uppbyggda på primitives och regler. Men kräver att man specificerar många detaljer.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Vad är det minsta antalet gånger som satserna i en loop-kropp (loop body) utförs i en iteration med pre-test-villkor?

A

0

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Vad är skillnaden mellan en algoritm och ett program?

A

Ett program är en algoritm kodad på ett sådant sätt att en dator kan exekvera den.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Vilka två olika metoder används för att verifiera att ett program är korrekt (software verification)?

A

Statisk verifiering eller kodanalys och testing.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Beskriv hur binärsökning går till! Vilka krav finns på den data som man söker i?

A

En förutsättning som ska finnas för att binärsökning ska fungera är att listan ska vara sorterad. Utan en sorterad lista kan binär sökningen inte tillämpas på korrekt vis.
Binärsökning kräver att den data man söker i är sorterad. Vid varje repetition i sökningen halveras antalet poster. För varje repetition så undersök posten i mittenpositionen: om posten som eftersöks ordnas före posten i mittenpositionen så fortsätt sökningen i första halvan; om posten som eftersöks ordnas efter posten i mittenpositionen så fortsätt sökningen i andra halvan. Fortsätt på liknande sätt och avsluta sökningen när posten antingen hittats eller den kvarvarande halvan är tom.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

På vilka två grundläggande olika sätt kan man åstadkomma repetition i en algoritm?

A

Iteration och rekursion

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

När är sekventiell sökning att föredra framför binärsökning?

A

När det är korta listar, eller datan inte är sorterad (eftersom binärsökning kräver en sorterad lista)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Är binärsökning ett bra val för att söka i osorterad data? Motivera ditt svar.

A

Nej, det fungerar inte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vad innebär top-down metodologin när man utvecklar (eller upptäcker) algoritmer?

A

Att man startar från en hög abstraktionsnivå och stegvis arbetar sig neråt genom att dela upp problem i mindre delar.

17
Q

Varför är det inte så viktigt att följa en strikt syntax i pseudokod?

A

Syftet med pseudokod är att andra människor ska förstå, och mest ska det efterlikna en algoritm.

18
Q

Vad kallas sättet att åstadkomma repetition i kod som kräver mer utrymme i primärminnet för varje repetition?

A

Rekursion

19
Q

Vad kallas sättet att åstadkomma repetition i kod som inte kräver mer utrymme i primärminnet för varje repetition?

A

Iteration