ch 5 Flashcards

1
Q

Definiera begreppet algoritm (algorithm)!

A

En ordnad mängd OTVETYDLIGA(tydliga) utförbara steg som definierar en avslutande process

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

Vad är rekursion?

A

En funktion som anropar sig själv, vilket innebär repetition.

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å sorterad data?

A

Därför att med binärsökning så växer antalet steg i sökprocessen logaritmiskt med antalet poster

Sekvensiell 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

Varje rekursivt anrop i en rekursion kräver extra minne,

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

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

Alla rektanglar och romber beskriver exekverbara steg,

Romber beskriver villkor
Pilar beskriver sekvenser och loopar

vilket är vad som behövs för att beskriva varje tänkbar algoritm

(romber = vilkor
pilar = sekvenser & loopar)

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

Programmeringsspråk har väldefinierade primitiv och regler för hur primitiven kan kombineras.

Nackdel för att programmeringsspråk kräver att man specificerar många detaljer

(både ja & nej)

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

Algoritmen inte är skriven i ett specifikt programspråk utan istället bara beskriver tillvägagångssättet.

Samma algoritm kan realiseras i olika programspråk och i olika program

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 (static verification) /kodanalys (code analysis)

Testning (testing).

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

Vad är ett program i förhållande till en algoritm?

A

Ett program är en algoritm kodad i ett programmeringsspråk, d.v.s. 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
13
Q

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

A

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
14
Q

Vilka metoder kan användas för att verifiera ett programs korrekthet?

A

Statisk verifiering (static verification) eller kodanalys (code analysis), och testning (testing)

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

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

A

Rekursion
Iteration

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

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

A

Sekventiell sökning är att föredra för mycket korta listor och när data inte är sorterat eftersom binärsökning kräver sorterad data

17
Q

Vad är en förutsättning för att binärsökning (binary search) ska fungera? Motivera ditt svar

A

Sorterad data. Sorted/ordered data

18
Q

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

A

Nej, det fungerar inte med osorterad data

19
Q

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

A

Top-down förhållning till ledning är en strategi där beslutsprocessen sker på högsta nivå och sedan kommuniceras till resten av teamet.

20
Q

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

A

Rekursion

21
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