Gå til innhold

sortere en liste av integers


Anbefalte innlegg

Skrevet

[/code]Har problemer med en liste som skal sortere integers. Får flere nullpointerexceptions. Håper noen kan hjelpe meg

 

// Kode som skal sortere lista i stigende rekkefølge

 

public void sorter() {

int min = hode.getInfo();

Node sortert = hode;

Node løper = hode;

int antSorterte = 0;

 

 

while (sortert != null)

{

løper = sortert;

while (løper.neste != null)

{

if (min > løper.neste.getInfo())

min = løper.neste.getInfo();

løper = løper.neste;

}

 

løper = sortert;

while (løper.getInfo() != min || løper.neste != null)

{

løper = løper.neste;

}

 

Node temp = løper.neste; // minste node

if (løper.neste.neste == null)

løper.neste = null;

else

løper.neste = løper.neste.neste;

settInnForrest(temp);

antSorterte++;

 

 

for(int i = 0; i<antSorterte; i++)

sortert = sortert.neste;

 

}

Videoannonse
Annonse
Skrevet

Hvordan sortere verdiene?

Hva med og bruke den klassiske BubbleSort?

public void BubbleSort( int[] b )
{
  for( int pass = 1; pass < b.Length; pass++ )
  {
     for( int i =0; i < b.Length-1; i++ )
     {
        if( b[i] > b[i + 1] ) 
        {
           Swap( b ,i ); 
        }
     }
  }
}

public void Swap( int[] c, int first )
{
  int hold;
  hold = c[first]; 
  c[ first ] = c[ first + 1 ];
  c[ first + 1 ] = hold;  
}

Skrevet

Denne fungerer vel bare på arrays? jeg har en liste som jeg skal sortere. Tror ikke jeg kan bruke den da, men med litt modifikasjoner så går det kanskje

Skrevet (endret)

er sikkert mulig å legge listen din i en array og. Men er lett å lage en sortert liste og. Kanske en trestruktur er å foretrekke.

 

om du skal sortere en lenket liste:

 

if(liste.integer>liste.neste.integer){

mid = liste;

liste = liste.neste;

liste.neste = mid;

}

 

bør slenge med noen tester mot null men ellers er det sikkert greit nok det der.

må ha en while løkke av noe slag der og. Du kan gjøre det i listen og om du vil og kalle det rekursivt.

Endret av GaLiHaLen
Skrevet

Du kan jo "lure" litt og bruke Collections.sort();

 

Collections.sort( myList );

 

Hvis listen din er en del av collections rammeverket vil den bli sortert. Sjekk i Java API'en for nøyaktig beskrivelse av metoden.

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...