---Logga in så försvinner jag!---

Meddelande

Vi planerar att uppdatera Pluggakuten. Förslag och idéer kring detta mottas tacksamt här.

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 hmm

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

 


Sidfot

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

Copyright © 2006-2007 - Thomas Karlsson
 |  Denna sida använder cookies |  Kontakta oss |  Feedback |