/ Forside / Karriere / Uddannelse / Højere uddannelser / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Højere uddannelser
#NavnPoint
Nordsted1 1588
erling_l 1224
ans 1150
dova 895
gert_h 800
molokyle 661
creamygirl 610
berpox 610
jomfruane 570
10  3773 570
Datalogi - algoritmer og datastrukturer
Fra : Preben


Dato : 28-12-03 21:22

Hej alle

Alle de algoritmer og datastrukturer i kan finde på er i da velkomne til
at fortælle mig om. Alle afarter heraf og gerne links til sider der
forklarer og evt. implementerer disse.

Her tænker jeg bl.a. på

hob (heap)
binomial-køer (kender jeg intet til)
prioritetskøer


træ-strukturer
rød-sorte træer
højde-balancerede træer (kender jeg intet til)
rodede træer (kender jeg intet til - hvert blad har barn-pointer til roden)
prioritetssøgetræer


forskellige anvendelser indenfor dynamisk programmering
grådige algoritmer
og sikkert meget mere som jeg ikke lige pt. husker.

Graf-algoritmer:
----------------
Dijkstra
Kruskal
Prim
Disjunkte mængder


Graf-typer:
----------------
H(2)-grafer
Sol-grafer
Diamant-grafer
Frem og tilbage grafer
Ensrettede grafer
Syd-Øst grafer
Bælte grafer


De ovennævnte graf-typer er kendte, men flere beskrivelser af ANDRE
graf-typer ville være kanon og gerne med forklaring til hvorledes de vil
kunne implementeres nemmest, og hvilke datatyper der skal anvendes.
Implementationerne skal gerne være så optimale som mulig.


Jeg skal til eksamen 2. januar og vil gerne have 100% styr på tingene og
være forberedt på de værste graf-typer - mærkelige datatyper som minder
om de nævnte emner. Træ-strukturer kommer der garanteret også noget med.

Forklaringer til Dijkstra's algoritme og evt. implementation er også savnet!

På forhånd MANGE MANGE tak.



Med venlig hilsen
Preben Holm


--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


 
 
Preben (28-12-2003)
Kommentar
Fra : Preben


Dato : 28-12-03 21:32

Nogle gode implementationer og forklaring til specielt

Hash-tabeller og en rigtig god forklaring til hash-funktioner!

Rød-sorte træer (virkelig god forklaring kunne bruges)! Specielt en
implementation kunne være dejlig!


Mvh / Preben


Preben (28-12-2003)
Kommentar
Fra : Preben


Dato : 28-12-03 21:38

Hob:

En hob-struktur:

hvordan kan man sige at hob-strukturen er opfyldt hvis et træ ser sådan ud:

root
/ \
l1 r1
/ \ \
l2 r2 r3
\ \
l3 r4


Mvh / Preben

--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


Jacob Bunk Nielsen (28-12-2003)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 28-12-03 21:40

Preben <64bitATtheNet@mailme.dk> writes:

> Alle de algoritmer og datastrukturer i kan finde på er i da velkomne
> til at fortælle mig om. Alle afarter heraf og gerne links til sider
> der forklarer og evt. implementerer disse.
> [ ... ]
> Jeg skal til eksamen 2. januar og vil gerne have 100% styr på tingene
> og være forberedt på de værste graf-typer - mærkelige datatyper som
> minder om de nævnte emner. Træ-strukturer kommer der garanteret også
> noget med.

Har I ikke noget undervisningsmateriale der forklarer alle de ting I
skal til eksamen i? Det er vel det mest nærliggende sted at søge
informationen.

Hvis undervisningsmaterialet er på engelsk, så er det også fyldt med
gode søgeord til Google.

> Forklaringer til Dijkstra's algoritme og evt. implementation er også savnet!

