"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote in message
news:5qnkdug22t0b6aqs0kfbdp5mkuhlgolt2h@news.telia.dk...
> AH skrev:
>
> >hvordan kan jeg nu smartes (og uden at pårvirke min tidsmåling) sørge
for,
> >at String[] word, som ikke i første kald er sorteret!, forbliver
usorteret
> >til kald to og fremdeles?
>
> Lav to arrays, det ene gemmer de oprindelige strenge, og det
> andet sorteres. Hver sorteringsrunde starter så med at A1
> kopieres til A2.
Og her skal du så selvfølgelig huske IKKE bare at kopiere A2 = A1 - så
refererer de nemlig til samme array og du har samme problem som før.
Brug fx System.arraycopy i stedet.
Hvis din tidsmåling skal være helt retfærdig, skal du jo så udelade den tid
kopieringen tager - fx ved
String[] words;
String[] randomwords = ...;
long totaltid=0;
for(int i = 0; i< count; i++) {
System.arraycopy(randomwords,0,words,0,words.length);
start = System.getCurrentTimeMillis();
sort(words);
total += System.getCurrentTimeMillis()-start;
}
System.out.println("Avg time: " + (total * 1000.0) / count);
Prinicpielt bør du jo også "gøre noget" med words - ellers kunne en meget
optimerende oversætter jo optimere stort set hele programmet væk
Men jeg tror nu ikke der er nogen java-oversættere der er så smarte.
>
> --
> Bertel
Niels Harremoës