B
Bidibus
Gast
Hi allerseits!
Ich bin neu hier und hab wahrscheinlich die einfachste Frage, die es gibt. Normalerweise mache ich mit Java nicht so viel. Aber die Sprache entwickelt sich ja so gut.
Nun, ich hatte gedacht... ich schreibe ein Programm, welches aus einer Datei Werte sortiert mit dem Quicksort Algorithmus.
Das untenstehende Programm tut dies.
Aber ich kann in meiner Main Methode (ganz unten) leider keine meiner erstellen Methoden aufrufen, da diese sich alle in einem nicht statischen Context befinden.
Kann mir jemand erklären, wie ich diese aufrufe? Ist das Java-eigen?
Das finde ich total seltsam. Angeblich, so habe ich recherschiert, soll ich ein Objekt erzeugen... Naja... ich habe es seit 2 Tagen vergeblich versucht.
Wäre toll, wenn mir hier wer helfen könnte,
Gruß,
Mark
Ich bin neu hier und hab wahrscheinlich die einfachste Frage, die es gibt. Normalerweise mache ich mit Java nicht so viel. Aber die Sprache entwickelt sich ja so gut.
Nun, ich hatte gedacht... ich schreibe ein Programm, welches aus einer Datei Werte sortiert mit dem Quicksort Algorithmus.
Das untenstehende Programm tut dies.
Aber ich kann in meiner Main Methode (ganz unten) leider keine meiner erstellen Methoden aufrufen, da diese sich alle in einem nicht statischen Context befinden.
Kann mir jemand erklären, wie ich diese aufrufe? Ist das Java-eigen?
Das finde ich total seltsam. Angeblich, so habe ich recherschiert, soll ich ein Objekt erzeugen... Naja... ich habe es seit 2 Tagen vergeblich versucht.
Wäre toll, wenn mir hier wer helfen könnte,
Gruß,
Mark
Code:
import java.util.Random;
public class qsort extends Reader{
public void quicksort(int a[]){
// Dies ist der Quicksort...
for (int i=0; i>zahlenliste.size(); i++) {
leser()[i]=a[i];
}
int unten, oben;
int i=0; //erstes Element
int j=zahlenliste.size(); //letzes Element
//int mitte=(unten + oben)/2; //Debugging
int x=a[randomPivot()]; //a irgendwo
do {
while (a[i]<x)
i++;
while (a[j]>x)
j--;
if (i<=j) {
int tmp=a[i];
a[i]=a[j];
a[j]=tmp;
i++;
j--;
}
} while (i<=j);
if (unten<j)
quicksort();
if (i<oben)
quicksort();
}
public int randomPivot()
{
Random r = new Random();
int startwert=0;
int x=startwert + r.nextInt() % zahlenliste.size();
return x;
}
}
Code:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Reader
{
List zahlenliste = new ArrayList();
public int[] leser()
{
int[] intArray = null;
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader("sortme.dat"));
String zahl;
while ((zahl = br.readLine())!=null )
{
zahlenliste.add(Integer.valueOf(zahl));
}
int size = zahlenliste.size();
intArray = new int[size];
Integer[] sortedArray = (Integer[]) zahlenliste.toArray(new Integer[size]);
Arrays.sort(sortedArray);
for (int i = 0, n = zahlenliste.size(); i < n; i++)
{
intArray[i] = sortedArray[i].intValue();
}
}
catch (Exception e)
{
System.out.println("Data Error!");
}
finally
{
if( br != null)
{
try
{
br.close();
}
catch (IOException e)
{
//nop
}
}
}
return intArray;
}
public static void main(String[] args)
{
Reader reader = new Reader();
int[] intArray = reader.leser();
for( int i=0,n=intArray.length; i<n; i++)
{
System.out.println( "value: " + intArray[i]);
}
}
}
Code:
public class start extends qsort {
public static void main (String[] args) {
int[] a=null;
a = new int[2000];
quicksort();
System.out.println(a[1]);
}