Hvorfor er en implementation interessant? Er det ikke mere forståelsen
af algoritmen der er interessant? Min erfaring siger at den bedst
opnås ved at gå nogle gennemløb af algoritmen igennem i hånden og
efterfølgende evt. lave sin egen implementation frem for at køre en
implementation andre har lavet.

--
Jacob - www.bunk.cc
Put your trust in those who are worthy.

Preben (28-12-2003)
Kommentar
Fra : Preben


Dato : 28-12-03 22:38

Hej

De nævnte graf-typer er ikke nævnt i litteraturen, men er fra tidligere
eksamensopgaver. Det er dog tydeligt at se, at nogle af algoritmerne
ikke er "opfundet" af dem selv, men faktisk virkelige - eller i hvert
fald noget der ligner. Derfor vil jeg gerne være specielt forberedt på
forskellige typer grafer hvorpå Dijkstra, kruskal, prim osv. ikke
længere er optimale til letteste udspændende træer og korteste veje
algoritmer. Derfor også gerne eksempler på METODER til implementation
(gode forklaringer er nok).


> Hvis undervisningsmaterialet er på engelsk, så er det også fyldt med
> gode søgeord til Google.

Jeg synes det er svært at finde noget relevant altid. Der er ganske
rigtigt meget store komplekse implementationer uden de store
forklaringer, som ikke rigtig giver det udbytte man kom efter. Det er
også nemt nok at finde illustrationer (java) som viser step-by-step
hvordan det virker.

Det er også gerne andre datatyper, algoritmer som blot minder om der
ville være lækre at vide en masse om.


>>Forklaringer til Dijkstra's algoritme og evt. implementation er også savnet!
>
>
> Hvorfor er en implementation interessant? Er det ikke mere forståelsen
> af algoritmen der er interessant? Min erfaring siger at den bedst
> opnås ved at gå nogle gennemløb af algoritmen igennem i hånden og
> efterfølgende evt. lave sin egen implementation frem for at køre en
> implementation andre har lavet.

Det er netop hvordan denne algoritme skal implementeres jeg har svært
ved at forstå. Eller måske det også kan være forståelse.. og helt ærlig
- så den lærebog (Cormen et. al - Introduction to Algorithms) er sq
ekstremt dårlig for at sige det mildt. Han går alt for meget i selvsving
nogen gange... Jeg vil sige sådan at bogen er meget god til
datastrukturer (i nogle tilfælde), men til forklaring af algoritmer -
der går det altså galt når vi bevæger os udover sortering.

Nå, men tilbage til Dijkstra. (jeg har ikke bogen liggende her -
desværre, men efter hukommelsen følger)

Man skal anvende en prioritetskø (hvis jeg ikke husker helt galt)
"sorteret" efter d-værdier (altså indtil videre korteste vej til given
knude. Men netop når man initialiserer Dijkstra følger det at d for
"roden" sættes lig nul og resten til "uendelig". Når man har besøgt
roden og dens dertil alle naboer og "relaxed" alle disse knuder. Så skal
værdien i prioritetskø'en jo opdateres - men den tilhørende værdi i
kø'en (lad os antage dette som værende en ens reference, således
relaxeringen har ændret d-værdi for hoben ligeledes) så kræver det jo en
opdatering af kø'en. Denne opdatering ser jeg værende meget dyr (og ikke
beskrevet i Cormen (kan selvfølgelig skyldes jeg er halvblind nogle
gange *gg*)) og jeg kan derfor ikke se hvordan køretiden kan overholdes?
Når man ændrer et "tilfældigt" element i en kø, så er det vel ikke
længere på nogen måde en prioritetskø, uden der sker ændringer i køen.
Hvor i relaxeringen ligger dette!


Mvh / Preben


--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


Jacob Bunk Nielsen (29-12-2003)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 29-12-03 01:01

Preben <64bitATtheNet@mailme.dk> writes:

> [ ... ] helt ærlig - så den lærebog (Cormen et. al - Introduction to
> Algorithms) er sq ekstremt dårlig for at sige det mildt.

