Avatar billede edron Nybegynder
25. februar 2002 - 09:59 Der er 7 kommentarer og
1 løsning

Sortering

Hej!
Jeg har følgende spørgsmål:
Hvis nu man har et STØRRE antal integers end vist i nedenstående eksempel, hvordan sorterer man dem så efter størrelse?
Eksempelvis en indlæst Tekst-String, hvor man skal finde længste og korteste ord, og man ikke på forhånd kender ordenes længde ?


/* Eksempel med input af 3 forskellige integers*/

int x, y, z;

sum = x + y + z;

average = sum / 3;

product = x * y * z;

largest = x; //assume x is the largest

if ( y > largest)
   
    largest = y;

if ( z > largest)

    largest = z;

smallest = x;//assume x is the smallest

if (y < smallest)

    smallest = y;

if (z < smallest)

    smallest = z;
Avatar billede disky Nybegynder
25. februar 2002 - 10:05 #1
smid dem i en arraylist og brugt sort() til at gøre det.

hvis du ikke kan bruge den almindelige sort() kan du lave din egen og bruge den istedet, derved kan du sortere alt.
Avatar billede edron Nybegynder
25. februar 2002 - 10:15 #2
til disky:
Jeg er ikke så meget inde i array's endnu. Kan man ikke bruge en af javas løkker til at sortere med?
Avatar billede carstenknudsen Nybegynder
25. februar 2002 - 10:16 #3
Her er et eksempel på sortering.
import java.util.*;
int[] tal = new int[] {3,2,4,65,3,3,4,4,4,.....}; // skal sorteres
List list = new ArrayList();
for (int i=0; i<tal.length;i++) {
list.add(new Integer(tal[i]);
}
Collections.sort(list);
for (int i=0; i<tal.lenght; i++) {
tal[i]=((Integer)list.get(i)).intValue();
}
Avatar billede carstenknudsen Nybegynder
25. februar 2002 - 10:18 #4
edron: ang. din kommentar til disky.
Du skal bruge de ting der er bygget ind i Java
fordi de som regel er effektive og veldokumenterede.
Det er let at lave en bubble sort eller quick sort,
men arbejdet er lavet for dig. Hvis du ikke er inde
i arrays så kig på nogle af de tutorials der ligger på
java.sun.com, det er ret centralt at kunne arbejde
med arrays (og lister).
Avatar billede carstenknudsen Nybegynder
25. februar 2002 - 10:19 #5
Forresten, du kan slet ikke bruge løkker til at
sortere med hvis ikke du bruger arrays.
Avatar billede disky Nybegynder
25. februar 2002 - 11:33 #6
carsten det ved jeg udemærket godt, jeg glemte bare at nævne ordet 'comperator'.

Jeg har rodet rigeligt med sortering af mere eller mindre obskure ting og sager.
Avatar billede carstenknudsen Nybegynder
25. februar 2002 - 11:41 #7
disky: jeg har intetsteds skrevet at du ikke ved noget?
Det var en kommentar til edron ikke til dig, læs den igen.
Avatar billede soelvpil Nybegynder
25. februar 2002 - 21:27 #8
Som en lille kommentar, er her et program, der løser sorteringsopgaven nævnt i eksemplet (og endda sorterer ale ordene).


import java.util.StringTokenizer;
import java.util.SortedMap;
import java.util.TreeMap;

public class Sortering {

  public static void main(String[] args) {
    String langStreng = args[0];
    StringTokenizer ordOpdeling=new StringTokenizer(langStreng, " ");
    SortedMap sorteretOrdliste = new TreeMap();
    while (ordOpdeling.hasMoreTokens()) {
      String nytOrd = ordOpdeling.nextToken();
      sorteretOrdliste.put(new Integer(nytOrd.length()),nytOrd);
    }
  }
}


Programmet er IKKE det mest optimale, men det er let at skrive, fordi det bruger indbyggede ting i Java. Det er sjældent umagen værd at rbuge en halv dag på at kode en genial sortering, som kan spare en for ca. 0.1 sekund.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Ringkjøbing Landbobank – Nordjyske Bank

Forretningsudvikler til procesoptimering

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Ingeniør til Satellitkommunikation

Politiets Efterretningstjeneste

AI/ML udvikler i PET