Testklasse für BubbleSort < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 18:56 Di 10.07.2012 | Autor: | BigDeal |
Aufgabe | selbst erdacht...
BubbleSort Algorithmus testen mit Hilfe einer Testklasse. |
Hallo,
ich möchte einen BubbleSort Logarithmus testen. Es scheitert bei mir am Erstellen der Testklasse. In ihr möchte ich ein Array erzeugen und es Sortieren. Ganz allgemein geht es mir um die Frage wie man Methoden anderer Klassen mit Hilfe von Testklassen überprüfen kann.
Quellcode der Testklasse (Test.java):
----------------------------------
public class Test {
double list[] = new double[5]; //Array erzeugen
list[0] = 5;
list[1] = 1;
list[2] = 7;
list[3] = 4;
list[4] = 11;
list[5] = 2;
public static void main(String[] args){ //Mainmethode
BubbleSort.bubbleSort(list[]); /*Zugriff auf die Klasse BubbleSort und deren Methode bubblesort... außerdem wird das Array list[] übergeben*/
System.out.println(list[]); /*Ausgeben der sortierten Liste*/
}
}
-----------------------------
Quellcode der BubbleSort Klasse (BubbleSort.java):
---------------------------------------------------------
public class BubbleSort {
public static void bubbleSort(double[] list) {
boolean sorted = false;
for (int top = list.length - 1; top > 0 && !sorted; top--) {
sorted = true;
for (int i = 0; i < top; i++) {
if (list[i] > list[i+1] ) {
sorted = false;
double temp = list[i];
list[i] = list[i+1];
list[i+1] = temp;
}
}
}
}
}
--------------------------------------------
Vielen Dank für eure Hilfe.
|
|
|
|
moin,
Spontan würde ich sagen dürftest du ein Problem beim Erstellen der Liste haben, da diese Länge $5$ hat, du aber $6$ Elemente reinschreibst.
Ansonsten erzähl doch mal was nicht klappt, was für Fehlermeldungen ausgegeben werden oder wo genau das Problem liegt.
Allgemein ist deine Testidee schon ganz gut.
Möchtest du das ganze etwas automatischer machen und ggf. eine größere Menge an Tests durchlaufen lassen könntest du dich mal über sogenannte UnityTests informieren.
lg
Schadow
|
|
|
|
|
Hallo BigDeal,
> selbst erdacht...
> BubbleSort Algorithmus testen mit Hilfe einer Testklasse.
> Hallo,
> ich möchte einen BubbleSort Logarithmus testen. Es
> scheitert bei mir am Erstellen der Testklasse. In ihr
> möchte ich ein Array erzeugen und es Sortieren. Ganz
> allgemein geht es mir um die Frage wie man Methoden anderer
> Klassen mit Hilfe von Testklassen überprüfen kann.
>
> Quellcode der Testklasse (Test.java):
> ----------------------------------
> public class Test {
>
> double list[] = new double[5]; //Array erzeugen
>
> list[0] = 5;
> list[1] = 1;
> list[2] = 7;
> list[3] = 4;
> list[4] = 11;
> list[5] = 2;
>
Demnach hat das Array list 6 Elemente.
Damit ist dieses so zu deklarieren:
double list[] = new double[6]; //Array erzeugen
Die Initialisierung des Arrays ist der Konstruktor der Klasse Test.
Damit ist die Initialiserung in geschweifte Klammern zu kleiden,
und dies als Methode "public Test()" zu benennen.
> public static void main(String[] args){ //Mainmethode
>
> BubbleSort.bubbleSort(list[]); /*Zugriff auf die Klasse
Das Array list ist nur mir Namen zu übergeben;
BubbleSort.bubbleSort(list); /*Zugriff auf die Klasse
Außerdem ist es empfehlenwert zunächst
ein Objekt der Klasse Test zu erzeugen:
Test TestClass = new Test();
Dann ändern sich natürlich
alle nachfolgenden Aufrufe mit dem Array list.
> BubbleSort und deren Methode bubblesort... außerdem wird
> das Array list[] übergeben*/
>
> System.out.println(list[]); /*Ausgeben der sortierten
Hier wird nur die Address des Arrays list ausgegeben.
Besser ist hier eine Methode zu schreiben,
die die Arrayelemente Index für Index ausgibt.
> Liste*/
> }
> }
> -----------------------------
>
> Quellcode der BubbleSort Klasse (BubbleSort.java):
> ---------------------------------------------------------
> public class BubbleSort {
>
> public static void bubbleSort(double[] list) {
> boolean sorted = false;
>
> for (int top = list.length - 1; top > 0 && !sorted; top--)
> {
> sorted = true;
>
> for (int i = 0; i < top; i++) {
> if (list > list[i+1] ) {
> sorted = false;
> double temp = list;
> list = list[i+1];
> list[i+1] = temp;
> }
> }
> }
> }
> }
> --------------------------------------------
> Vielen Dank für eure Hilfe.
Gruss
MathePower
|
|
|
|