tommy18 Skrevet 30. januar 2005 Del Skrevet 30. januar 2005 [/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; } Lenke til kommentar
Z_IM Skrevet 30. januar 2005 Del Skrevet 30. januar 2005 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; } Lenke til kommentar
tommy18 Skrevet 30. januar 2005 Forfatter Del Skrevet 30. januar 2005 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 Lenke til kommentar
GaLiHaLen Skrevet 31. januar 2005 Del Skrevet 31. januar 2005 (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 31. januar 2005 av GaLiHaLen Lenke til kommentar
Manfred Skrevet 2. februar 2005 Del Skrevet 2. februar 2005 Node løper = hode; Jeg vil ikke anbefale bruken av 'ø' Lenke til kommentar
berzerker Skrevet 2. februar 2005 Del Skrevet 2. februar 2005 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. Lenke til kommentar
Iyon Skrevet 8. februar 2005 Del Skrevet 8. februar 2005 En lenket liste er jo enklere å sortere enn en array, bare man holder tunga beint i kjeften med alle pekerene... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå