Meddelande
Om du vill prata med andra användare (inte om uppgiftsfrågor), kan du göra det i chatten.
Att tänka på när man skapar en ny tråd:
- Skriv tydliga rubriker där du om möjligt anger både ämne och nivå för frågan.
Exempel: "[KE A] balansering av formel". Undvik saker som "HJÄLP!!!" och "SNÄLLA!!".
- Visa alltid hur du har försökt. Då är det mycket enklare att hjälpa till.
- Korsposta ej! Det är inte tillåtet att posta samma tråd flera gånger.
- Bumpa inte din tråd mer än en gång per dygn.
Se alla regler här. Om dessa regler ignoreras kommer en varning att delas ut, som kan följas av en avstängning.
Java fråga
- PikachuProg
- Medlem
Offline
- Registrerad: 2012-02-18
- Inlägg: 79
Java fråga
Hejsan jag har en två små frågor om någon snäll själ skulle kunna svara på :
Vad innebär insättning av ett element i en redan sorterad följd?
Hur gör man upprepade insättningar av element i en redan sorterad följd? Kan någon förklara med t.ex en bild eller pseudo kod så vore jag tacksam.
Jag hittar inte det någonstans i min bok, jag uppfattade det som om man skulle använda sig av sortering men tydligen inte då det står under denna uppgift jag håller på med att sortering inte ingår i kursen ![]()
Glömde att lägga till uppgiften som jag håller på med:
** Returnerar en lista med alla strängarna i list men i längdordning
med de längsta strängarna först. Ordningen mellan strängar av
samma längd spelar ingen roll. */
static ArrayList<String> lengthOrder(ArrayList<String> list);
&& sedan står det under som förklaring:
I lengthOrder skall man sortera strängarna efter längd. Sortering ingår ej i kursen, däremot ingår insättning av ett element i en redan sorterad följd. Denna uppgift kan t ex lösas med upprepade insättningar av element i en redan sorterad följd.
All hjälp uppskattas:)
Senast redigerat av PikachuProg (2012-08-01 02:19)
- Peppe L-G
- Medlem

Offline
- Från: Linköping
- Registrerad: 2011-07-21
- Inlägg: 344
Re: Java fråga
Jag finner den undre förklaringen mycket motsägelsefull; det står att sortering ej ingår, men att ni ska åstadkomma en funktion som sorterar i alla fall :S Jösses...
Jag antar att de uppmanar er att använda någon av algoritmerna insertion sort eller selection sort. Det står massor om dem på nätet, så försök att hitta information om en av dem själv, och fråga sedan igen om du inte lyckas.
- Jannemannen
- Medlem

Offline
- Från: Systemvetarkandidat
- Registrerad: 2009-06-09
- Inlägg: 1537
Re: Java fråga
Edit: Det är nog förresten så som Peppe L-G skrev.
Spoiler (Klicka för att visa):
Det är inte meningen att ni ska använda sort-metoden som ArrayList ärver från Collections? (Då behöver du nämligen inte skriva en egen sorteringsalgoritm och du får din lista sorterad.)
http://docs.oracle.com/javase/1.4.2/doc … .html#sort(java.util.List, java.util.Comparator)
Senast redigerat av Jannemannen (2012-08-01 16:23)
Fråga mig om: C#, Java, VB.NET
- LapSiLap
- Medlem

Offline
- Registrerad: 2008-03-05
- Inlägg: 4144
Re: Java fråga
PikachuProg skrev:
däremot ingår insättning av ett element i en redan sorterad följd.
Du kan använda PriorityQueue som är en sorterad följd. Skicka in en Comparator i konstruktorn så den fattar vad sorteringen ska vara baserad på.
Kod:
PriorityQueue<String> q = new PriorityQueue<String>(10, new Comparator<String>(){
@Override
public int compare(String x, String y) {
//@TODO: Implement
return 0;
}
});PikachuProg skrev:
Denna uppgift kan t ex lösas med upprepade insättningar av element i en redan sorterad följd.
Kod:
q.add("text");
q.add("extremt lang text");
q.add("kort text");
q.add("langre text");
q.add("mycket lang text");
while (q.size() != 0){
System.out.println(q.remove());
}text
kort text
langre text
mycket lang text
extremt lang text
Senast redigerat av LapSiLap (2012-08-01 22:32)
- PikachuProg
- Medlem
Offline
- Registrerad: 2012-02-18
- Inlägg: 79
Re: Java fråga
Tack så mycket för alla svar, jag löste det tillslut, fick sitta ett par timmar med det för att förstå först vad man skulle göra och hur. Tycker verkligen texten borde vara formulerad på ett bättre sätt.Men jag uppfattade det på följande sätt :
Man har redan listan list som innehåller strängarna och sedan skapade jag en ny ArrayList<String> temp som man skall returnera.
Jag gick igenom listan list och hittade den längsta strängen och satte in den i temp-listan , fortsatte så tills jag hade gått igenom listan list.
public static ArrayList<String> lengthOrder(ArrayList<String> list) {
ArrayList<String> temp = new ArrayList<String>();
for (int i=0; i<list.size(); i++) {
int length = list.get(i).length();
int place = temp.size()-1;
while (placet>=0 && temp.get(place).length()<len) {
place--; }
temp.add(place+1,list.get(i));
}
return temp;
}
Hoppas att ni förstår kanske jag förklade det lite luddigt:/
