2002-10-21, 13:47
  #1
äldre konto (old)
Ej medlem
Tjena.

Jag är nybörjare i programmering och behöver hjälp till en skoluppg.
Om ingen kan svara på min fråga som kommer nedan, så kanske någon kan tipsa om något programmerings-forum.

Mitt problem är att jag har en fil, som är uppbyggd på följande vis;
aa xxxxxx
aa xxxxxx
aa xxxxxx

där a=bokstäver och x=siffror.

Dessa rader läser jag in i en array, men jag vill sortera den efter storleken på talen, inte efter namn. Och jag vill inte skapa en ny array där talen läggs in sortras separat.

Tack på förhand.
Citera
2002-10-21, 13:55
  #2
äldre konto (old)
Ej medlem
testa att göra en bubblesort på arrayen...
Citera
2002-10-21, 14:03
  #3
Medlem
Liquid_Xs avatar
man lär sig inte om man har andra att göra sina skoluppgifter

men ändå.. lättast lär bli att läsa upp raden och lagara den i arrayn sen sortera arrayn men avsenende på värdena, bubbel sort lär funka bra
Citera
2002-10-21, 14:04
  #4
äldre konto (old)
Ej medlem
Vad är det? Hur hittar jag det i javas klassbibliotek?
Är ni säkra på att det inte är C++?

Har suttit med detta lilla problem i säkert fem timmar. Det är därför jag frågar. Detta är bara en liten del av själva uppg.

Tackar som svarar så snabbt.
Citera
2002-10-21, 14:09
  #5
Medlem
Liquid_Xs avatar
bubbelsort är en soterings algoritm, den kan implementeras i alla språk

www.google.com <-- dax att söka kanske
Citera
2002-10-21, 14:34
  #6
äldre konto (old)
Ej medlem
Ok tackar.
Jag hade redan denna sorteringsalgoritm, men har inte fått det att fungera och så visste jag inte att den kallades för bubblesort. Nu vet jag att jag är inne på rätt spår.
Vad är att rekommendra för att "plocka" ut talen ur raden. Jag vet att man kan göra det med substring(), men fungerar det att använda denna i detta sammanhang? För sortera det man plockar ut.
Citera
2002-10-21, 16:18
  #7
äldre konto (old)
Ej medlem
Liquid_X, du verkar kunna en del. Fan jag kommer ingenstans.
Om jag vill sortera nedanstående array efter talen, hur gör jag?

public static void main(String[] args)
{
String[] talvektor = new String[5];

talvektor[0] = "jh 26.98154";
talvektor[1] = "as 252.1";
talvektor[2] = "ss 223.0";
talvektor[3] = "sd 132.9054";
talvektor[4] = "ty 4.00260";

sort(talvektor);

for(int i = 0; i < talvektor.length; i++)
System.out.println(talvektor[i]);
}
}


//Nedanstående är en sorteringsalgoritm man kan använda på tal, men hur "plocka ut" dem ur arrayen?

public class Urvalssortering{

public static double[] sort(double[] talvektor
{
int min;
for(int i = 0; i < talvektor.length-1; i++)
{
min = i
for(int j = i+1; j < talvektor.length; j++)
{
if(talvektor[j] < talvektor[min min = j; }
double temp = talvektor[i]; talvektor[i] = talvektor[min];
talvektor[min] = temp;
}
return talvektor;
}
Citera
2002-10-21, 17:46
  #8
Medlem
Liquid_Xs avatar
hmm.. min java är rätt sliten men vi ska se..

[code:1]
double d;
string s = "ss 223.0";

d = Double.parseDouble(s.substring(3))

[/code:1]

borde ge dig ett värde att jämnföra.. har ingen jdk installerad på min dator så jag kan inte testa själv


http://java.sun.com/j2se/1.4.1/docs/api/ <-- bra länk när man kådar java
Citera
2002-10-21, 23:09
  #9
Medlem
Jag skulle kunna tänka mig att du får det 100 ggr lättare om du skiljer talen och bokstäverna i olika arrayer.

int[] talvektor = {12,3,63423,6456}
String[] talvektor = new String[5];

Så att indexnummren matchar varandra. Sen sorterar du på talvektor men o sorteringen passar du samtidigt på att flytta runt stränvektorerna med.

Föstår du ungefär? Kan inte ge dig färdig kod för jag har annat att hitta på just nu.


Citat:
Ursprungligen postat av etthundra
Liquid_X, du verkar kunna en del. Fan jag kommer ingenstans.
Om jag vill sortera nedanstående array efter talen, hur gör jag?

public static void main(String[] args)
{
String[] talvektor = new String[5];

talvektor[0] = "jh 26.98154";
talvektor[1] = "as 252.1";
talvektor[2] = "ss 223.0";
talvektor[3] = "sd 132.9054";
talvektor[4] = "ty 4.00260";

sort(talvektor);

for(int i = 0; i < talvektor.length; i++)
System.out.println(talvektor[i]);
}
}


//Nedanstående är en sorteringsalgoritm man kan använda på tal, men hur "plocka ut" dem ur arrayen?

public class Urvalssortering{

public static double[] sort(double[] talvektor
{
int min;
for(int i = 0; i < talvektor.length-1; i++)
{
min = i
for(int j = i+1; j < talvektor.length; j++)
{
if(talvektor[j] < talvektor[min min = j; }
double temp = talvektor[i]; talvektor[i] = talvektor[min];
talvektor[min] = temp;
}
return talvektor;
}
Citera
2002-10-22, 05:27
  #10
äldre konto (old)
Ej medlem
Citat:
Ursprungligen postat av setrex
Jag skulle kunna tänka mig att du får det 100 ggr lättare om du skiljer talen och bokstäverna i olika arrayer.

Speciellt om namnen är av olika längd.

För att få ut talet kan du använda .getFloat() på strängen.
Citera
2002-10-22, 14:38
  #11
äldre konto (old)
Ej medlem
Kan ni inte sluta använda BubbleSort det är en oerhört dålig algoritm, använd QuickSort så att det blir lite ös i grejerna.
Citera
2002-10-22, 15:01
  #12
Medlem
Liquid_Xs avatar
Citat:
Ursprungligen postat av JuicyAss
Kan ni inte sluta använda BubbleSort det är en oerhört dålig algoritm, använd QuickSort så att det blir lite ös i grejerna.

jo, men quicksort är något klurigare att implementerar och är det bara några 10-tal värden man sorterar så är skillnade försummbar
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in