Avatar billede azzodiac Nybegynder
30. december 2004 - 13:24 Der er 8 kommentarer og
1 løsning

Sortere tre heltal

Hejsa.
Jeg har 3 integer variabler. Dem vil jeg gerne have sorteret i rækkefølge efter størrelse.
Nogen som kan give mig en algoritme til at sortere dem?
På forhånd tak.
Avatar billede arne_v Ekspert
30. december 2004 - 13:29 #1
3 ?

if(a<b) {
  tmp=a;
  a=b;
  b=tmp;
}
if(a<c) {
  tmp=a;
  a=c;
  c=tmp;
}
if(b<c) {
  tmp=b;
  b=c;
  c=tmp;
}
Avatar billede arne_v Ekspert
30. december 2004 - 13:30 #2
Hvis du har arrays, så har Java en indbygger sortering af dem.
Avatar billede erikjacobsen Ekspert
30. december 2004 - 13:32 #3
Eller ;)
public class Tretal {

  public static void main(String[] a) {
    int a1=18;
    int a2=11;
    int a3=10;
    int tmp;

    if (a1>a2) { tmp=a1; a1=a2; a2=tmp; }
    if (a2>a3) { tmp=a2; a2=a3; a3=tmp; }
    if (a1>a2) { tmp=a1; a1=a2; a2=tmp; }

    System.out.println(a1+" "+a2+" "+a3);
  }
}
Avatar billede erikjacobsen Ekspert
30. december 2004 - 13:34 #4
Argumentet for at at den virker:

1) Efter de to første tests/ombytninger vil det største tal stå til sidst
2) Den sidste test/ombytning får de første til at stå i korrekt rækkefølge
Avatar billede tosssen Nybegynder
30. december 2004 - 13:47 #5
Læg dem i et array A. Kald derefter

java.util.Arrays.sort(A);

Fordelen ved dette er at du også kan benytte dette på flere tal end 3. Endvidere er den benyttede algoritme i Arrays.sort() hurtigere end den algoritme, som arne_v og erikjacobsen angiver, når der skal sorteres mange tal.
Avatar billede azzodiac Nybegynder
30. december 2004 - 13:47 #6
Perfekt arne_v. Smid bare et svar.
Tak for eksemplet erikjacobsen.
Avatar billede arne_v Ekspert
30. december 2004 - 13:48 #7
svar
Avatar billede azzodiac Nybegynder
30. december 2004 - 13:48 #8
Ja, jeg er klar over at man normalt burde smide dem ind i et array. Men det var såmænd bare mere passende at beholde dem som heltal i min kode. :-)
Avatar billede tosssen Nybegynder
30. december 2004 - 13:50 #9
Ok. Det er jo også det mest effektive, hvis det altid er præcis tre tal, der skal sorteres ;-)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester