Gå til innhold

Sortering (boble) - jsp


Anbefalte innlegg

Skrevet

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]){

Videoannonse
Annonse
Skrevet

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 :)

Skrevet

Hvis det er ntnu du går på kan du bare finne fram leksjon 6, der står det om boblesortering. jeg bare copy pastet derfra og forandret på variabler, så var alt gull :)

Skrevet

Takk sim!

 

La oss si at jeg har laget meg tabellen:

 

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

 

Hvordan skal jeg da få "matet" den inn i sorteringsalgoritmen og så få skrevet ut den tabellen sortert?

Skrevet (endret)

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

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å
×
×
  • Opprett ny...