• No results found

Opgave 1 (1.5 punt)

N/A
N/A
Protected

Academic year: 2021

Share "Opgave 1 (1.5 punt)"

Copied!
2
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Departement Informatica en Informatiekunde, Faculteit B`etawetenschappen, UU.

In elektronische vorm beschikbaar gemaakt door de TBC van A−Eskwadraat.

Het college INFODS werd in 2004/2005 gegeven door Frank van der Stappen.

Datastructuren (INFODS) 20 mei 2005

Opgave 1 (1.5 punt)

Bewijs of weerleg de volgende beweringen:

a) Als f (n) is O(n) en g(n) is O(n), dan f (n) + g(n) is O(n2). (0.5 punt) b) Als f (n) is O(n2) en g(n) is O(n), dan f (n)g(n) is O(n2). (0.5 punt) c) Als f (n) is O(d(n)) en g(n) is O(e(n)), dan 2f (n) + 3g(n) is O(d(n) + e(n)). (0.5 punt)

Opgave 2 (2 punten)

Orden de functies f1. . . f9van klein naar groot op basis van hun asymptotisch groeigedrag (of, in andere woorden, in grote-O notatie). Geef ook aan welke functies gelijk groeigedrag hebben (of, in andere woorden, grote-Θ van elkaar zijn):

f1(n) = n log n f2(n) = n2

n + n73 f3(n) = n2log n f4(n) = 550550 f5(n) = n73 f6(n) = n2 f7(n) = n549 f8(n) = (n log n)2 f9(n) = n2log(n2)

Opgave 3 (1 punt)

Bewijs: n3log n + n2+ 3n is Θ(n3log n).

Opgave 4 (2 punten)

Gegeven zijn een List A van m verschillende oneven positieve integers en een List B van n ver- schillende oneven positieve integers. De elementen van A zitten van klein naar groot in A en de elementen van B zitten van klein naar groot in B. Geef een zo effici¨ent mogelijk algoritme Twee- vouden dat tweevouden van de elementen in A aan B toevoegt, en tweevouden van elementen in B aan A toevoegt. De elementen van de resulterende List A moeten weer van klein naar groot in A zitten en de elementen van de resulterende List B moeten weer van klein naar groot in B zitten.

Tweevouden zal dus bijvoorbeeld de Lists A = (7, 13, 15, 19, 21, 25) en B = (1, 5, 33, 47, 51) veran- deren in A = (2, 7, 10, 13, 15, 19, 21, 25, 66, 94, 102) en B = (1, 5, 14, 26, 30, 33, 38, 42, 47, 50, 51).

Maak voor je algoritme slechts gebruik van de standaardoperaties (ofwel methods):

• first(), last(), prev(p) en next(p), size(), isEmpty() voor toegang tot (de Positions p van) de Lists A en B,

• replace(p, e), insertFirst(e), insertLast(e), insertBefore(p, e), insertAfter(p, e) en remove(p) voor wijziging van (de Positions p en elementwaarden e) van de Lists A en B,

• element() voor toegang tot de (positieve integer) elementwaarde van een Position p.

Analyseer de looptijd van je algoritme als je weet dat alle standaardoperaties O(1) tijd kosten.

(2)

Opgave 5 (2 punten)

Gegeven is een enkelvoudig gelinkte lijst (singly linked list) L met een onbekend maar even aantal knopen, en een sentinel head die wijst naar de eerste knoop van L. Geef een zo effici¨ent mogelijk algoritme dat de volgorde van de knopen van de eerste helft van L omdraait. Analyseer de looptijd van je algoritme.

Opgave 6 (1.5 punt)

Geef een zo goed mogelijke worst-case tijdsanalyse voor het volgende algoritme:

ALGORITHM DoeMaarWat(A):

input: een array A van n integers

output: een array F van n berekende integers int i, j, k, F [ ]

F [n − 3] ← 0 F [n − 2] ← 0 F [n − 1] ← 0

for i ← 0 to n − 4 do F [i] ← A[i]

j ← i + 1

while j < n − 4 do F [i] ← F [i] + A[i + j]

j ← 3 ∗ j for i ← 0 to n − 4 do

for j ← 1 to 3 do

F [i] ← F [i] + F [i + j]

return F

Referenties

GERELATEERDE DOCUMENTEN

Vervolgens teken je de lijn door R loodrecht op k, en het snijpunt van deze twee lijnen ligt op de parabool.. Uiteindelijk heb je dan nadat je er een kromme doorheen hebt

Gebruik van rekenmachine, boek of aantekeningen is niet toegestaan.. Vermeld op ieder blad dat je inlevert je naam en

We noemen een interne knoop w een evenwichts- knoop als het aantal knopen in de deelboom van T die het linkerkind (left child) van w als wortel heeft gelijk is aan het aantal knopen

Geef een zo effici¨ ent mogelijk algoritme Ontrafel dat de volgorde van A zodanig verandert dat na afloop eerst de oneven elementen van klein naar groot en daarna de even elementen

Geef in pseudocode een algoritme dat, gegeven een pointer naar de eerste knoop van L, de middelste knoop van L vindt, waarbij je alleen met pointer hopping door de lijst mag gaan.

b) Het doorgelaten licht wordt vanwege de loodrechte inval niet gebroken en valt daarna op de schuine zijde. Geef van zowel het door de schuine zijde doorgelaten als van

Als je de antwoorden niet op de logische volgorde opschrijft, vermeld dan duidelijk waar welk antwoord staat..

Als u uw stem aan de CHU geeft, moet u weten vanuit welke achtergrond de CHU werkt en voor welke practische punten zij zich de komen- de vier jaren zal inzetten. Dit zijn een