Finde fehler nicht

Status
Nicht offen für weitere Antworten.
F

frankiff

Gast
Hallo,

ich muss 9 zahlen aus einem array nach der größe ordnern
diesen code habe ich von einem struktogramm
hier ist das Struktogramm : struktogramm


Code:
public static int teile(int[] daten, int rechts, int links) {
        int i, j, pivot, ersatzi, ersatzj, ersatzr=0;
        i=links;
        j=rechts-1;
        pivot=daten[rechts];
        
        do{
            while((daten[i]<=pivot) && (i<rechts))  {
                i=i+1;
            }
            while((pivot<=daten[j]) && (j<links))  {
                j=j-1;
            }
            if(i<j) {
                ersatzi=daten[i];
                ersatzj=daten[j];
                daten[j]=ersatzi;
                daten[i]=ersatzj;
            }else{}
        }while(i<j);
            ersatzi=daten[i];
            ersatzr=daten[rechts];
            daten[rechts]=ersatzi;
            daten[i]=ersatzr;
        
        
        return i;
    }
}

und hier ist die main methode :
Code:
import javax.swing.*;
/**
 * Dieses Programm liest 2 Ganzzahlen ein und potenziert sie
 * @author Umut Delil  
 * @version 2008-09-19
 */
public class STestMathUtilsRekursiv {
    public static void main(String[] args)  {
        String test="";
        int a=0, b=0, erg=0, erg2=0, z=0, erg3=0, rechts=0, links=0;
      
        int[] array;
        array=new int [9];
        array[0]=3;
        array[1]=4;
        array[2]=6;
        array[3]=9;
        array[4]=8;
        array[5]=2;
        array[6]=5;
        array[7]=1;
        array[8]=7;
        
      
            rechts=array[8];
            links=array[0];
         
            erg3=SMathUtilsRekursiv.teile(array, rechts, links);
        JOptionPane.showMessageDialog(null, ""+erg3); // Ausgabe  
    }
}
 
S

SlaterB

Gast
Doppelpost
http://www.java-forum.org/de/viewtopic.php?t=75438

verschiedene Nicknames, dein richtiger Name steht eh jeweils im Code zusammen mit unpassenden Kommentar für die Funktion der Klasse,
klasse..

zu Quicksort findest du doch bei google tausende Implementierungen,

überleg dir erstmal auf Papier, was da überhaupt passiert,
dann nimm ein einfaches Beispiel, statt 9 gehen vielleicht auch 5 oder weniger Zahlen, rechne es Schritt für Schritt auf Papier durch und vergleiche, was dein Programm stattdessen macht
 

Ariol

Top Contributor
So direkt faellt mir als fehler auf:

Code:
while((pivot<=daten[j]) && (j<links))
Sollte wohl so aussehen
Code:
while((pivot<=daten[j]) && (j>links))


Und anstatt
Code:
rechts=array[8];
links=array[0];
sollte wohl
Code:
rechts=8;
links=0;
stehen, oder:
Code:
rechts=array.length-1;
links=0;


http://www.cs.princeton.edu/introcs/42sort/QuickSort.java.html
 
F

frankiff

Gast
Leider funktioniert das Programm noch immer nicht...

Code:
/**
 * Dieses Programm potenziert und rechnet sich den größten gemeinsamen Teiler mit 2 Zahlen aus.
 * @author Umut Delil
 * @version 2008-09-19
 */
 
public class SMathUtilsRekursiv {

/**
 * Diese Methode potenziert die 2 eingegebenen Zahlen mit dem rekursiven Algortihmus
 * (=in dem die Methode sich selbst aufruft)
 * @param a, b Diese Parameter werden potenziert
 */
    public static int aHochb(int a,int b)   {
        int erg=1;
        
        if((b<0) && (a==0) || (a<0) && (b==0))    { //Wenn b kleiner als 0 ist und a gleich null ist (oder das Bsp. umgekehrt)
            return -55;  //Wird die Fehlermeldung -55 zurückgeliefert, weil man kann z.B. nicht 0 hoch -2 rechnen 
        }else{
            if(b==0)    {
                return 1; //Wenn b 0 ist wird 1 zurückgeliefert, weil x hoch 0 immer 1 ist
            }
        }
        return erg=a * aHochb(a, b-1); // rekursiver Algorithmus
    }
/**
 * Diese Methode rechnet sich den größten gemeinsamen Teiler aus
 * (=in dem die Methode sich selbst aufruft)
 * @param a, b Mit diesen Paramtern wird der größte gemeinsamer Teiler ausgerechnet
 */        
    public static int ggT(int a, int b){
        int erg=1, ersatzr=0;
        
        if(b==0) {
            return a; //Wenn b 0 ist, dann ist das Ergebnis automatisch a.
        }else{
          if((b>0) && (a>0)) { // Hier wird überprüft ob die Eingabe positiv ist.
              return erg=ggT(b, a%b); // rekursiver Algorithmus, hier wird der größte gemeinsamer Teiler ausgerechnet
          }else{
              return -55; // -55 ist eine Fehlermeldung.
          }
        }
    }
    
    public static int teile(int[] daten, int rechts, int links) {
        int i, j, pivot, ersatzi, ersatzj, ersatzr=0;
        i=links;
        j=rechts-1;
        pivot=daten[rechts];
        
        do{
            while((daten[i]<=pivot) && (i<rechts))  {
                i=i+1;
            }
            while((pivot<=daten[j]) && (j>links))  {
                j=j-1;
            }
            if(i<j) {
                ersatzi=daten[i];
                ersatzj=daten[j];
                daten[j]=ersatzi;
                daten[i]=ersatzj;
            }else{}
        }while(i<j);
            ersatzi=daten[i];
            ersatzr=daten[rechts];
            daten[rechts]=ersatzi;
            daten[i]=ersatzr;
        
        
        return i;
    }
}


Testmethode

Code:
import javax.swing.*;
/**
 * Dieses Programm liest 2 Ganzzahlen ein und potenziert sie
 * @author Umut Delil  
 * @version 2008-09-19
 */
public class STestMathUtilsRekursiv {
    public static void main(String[] args)  {
        String test="";
        int a=0, b=0, erg=0, erg2=0, z=0, erg3=0, rechts=0, links=0;
        int[] array2;
        array2=new int[9];
        int[] array;
        array=new int [9];
        array[0]=3;
        array[1]=4;
        array[2]=6;
        array[3]=9;
        array[4]=8;
        array[5]=2;
        array[6]=5;
        array[7]=1;
        array[8]=7;
        
        // Die Schleife gilt solange -55 das Ergebnis ist (-55 ist eine Fehlermeldung, dass der Benutzer etwas
        // falsches ausgegeben hat).
            rechts=8;
            links=0;
          
                erg3=SMathUtilsRekursiv.teile(array, rechts, links);
         
            
        for( int k = 0; k < array.length; k++)   {
            test=test+  " " + array[ k]; // Ausgabe  
        }
        JOptionPane.showMessageDialog(null, test);
    }
}
 
F

frankiff