Jeg var nu vældig glad for den da jeg havde et kursus, hvor den blev
brugt. Jeg har også tit slået op i den efterfølgende.

Det er rigtigt at bogen er amerikansk, og man somme tider lige skal
filtrere alt fyldstoffet væk, men det er man vel vant til fra andre
amerikanske bøger.

> Nå, men tilbage til Dijkstra. (jeg har ikke bogen liggende her -
> desværre, men efter hukommelsen følger)

Jeg har bogen i 1. udgave. Jeg skal prøve at svare dig konsistent med
hvad der står i den.

> Man skal anvende en prioritetskø (hvis jeg ikke husker helt galt)
> "sorteret" efter d-værdier (altså indtil videre korteste vej til given
> knude. Men netop når man initialiserer Dijkstra følger det at d for
> "roden" sættes lig nul og resten til "uendelig".

Hvorfor siger du at køen skal være sorteret? Det er der ikke noget
krav om. Det er også derfor at EXTRACT-MIN() tager O(V) hvis køen er
implementeret som et array, men kan gøres hurtigere, hvis den er
implementeret som en heap. Måske er det her det går galt for dig? Skim
lige afsnittet om prioritetskøer igen.

> Når man har besøgt roden og dens dertil alle naboer og "relaxed"
> alle disse knuder. Så skal værdien i prioritetskø'en jo opdateres -
> men den tilhørende værdi i kø'en (lad os antage dette som værende en
> ens reference, således relaxeringen har ændret d-værdi for hoben
> ligeledes) så kræver det jo en opdatering af kø'en.

Ja, men RELAX(u, v, w) kører jo i konstant tid så længe d er et array,
hvor man kan tilgå elementerne i konstant tid.

> Denne opdatering ser jeg værende meget dyr (og ikke beskrevet i
> Cormen (kan selvfølgelig skyldes jeg er halvblind nogle gange *gg*))
> og jeg kan derfor ikke se hvordan køretiden kan overholdes?

Hvorfor ser du den opdatering som dyr? Der er tale om at man i et
array, d, holder en enkelt værdi for hver node i grafen. Den værdi kan
ændres i konstant tid. Det gør man så for alle kanter (v \in Adj[u])
fra u.

Hele opdateringen er da beskrevet.

> Når man ændrer et "tilfældigt" element i en kø, så er det vel ikke
> længere på nogen måde en prioritetskø, uden der sker ændringer i
> køen.

Jo.

> Hvor i relaxeringen ligger dette!

Det sker ikke.

--
Jacob - www.bunk.cc
Life is both difficult and time-consuming.

Henning Makholm (29-12-2003)
Kommentar
Fra : Henning Makholm


Dato : 29-12-03 01:26

Scripsit Jacob Bunk Nielsen <spam@bunk.cc>
> Preben <64bitATtheNet@mailme.dk> writes:

> > Man skal anvende en prioritetskø (hvis jeg ikke husker helt galt)
> > "sorteret" efter d-værdier (altså indtil videre korteste vej til given
> > knude. Men netop når man initialiserer Dijkstra følger det at d for
> > "roden" sættes lig nul og resten til "uendelig".

> Hvorfor siger du at køen skal være sorteret?

Han mener at afstanden er den vægt der bruges til at vælge det
"minimale" element i den dertil beregnede prioritetskø-operation.

> Det er også derfor at EXTRACT-MIN() tager O(V) hvis køen er
> implementeret som et array, men kan gøres hurtigere, hvis den er
> implementeret som en heap.

Og derfor er det en dum ide at bruge en array uden yderligere invarianter.

> > Denne opdatering ser jeg værende meget dyr (og ikke beskrevet i
> > Cormen (kan selvfølgelig skyldes jeg er halvblind nogle gange *gg*))
> > og jeg kan derfor ikke se hvordan køretiden kan overholdes?

> Hvorfor ser du den opdatering som dyr?

Det koster tid at vedligeholde de invarianter implementeringen af
prioritetskøen afhænger af, når vægtene ændres.

Hvis priorietskøen er implementeret som et hobordnet træ [1], kræver
en ændring af vægten at man lader elementet boble opad eller nedad i
strukturen for at bevare invarianten. Det tager i almindelighed
O(logn) tid, og det kan nok godt betegnes som dyrt, hvis man havde
håbet på en samlet løsning der kører i O(e+v*log(v)) i stedet for
O(e*log(v)).

Det er muligt at man kan amortisere nogen af disse ekstraomkostninger
væk, når alle ændringer går *nedad*, men det kan jeg ikke lige ryste
ud af ærmet.


[1] Træet kan igen være repræsenteret implicit som en array, men det
er en anden sag.

--
Henning Makholm "`Update' isn't a bad word; in the right setting it is
useful. In the wrong setting, though, it is destructive..."

Preben (29-12-2003)
Kommentar
Fra : Preben


Dato : 29-12-03 06:31

Jacob Bunk Nielsen wrote:

> Preben <64bitATtheNet@mailme.dk> writes:
>
>
>>[ ... ] helt ærlig - så den lærebog (Cormen et. al - Introduction to
>>Algorithms) er sq ekstremt dårlig for at sige det mildt.
>
>
> Jeg var nu vældig glad for den da jeg havde et kursus, hvor den blev
> brugt. Jeg har også tit slået op i den efterfølgende.
>
> Det er rigtigt at bogen er amerikansk, og man somme tider lige skal
> filtrere alt fyldstoffet væk, men det er man vel vant til fra andre
> amerikanske bøger.
>
>
>>Nå, men tilbage til Dijkstra. (jeg har ikke bogen liggende her -
>>desværre, men efter hukommelsen følger)
>
>
> Jeg har bogen i 1. udgave. Jeg skal prøve at svare dig konsistent med
> hvad der står i den.

Det kunne være en fordel - de er mange gange ikke fyldt med unødvendigt
bras.


>>Man skal anvende en prioritetskø (hvis jeg ikke husker helt galt)
>>"sorteret" efter d-værdier (altså indtil videre korteste vej til given
>>knude. Men netop når man initialiserer Dijkstra følger det at d for
>>"roden" sættes lig nul og resten til "uendelig".
>
>
> Hvorfor siger du at køen skal være sorteret? Det er der ikke noget
> krav om. Det er også derfor at EXTRACT-MIN() tager O(V) hvis køen er
> implementeret som et array, men kan gøres hurtigere, hvis den er
> implementeret som en heap. Måske er det her det går galt for dig? Skim
> lige afsnittet om prioritetskøer igen.

Ahh, ok - der var lige lidt jeg manglede... For vi har kun gennemgået
prioritetskøer opbygget som hob'er, og det gør jo en hvis forskel - kan
man roligt sige!

Når vi skal nå gennem (jeg mener alle beskrevne) sorteringsalgoritmer,
forskellige beviser, dyn. programmering, grådige algoritmer,
graf-algoritmer, træ-strukturer indtil rød-sorte træer på kun ½ år, så
går det altså hurtigt... Det er et lidt andet tempo end man lige var
vandt til - selv i forhold til de to første semestre. Og når det skal gå
så stærkt at man til forelæsningerne ikke har tid til at gennemgå
rød-sorte træer og hash-tabeller ordentligt og man selv når at lave så
mange fejl at ingen af de viste eksempler med rotationer passer, så er
det ikke ligefrem noget man bliver mere vel-orienteret om.
(Aggressionerne skulle lige ud *gg*)



>>Når man har besøgt roden og dens dertil alle naboer og "relaxed"
>>alle disse knuder. Så skal værdien i prioritetskø'en jo opdateres -
>>men den tilhørende værdi i kø'en (lad os antage dette som værende en
>>ens reference, således relaxeringen har ændret d-værdi for hoben
>>ligeledes) så kræver det jo en opdatering af kø'en.
>
>
> Ja, men RELAX(u, v, w) kører jo i konstant tid så længe d er et array,
> hvor man kan tilgå elementerne i konstant tid.

Ja, sålænge det er et array :)



Mvh / Preben

--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


Jacob Bunk Nielsen (29-12-2003)
Kommentar
Fra : Jacob Bunk Nielsen


Dato : 29-12-03 01:39

Henning Makholm <henning@makholm.net> writes:
> Scripsit Jacob Bunk Nielsen <spam@bunk.cc>
>
>> Hvorfor siger du at køen skal være sorteret?
>
> Han mener at afstanden er den vægt der bruges til at vælge det
> "minimale" element i den dertil beregnede prioritetskø-operation.

Jo, det er jeg med på, men hvis man læser bogen - jeg prøver at svare
ud fra hvad der står i den bog Preben tilsyneladende har som
undervisningsmateriale - er køretiden forklaret ud fra at man bruger
O(V) på at køre EXTRACT-MIN() fordi køen er implementeret som et
array.

>> Det er også derfor at EXTRACT-MIN() tager O(V) hvis køen er
>> implementeret som et array, men kan gøres hurtigere, hvis den er
>> implementeret som en heap.
>
> Og derfor er det en dum ide at bruge en array uden yderligere invarianter.

Ja - det forklarer bogen også senere. Den beskriver også i hvilke
situationer det er særlig interessant.

Det er dog IMHO ikke så væsentligt for at forstå køretiden. Vælger man
en anden løsning, så vil EXTRACT-MIN() også kunne køre meget hurtigere
end O(V), og så kan man stadig sagtens få Dijkstras algoritme til at
køre i O(V²) som forklaret i bogen.

>> > Denne opdatering ser jeg værende meget dyr (og ikke beskrevet i
>> > Cormen (kan selvfølgelig skyldes jeg er halvblind nogle gange *gg*))
>> > og jeg kan derfor ikke se hvordan køretiden kan overholdes?
>
>> Hvorfor ser du den opdatering som dyr?
>
> Det koster tid at vedligeholde de invarianter implementeringen af
> prioritetskøen afhænger af, når vægtene ændres.

Ja, det er klart - men i den variant der er beskrevet i omtalte bog er
der ikke nogle dyre invarianter at vedligeholde. Der kan det gøres i
konstant tid fordi der blot benyttes et array, og EXTRACT-MIN() så
kører i O(V).

Kort fortalt, så kan man vinde på EXTRACT-MIN() ved at betale lidt
ekstra for RELAX(). Man skal ikke "betale" dyrt begge steder.

--
Jacob - www.bunk.cc
It is easier to get forgiveness than permission.

Henning Makholm (29-12-2003)
Kommentar
Fra : Henning Makholm


Dato : 29-12-03 02:01

Scripsit Jacob Bunk Nielsen <spam@bunk.cc>
> Henning Makholm <henning@makholm.net> writes:

> > Og derfor er det en dum ide at bruge en array uden yderligere invarianter.

> Ja - det forklarer bogen også senere.

Ved nøjere eftertanke tror jeg nu nok alligevel jeg trækker det
tilbage. Hvis grafen er tæt, vil en lineær søgning efter den mindste
knude ikke tage længere tid end det tager at behandle alle de udgående
kanter, og så kan det jo være ligemeget alligevel.

> Vælger man en anden løsning, så vil EXTRACT-MIN() også kunne køre
> meget hurtigere end O(V), og så kan man stadig sagtens få Dijkstras
> algoritme til at køre i O(V²) som forklaret i bogen.

Der må være noget amortisering på spil, så.

--
Henning Makholm "It's kind of scary. Win a revolution and
a bunch of lawyers pop out of the woodwork."

Michael Zedeler (28-12-2003)
Kommentar
Fra : Michael Zedeler


