6 svar
164 visningar
civilingengör behöver inte mer hjälp
civilingengör 193
Postad: 9 maj 2022 11:29 Redigerad: 9 maj 2022 11:57

Sortera lista i alfabetisk ordning

Hej! Varför är denna metod inkorrekt? (Uppgiftsbeskrivning läses nedan)

Macilaci 2122
Postad: 9 maj 2022 12:09

Du hoppar över varannan person. Det är aldrig en bra ide att manipulera loopvariabeln inifrån loopen.

Jag menar i++ i rad 22.

civilingengör 193
Postad: 9 maj 2022 13:20

Hur löses då detta?

Macilaci 2122
Postad: 9 maj 2022 13:45 Redigerad: 9 maj 2022 13:46

T.ex.

rad 18 ska vara "for(int i = 0; i < persons.size() - 1; i++) {"

rad 22 ska vara "for(int j = i + 1; j < persons.size(); j++) {"

civilingengör 193
Postad: 9 maj 2022 19:51

Tack så mycket! Finns den andra metoder för insättningssortering som är att rekommendera framför denna?

Macilaci 2122
Postad: 9 maj 2022 20:28

Det finns många sorteringsalgoritmer beroende på egenskaperna hos listan att sortera.
Den du använde, "insättningssortering" är en av de enklare algoritmer.
Java har till exempel inbyggda sorteringsmetoder för collections där du bara behöver tillhandahålla en jämförelsefunktion.

Dessa inbyggda sorteringar tillämpar mer komplicerade metoder med mycket bättre prestanda.

Du kan hitta många exempel på nätet. T.ex.  här:  https://howtodoinjava.com/java/sort/comparable-comparator/

civilingengör 193
Postad: 9 maj 2022 20:44

Tack så mycket. Ha en fortsatt trevlig måndag!

Svara
Close