Gast
Die Ausgabe stimmt eh aber das array wird nur einmal geteilt
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
W Verschachtelte If-else --> finde meinen Fehler nicht Java Basics - Anfänger-Themen 30
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
A Kalender programmieren, ich finde meinen Fehler nicht. Java Basics - Anfänger-Themen 9
Z Montageberechnungs programm, finde leider den Fehler nicht Java Basics - Anfänger-Themen 13
S Finde den fehler nicht Java Basics - Anfänger-Themen 1
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
M Methoden Fehler und finde die Lösung nicht wirklich Java Basics - Anfänger-Themen 6
T Input/Output Leerzeilen in Ausgabe -> finde den Fehler nicht Java Basics - Anfänger-Themen 10
Z Finde den Fehler nicht ! Java Basics - Anfänger-Themen 3
S Compiler-Fehler Finde den Fehler nicht... Java Basics - Anfänger-Themen 4
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
D Code Fehlerhaft finde den Fehler nicht. Java Basics - Anfänger-Themen 1
Farbenfroh Exceptions Anfänger - Finde Fehler nicht Java Basics - Anfänger-Themen 7
R Finde den Fehler nicht Java Basics - Anfänger-Themen 4
A finde fehler nicht Java Basics - Anfänger-Themen 9
X StackOverflowError, finde den Fehler nicht Java Basics - Anfänger-Themen 5
M Methoden Fehler in Methode - Finde ihn nicht Java Basics - Anfänger-Themen 7
P Benötige Hilfe - finde Fehler nicht. Java Basics - Anfänger-Themen 3
J "ArrayIndexOutOfBoundsException", finde den Fehler schlicht nicht Java Basics - Anfänger-Themen 6
V finde meinen Fehler nicht Java Basics - Anfänger-Themen 10
M Ganz einfaches Beispiel, finde den Fehler aber nicht :( Java Basics - Anfänger-Themen 2
J Finde Fehler bei kleinem Programm nicht Java Basics - Anfänger-Themen 3
V Ganz kurze Java-Hilfe - Ich finde meinen Fehler nicht Java Basics - Anfänger-Themen 4
S Out of bounds exception. Finde den fehler nicht Java Basics - Anfänger-Themen 13
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
C ich finde den fehler nicht Java Basics - Anfänger-Themen 4
J Finde die Fehler nicht Java Basics - Anfänger-Themen 2
M Finde Fehler nicht: NotSerializableException Java Basics - Anfänger-Themen 2
F Finde den Fehler nicht Java Basics - Anfänger-Themen 4
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
U Finde den fehler nicht Java Basics - Anfänger-Themen 9
J Kann den fehler nicht finde!!! Java Basics - Anfänger-Themen 7
S Finde den Fehler nicht/ verstehe Anweisung nicht Java Basics - Anfänger-Themen 12
S Finde den Fehler nicht ! Java Basics - Anfänger-Themen 8
W Java Anfänger... Finde fehler nicht Java Basics - Anfänger-Themen 11
B Java programm mit Arrays. finde den Fehler nicht Java Basics - Anfänger-Themen 3
U Finde den fehler nicht Java Basics - Anfänger-Themen 10
U Finde den fehler nicht Java Basics - Anfänger-Themen 6
C Finde meinen Fehler nicht Java Basics - Anfänger-Themen 6
N finde die fehler nicht Java Basics - Anfänger-Themen 9
G Bild wird nicht neu gezeichnet - finde den Fehler nicht Java Basics - Anfänger-Themen 3
S Finde den Fehler nicht Java Basics - Anfänger-Themen 13
O problem mit document listener finde den fehler nicht Java Basics - Anfänger-Themen 2
O arrayindexoutofbounds finde den fehler nicht Java Basics - Anfänger-Themen 6
R Finde meinen Fehler nicht! - Namen von Personen vergleichen Java Basics - Anfänger-Themen 6
M Finde den Fehler nicht Java Basics - Anfänger-Themen 3
N Finde Fehler nicht! Help plz! Java Basics - Anfänger-Themen 3
F Kleiner Fehler, den ich aber leider nicht finde. Java Basics - Anfänger-Themen 4
L Illegal Start of Type, wie finde ich den fehler Java Basics - Anfänger-Themen 4
berserkerdq2 Wo finde ich in der Java Api die Notation zu Threads bezüglich Synchronized? Java Basics - Anfänger-Themen 14
X Finde die Files über FTP nicht Java Basics - Anfänger-Themen 4
T Wie finde ich passende Java Klassen & Methoden? Java Basics - Anfänger-Themen 4
L Methoden Finde Secquenz ineinem array Java Basics - Anfänger-Themen 12
O Verriegeln, aber wo? Finde den Client der zu schließem ist. Java Basics - Anfänger-Themen 0
D Wo finde ich die OpenSource-Sources? Java Basics - Anfänger-Themen 5
B Finde BUG nicht... Java Basics - Anfänger-Themen 8
L StackOverFlow, finde Grund nicht! Java Basics - Anfänger-Themen 5
Z Problem mit Tutorial - Finde Kon.java nicht Java Basics - Anfänger-Themen 11
B Wie finde ich Exceptions? Java Basics - Anfänger-Themen 19
E Finde Error nciht Java Basics - Anfänger-Themen 3
B Calculator Fehlermeldung ich finde aber nichts? Java Basics - Anfänger-Themen 2
K class Enum Methode: values() - finde ich nicht in der API Java Basics - Anfänger-Themen 2
A Finde javax.servlet.* nicht Java Basics - Anfänger-Themen 6
G wie finde ich workspace programmatisch? Java Basics - Anfänger-Themen 13
G Wie finde ich das Verzeichnis von meinen Java Projekt? Java Basics - Anfänger-Themen 7
H Finde Position Java Basics - Anfänger-Themen 4
J wo finde ich javah Java Basics - Anfänger-Themen 16
B wo finde ich diese Dateien? Java Basics - Anfänger-Themen 6
B Wo finde ich die Klasse javax.sound.sampled.AudioSystem Java Basics - Anfänger-Themen 7
G wie finde ich den pfad meines programms raus? Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException finde den Auslöser nicht Java Basics - Anfänger-Themen 5
B Finde das Problem nicht! Java Basics - Anfänger-Themen 2
B Finde Methode einer Klasse nicht Java Basics - Anfänger-Themen 4
F Erste Schritte in Java - Wo finde ich Antworten? Referenzbib Java Basics - Anfänger-Themen 3
B Wo finde ich eine Übersicht aller Methoden? Java Basics - Anfänger-Themen 2
J wo finde ich die methode addactionlistener in der api ? Java Basics - Anfänger-Themen 5
F Kann mir jemand bei dem Fehler helfen? Java Basics - Anfänger-Themen 6
Juelin jedit Fehler beim starten Java Basics - Anfänger-Themen 2
I Frage Thymeleaf -> Fehler ignorieren und mit "" ersetzen? Java Basics - Anfänger-Themen 15
E Matrizenmultiplikation Fehler Java Basics - Anfänger-Themen 0
Z Fehler Zeiterfassungsprogramm Anzeige Java Basics - Anfänger-Themen 3
C SwingWorker mit Fehler Java Basics - Anfänger-Themen 2
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
G Compiler-Fehler Fehler in Zeile 1 beheben, wie? Java Basics - Anfänger-Themen 9
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
ohneInformatik; Dynamische Zinsen. Wo liegt der Fehler? Java Basics - Anfänger-Themen 4
Fiedelbambu deriveFont Fehler wer kann Helfen? Java Basics - Anfänger-Themen 4
I Ical4j / Kalender einlesen von URL - Fehler: "Unparseable date" Java Basics - Anfänger-Themen 16
Lion.King Fehler in double und int Java Basics - Anfänger-Themen 7
H BlueJ: was genau ist hier der Fehler? Java Basics - Anfänger-Themen 14
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
D Datentypen LocalDate.parse() ergibt Fehler Java Basics - Anfänger-Themen 5
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
L Ich weis nicht was der Fehler ist! Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben