Gå til innhold

Sortering (boble) - jsp


Anbefalte innlegg

Noen (Zethyr) kjenner kanskje igjen denne oppgaven fra den siste øvingen i IT-GK, jeg får den ikke til og dere kan få være min stud.ass. for anledningen.

 

Algoritmen kan forklares i pseudokode som følger:

 

For alle i fra og med 0 til lengden på tabellen.
 For alle j fra og med 0 til lengden på tabellen - i - 1.
   Hvis elementet i posisjon j er større enn elementet i posisjon j + 1.
     Bytt plass på elementene i posisjonene j og j + 1.

 

Følgende "støttemetode" kan gjerne brukes

int[] byttPlass(int index1,int index2, int[] tabell)

 

Får ikke til mer enn dette (som strengt tatt ikke noe):

for(int i=0; i <= tabell.length; i++){
for(int j=0; j <= tabell.length - i - 1; i++){
 if(tabell[j] > tabell[j+1]){

Lenke til kommentar
Videoannonse
Annonse

Ser ut som du nesten er ferdig. Pseudokoden er egentlig ganske grei, og du mangler bare siste linje som er å bytte om element j og j+1. Dette kan du gjøre ved hjelp av støttemetoden din (byttPlass).

 

for( int i=0; i < tabell.length; i++ ) {
   for( int j=0; j < tabell.length - i - 1; i++ ) {
       if( tabell[j] > tabell[j+1] ) {
           tabell = byttPlass(j, j+1, tabell);
       }
   }
}

 

Jeg vet ikke om du har skrevet byttPlass-metoden, men den bør se omtrent slik ut:

 

int[] byttPlass(int index1, int index2, int[] tabell) {
   int temp = tabell[index1];
   tabell[index1] = tabell[index2];
   tabell[index2] = temp;

   return tabell;
}

 

Tror dette skal stemme. Lykke til :)

Lenke til kommentar

Sorteringsmetoden din skal ta en int[] som inndata og returnere en int[] når den er ferdig.

 

Vi får dermed:

int[] bobbleSorter (int[] tabell) {
  for( int i=0; i < tabell.length; i++ ) {
       for( int j=0; j < tabell.length - i - 1; i++ ) {
           if( tabell[j] > tabell[j+1] ) {
               tabell = byttPlass(j, j+1, tabell);
           }
       }
   }
   return tabell;
}

 

For å sortere tabellen du har skrevet gjør du følgende:

int[] tabell = {3,1,5,6,2,9,4};
tabell = bobbleSorter(tabell);

Endret av sim
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...