Dato : 28-12-03 21:47

Preben wrote:
> Alle de algoritmer og datastrukturer i kan finde på er i da velkomne til
> at fortælle mig om. Alle afarter heraf og gerne links til sider der
> forklarer og evt. implementerer disse.

I stedet for at jeg skal skrive en bog af og sende den som et indlæg,
foreslår jeg at du tager et kig på den selv. Den hedder "Algorithm
Design" og er skrevet af Michael T. Goodrich og Roberto Tamassia.

En glimrende bog som handler om alt det som du spørger til.

Lur mig om ikke at jeg - ved et rent tilfælde, selvfølgelig - havde
skrevet nøjagtigt det samme som der står i bogen, hvis jeg havde ladet
mig overtale til at beskrive alle de mange ting som du spørger efter.

Den kan fåes i bogladen på RUC (med mindre at de har udsolgt).

God læselyst.

Michael.


Troels Arvin (28-12-2003)
Kommentar
Fra : Troels Arvin


Dato : 28-12-03 23:44

On Sun, 28 Dec 2003 21:21:34 +0100, Preben wrote:

> Alle de algoritmer og datastrukturer i kan finde på er i da velkomne til
> at fortælle mig om. Alle afarter heraf og gerne links til sider der
> forklarer og evt. implementerer disse.

Mht. implementationer (C++) af væsentlige datastrukturer og operationer
på disse:

http://boost.org/libs/graph/doc/table_of_contents.html

--
Greetings from Troels Arvin, Copenhagen, Denmark


Troels Arvin (29-12-2003)
Kommentar
Fra : Troels Arvin


Dato : 29-12-03 00:05

Jeg skrev tidligere til Preben:

> Mht. implementationer (C++) af væsentlige datastrukturer og operationer
> på disse:
>
> http://boost.org/libs/graph/doc/table_of_contents.html

Ved nærmere eftertanke, så er Boost's graph-bibliotek nok ikke det mest
stedet for de mest illustrative implementationer.

Tidligere nævnte du Java, og jeg går ud fra, at du ønsker
implementations-eksempler i det sprog. I så fald ville jeg i dit sted
hente sovsen til Java:
http://wwws.sun.com/software/communitysource/j2se/java2/download.html Dér
kan du fx. se, hvordan java.util.Hashtable er kodet. Ulempen er dog lidt
ligesom ved boost: Fordi der er tale om "produktionskode", indeholder den
forskellige optimeringer og hjælpemetoder, der kan sløre kernen af
algoritmerne/strukturerne.

Det lyder desuden som om, at du har behov for et hurtigt supplement til
din algoritmikbog - med fokus på implementation.

Når man hurtigt skal have en bog, kan en online-udgave være på sin
plads, og i sådanne situationer har jeg flere gange haft gavn af Safari,
hvor man kan købe sig adgang til en pæn sjat bøger i online-udgaver. Se
fx.
http://safari.oreilly.com/?x=1&mode=books&sortKey=title&sortOrder=asc&view=&xmlid=&open=true&g=&catid=itbooks.csci.algrthms&s=1&b=1&f=1&t=1&c=1&u=1&r=&o=1&srchText=
og
http://safari.oreilly.com/?x=1&mode=section&sortKey=title&sortOrder=asc&view=&xmlid=0-201-36120-5&open=true&g=&catid=itbooks.prog.java&s=1&b=1&f=1&t=1&c=1&u=1&r=&o=1&page=0

(Jeg har ikke læst nogle af de nævnte bøger.)

--
Greetings from Troels Arvin, Copenhagen, Denmark


Preben (29-12-2003)
Kommentar
Fra : Preben


Dato : 29-12-03 06:24

Troels Arvin wrote:

> On Sun, 28 Dec 2003 21:21:34 +0100, Preben wrote:
>
>
>>Alle de algoritmer og datastrukturer i kan finde på er i da velkomne til
>>at fortælle mig om. Alle afarter heraf og gerne links til sider der
>>forklarer og evt. implementerer disse.
>
>
> Mht. implementationer (C++) af væsentlige datastrukturer og operationer
> på disse:
>
> http://boost.org/libs/graph/doc/table_of_contents.html
>

Tak for linket... og også til de to bøger.. Der kan jo læses lidt
"introduction" til hver algoritme - og det er nogen gange nok jo!

Jeg har overvejet et SAFARI medlemskab nogen gange, men det er vel ikke
muligt at få bøgerne i PDF? Desuden skal man jo hele tiden betale for at
have adgang til bøgerne!


Mvh / Preben

--
If your Dell laptop is unstable, try change the power supply - it works!
But the Dell will still stink! Nothing can change that!!!


Troels Arvin (29-12-2003)
Kommentar
Fra : Troels Arvin


Dato : 29-12-03 08:35

On Mon, 29 Dec 2003 06:23:36 +0100, Preben wrote:

> Jeg har overvejet et SAFARI medlemskab nogen gange, men det er vel ikke
> muligt at få bøgerne i PDF?

Du kan få kapitler som PDF, hvilket er en ret ny feature. Desværre skal
man betale ekstra for adgang til PDFer.

> Desuden skal man jo hele tiden betale for at
> have adgang til bøgerne!

Det er sandt.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Billyboy (30-12-2003)
Kommentar
Fra : Billyboy


Dato : 30-12-03 21:45


"Preben" <64bitATtheNet@mailme.dk> skrev i en meddelelse
news:3fef3b4f$0$95001$edfadb0f@dread11.news.tele.dk...
> Hej alle
>

> Jeg skal til eksamen 2. januar og vil gerne have 100% styr på tingene og
> være forberedt på de værste graf-typer - mærkelige datatyper som minder

> Med venlig hilsen
> Preben Holm


Hej Preben.

Har du nogensinde hørt om forberedelse i god tid?

Du har sikkert vidst i ca. et halvt års tid at du skulle til eksamen d. 2
januar 2004. Du har ligeledes også haft Juleferie fra sikkert d. 19 december
2003. Er det ikke lidt sent at du går i gang?
De indlæg du er kommet med er jo relevante helt sikkert for en eksamen, jeg
lavede en afhandling om dette i 1994. med implementeringer og beviser for de
forskellige prioritetskøer, algoritmer og datastrukturer.

Det eneste jeg kan råde dig til er hvis du skal bevise fordele/ulemper i de
enkelte algoritmer/strukturer skal du først og fremmest beskrive dit formål
(overfor dig selv). Og afprøve algoritmen på dine egne elementer og kode.
Herved får du "foræret" din implementringsmodel.

Som jeg læste et indlæg i denne tråd var der en der sagde meget fornuftigt
at man skulle skrive ned på et stykke papir først for at afprøve teorien, og
derefter lave en implementeringsmodel. Og jeg må sande min erfaring siger
mig. Selv inden for datalogi er man nødt til at "skynde sig langsomt".

Lad være med at holde nytår, og brug din tid fornuftigt i stedet for at gøre
det i sidste øjeblik.

Og husk det allervigtigste, der er ingen fuldstændig "facitliste" inden for
datalogi. Hvis du kan argumentere for en bestemt datastruktur/algoritme
uanset hvilke fordele/ulemper den måtte have, så er det jo egentlig dit
valg. Hvorfor crasher MS-Windows eller Linux er det p.g.a. kompleksitet
eller inkompleksitet? Er det p.g.a. dårligt implementrede
algoritmer/datatstrukturer? Hvis du kan forklare datastrukturen for at sætte
ting i køleskabet, og ud af dette skrive en algoritme, så har du nået dit
mål.

Hårde ord, men nogle skal holde en moralprædiken.

Mvh, Billyboy

Don't try harder, just try smarter.



Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408943
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste