icaruz Skrevet 11. juni 2006 Del Skrevet 11. juni 2006 (endret) Jeg har en int[m][n] array som iblant blir fylt opp, og må utvides til f.eks int[m*2][n] (hvor m er ca 10^4, n er 10) Kopieringen av data fra int[m][n] arrayen til int[m*2][n] arrayen tar for mye tid. Hvilken utvidbar datastruktur kan jeg bruke for dette? Hastigheten på å legge inn og hente data er viktig, helst skal det gå like fort som å bruke en int-array. Endret 11. juni 2006 av icaruz Lenke til kommentar
CruellaDeVille Skrevet 11. juni 2006 Del Skrevet 11. juni 2006 Jeg har en int[m][n] array som iblant blir fylt opp, og må utvides til f.eks int[m*2][n] (hvor m er ca 10^4, n er 10) Kopieringen av data fra int[m][n] arrayen til int[m*2][n] arrayen tar for mye tid. Hvilken utvidbar datastruktur kan jeg bruke for dette? Hastigheten på å legge inn og hente data er viktig, helst skal det gå like fort som å bruke en int-array. 6284530[/snapback] Linked list - legge inn ArrayList - hente ut/legge inn Noen forslag iallfall (merkelig at jeg ikke kommer på mer, to dager før eksamen i datatrukturer Lenke til kommentar
Paull Skrevet 11. juni 2006 Del Skrevet 11. juni 2006 (endret) Dersom n er konstant, så kan kanskje en Hashtable brukes? Om grunnen til en utvidelse fra m til m*2 er at det skal inn nye elementer i m..(m*2)-1, så burde det jo gå ganske fint. Eller? Edit: Bruke en int som key, og en int[n] som value. Endret 11. juni 2006 av Paull Lenke til kommentar
___ Skrevet 12. juni 2006 Del Skrevet 12. juni 2006 Kopieringen av data fra int[m][n] arrayen til int[m*2][n] arrayen tar for mye tid. Kan du vise oss hvordan du kopierer arrayet? For store arrays kan System.arraycopy() være verdt å titte på. Werner Lenke til kommentar
icaruz Skrevet 12. juni 2006 Forfatter Del Skrevet 12. juni 2006 (endret) System.arraycopy er litt raskere, og jeg bruker det. ----------------------------------------- int n = 50000; int noftr=0; //number of triangles float[][] triangles=new float[n][10]; .. .. if(noftr==triangles.length){ float[][] tri=new float[triangles.length*2][10]; System.arraycopy(triangles, 0, tri, 0, triangles.length); triangles=tri; } Endret 12. juni 2006 av icaruz Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå