Föreläsning 5 Flashcards

(9 cards)

1
Q

Vad innebär “divide and conquer”?

A
  1. Dela i linjär tid problemet till n/2 subproblem
  2. Lös varje subproblem
  3. Kombinera lösningarna till en helhetslösning på linjär tid
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Vad är tidskomplexiteten för en “divide and conquer” algorithm?

A

Θ(n log n)

Den kör alltså alltid på samma tid

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

Hur kan man räkna antalet “inversions” i en array? Vad är tidskomplexiteten?

A

Man kan använda divide and conquer, likt med mergesort.

Divide and conquer körs alltid på Θ(n log n)

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

Vad är “master theorem”?

A

Ett sätt att hitta asymptotisk tidskomplexitet för divide and conquer algorithmer, som vanligtvis är problematiska pga. rekursion.

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

Beskriv formeln för Master Theorem

A

Om T(n) = aT(n/b) + O(n^d)

Får vi T(n) =
1. O(n^d) om d > log_b(a)
2. O(n^d log n) om d = log_b(a)
3. O(n^(log_b(a))) om d < log_b(a)

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

Förklara “Graham’s Scan” och dess tidskomplexitet

A

Det är en algorithm för att hitta den minsta polygonen som omsluter alla punkter i ett 2D plan.

  1. Hitta den punkt a med lägst y-värde
  2. Sortera alla punkter baserat på vinkeln från a, störst till minst
  3. Gå igenom varje punkt i stacken
  4. Om punkt i något steg är till höger, ta bort punkt och hoppa till nästa
  5. Fortsätt så tills stack är tom

Tidskomplexitet: O(n log n), domineras av sorteringen

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

Förklara “Jarvis march” och dess tidskomplexitet

A

Det är en algorithm som likt Graham’s Scan hittar den minsta polygonen som omsluter alla punkter i ett 2D plan.

  1. Hitta den punkt a med lägst y-värde
  2. Beräkna vinkeln till andra punkter
  3. Gå därefter till den punkt längst till höger
  4. Fortsätt så tills vi når startpunkten

Tidskomplexitet:

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

Hur kan man kolla riktningen mer effektivt än att beräkna vinkeln direkt?

A

Man kan beräkna kryssprodukten.

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

Förklara “Preparata Hong” och dess tidskomplexitet

A

Det är en algorithm för att hitta den minsta polygonen som omsöuter alla punkter i ett 2D plan. Den är nämnvärd för den använder divide and conquer, och därav går att parallelisera.

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