Hi,
wie haben von unserem Lehrer eine main-Methode vorgegeben und sollen dazu die Methode schreiben. Das Programm soll bei beliebigen Sortiermethoden funktionieren und dann das Laufzeitverhalten abbilden.
Ich habe soweit alle Methode fertig, nur bei der Ausgabe komme ich nicht weiter. Sie soll so aussehen:
Bubblesort:
------------------------------------------------------------------------------------------------x
----------------------------------------------------------------------------------------------x
-------------------------------------------------------------------------------------------------x
-----------------------------------------------------------------------------------------------x
-------------------------------------------------------------------------------------------------x
Quicksort:
----------x
----------x
----------x
----------x
----------x
immer 5x, weil es 5 Versuche sind
etc.
hier mein Quellcode (hab jetzt mal nur Bubblesort drin):
Es geht um die Methode "simpleplot"-
Die Variable scale soll die Ausgabe auf 1700 begrenzen, da es bei Bubblesort bei 500 Array-Elementen mehr als 1700 Schritte sind. Ich hab es bis jetzt erstmal ohne scale probiert, aber schon da komm ich nicht weiter ???:L
Bitte um Hilfe
wie haben von unserem Lehrer eine main-Methode vorgegeben und sollen dazu die Methode schreiben. Das Programm soll bei beliebigen Sortiermethoden funktionieren und dann das Laufzeitverhalten abbilden.
Ich habe soweit alle Methode fertig, nur bei der Ausgabe komme ich nicht weiter. Sie soll so aussehen:
Bubblesort:
------------------------------------------------------------------------------------------------x
----------------------------------------------------------------------------------------------x
-------------------------------------------------------------------------------------------------x
-----------------------------------------------------------------------------------------------x
-------------------------------------------------------------------------------------------------x
Quicksort:
----------x
----------x
----------x
----------x
----------x
immer 5x, weil es 5 Versuche sind
etc.
hier mein Quellcode (hab jetzt mal nur Bubblesort drin):
Code:
import java.util.*;
class Experiment {
public static void main (String [ ] args) {
int numberExperiments = 5; // number of experiments
int numberElements = 500; // number of elements in array
int maxRand = 1000; // random numbers 0 .. maxRand - 1
int scale = 1700; // scale for plotting
/* Integer.MAX VALUE)= 2,147,483,647
for reference: largest value allowed */
int [ ] array;
Random rd = new Random();
int [ ] result = new int [numberExperiments];
// --- BubbleSort ---
BubbleSort bs = new BubbleSort();
for (int i = 0; i < numberExperiments; i++) {
array = Utils.allocateRandArray(rd, maxRand, numberElements);
bs.sort(array, numberElements);
result[i] = bs.count;
}
Utils.simplePlot("BubbleSort", result /* , scale */);
}
}
class Utils {
//Array mit Zufallszahlen fuellen
static int[] allocateRandArray(Random rd, int maxRand, int numberElements) {
int[] array = new int [numberElements];;
for (int i=0; i<numberElements; i++) {
array[i] = rd.nextInt(maxRand);
}
return array;
}
//Ausgabe
static void simplePlot (String name, int[] result /* , int scale */ ) {
System.out.println(name +":");
for (int i = 0; i < result[i]; i++) {
System.out.print("-");
}
}
//Bubblesort
class BubbleSort {
int count = 0; //zaehlt die Schritte
public BubbleSort() {
}
public int[] sort(int[] array, int numberElements) {
int temp;
for (int i = 0; i < numberElements-1; i = i + 1) {
for (int j=numberElements-1; j > i; j = j - 1) {
if (array[j-1] > array[j]) {
temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
count++;
}
}
}
return array;
}
}
Es geht um die Methode "simpleplot"-
Die Variable scale soll die Ausgabe auf 1700 begrenzen, da es bei Bubblesort bei 500 Array-Elementen mehr als 1700 Schritte sind. Ich hab es bis jetzt erstmal ohne scale probiert, aber schon da komm ich nicht weiter ???:L
Bitte um Hilfe