20. februar 2010 - 15:37Der er
6 kommentarer og 1 løsning
Variabel type til programmerings-konkurrence
Jeg deltager for første gang i en programmerings-konkurrence (dansk datalogi dyst), og jeg er kommet til det punkt hvor jeg har løst begge opgaver men gerne vil optimere dem lidt, og jeg har en mistanke om at mine programmer godt kan bruge en del hukommelse.
Derfor tænkte jeg at det vel kunne være smart at lave alle ints om til short ints og dermed bruge mindre hukommelse.
Jeg har dog fundet nogle steder på internettet hvor der står at short ints får programmet til at køre langsommere, og pointgivingen afhænger også af programmets kørsels-tid.
Faktisk er jeg heller ikke helt sikker på hvad hukommelses forbruget betyder for pointgivningen...
Det største jeg har er nok static short int matrix[2001][2001];
Den blev jeg nødt til at lave static for at programmet ikke skulle crashe...
Jeg valgt at definere mine arrays sådan at de i hvert fald er store nok dvs. hvis jeg får at vide at N er mellem 1 og 2000, så laver jeg et array n[2001];
Er der okay at gøre sådan? eller skal man lave dynamiske arrays?
Det array har 4 millioner elementer - det er 16 MB med 32 bit int og 8 MB med 16 bit int.
Jeg gætter på at det 8 MB ikke gør den store forskel på din PC.
:-)
Men på den anden side kan du godt forsvare at gøre så store arrays til short int, hvis de ikke skal have større værdier end der kan være i en short int.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.