myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[JAVA] Char Array mit Bubblesort durch While-Schleife sortieren

Willkommen

myGully

Links

Forum

 
Antwort
 
Themen-Optionen Ansicht
Ungelesen 16.10.10, 08:18   #1
Kapp.Sparda
Anfänger
 
Registriert seit: Sep 2008
Beiträge: 3
Bedankt: 2
Kapp.Sparda ist noch neu hier! | 0 Respekt Punkte
Standard

@urga: Das ist schon Bubblesort, nur finde ich diesen Algorithmus effektiver da er aufhört zu sortieren wenn alles sortiert ist während der Algorithmus mit zwei for-Schleifen Feldgröße² Durchläufe hat, also weitersortieren will selbst wenn schon alles sortiert ist.
Gerade bei Großen Arrays finde ich diese Version praktischer.
Kapp.Sparda ist offline   Mit Zitat antworten
Ungelesen 16.10.10, 13:20   #2
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Kapp.Sparda Beitrag anzeigen
@urga: Das ist schon Bubblesort, nur finde ich diesen Algorithmus effektiver da er aufhört zu sortieren wenn alles sortiert ist während der Algorithmus mit zwei for-Schleifen Feldgröße² Durchläufe hat, also weitersortieren will selbst wenn schon alles sortiert ist.
Gerade bei Großen Arrays finde ich diese Version praktischer.
Urga hat schon Recht.
Von zwei for-Schleifen hat er auch gar nicht gesprochen.
Die Abbruchbedingung ist bei BubbleSort immer die gleiche... ist die Liste sortiert, dann darf der Algorithmus abbrechen, sonst wäre es kein übliches BubbleSort.


Bei jedem Durchlauf ist das größte Element immer am Ende (es steigt wie ein Bläßchen nach oben... daher ja auch der Name). Daher muss nicht nach jedem DL die gesamte Liste überprüft werden.
PornoPenner ist offline   Mit Zitat antworten
Ungelesen 19.10.10, 14:15   #3
Belenus666
Newbie
 
Registriert seit: Dec 2008
Beiträge: 45
Bedankt: 19
Belenus666 ist noch neu hier! | 0 Respekt Punkte
Standard

So LEute danke für eure Tipps ihr habt mir echt super geholfen^^
Wenn ich am Donnerstag wieder in Programmieren sitze poste ich euch mal eine Lösung.

Vllt findet ja noch jmd was was man besser machen kann^^

Thx an alle

So far Belenus
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Belenus666 ist offline   Mit Zitat antworten
Ungelesen 22.10.10, 12:10   #4
Belenus666
Newbie
 
Registriert seit: Dec 2008
Beiträge: 45
Bedankt: 19
Belenus666 ist noch neu hier! | 0 Respekt Punkte
Standard

So hier jetzt das komplette Prog

Code:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bubblesortwhile;

/**
 *
 * @author eike
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        char[] F = {'3', 'c', '2', 'b', '1', 'a'};
        int swa = 0;
        int inner = 0;
        int i; // declare loop counter

        System.out.println("Start program...");

        i = 0; // initialize loop counter (= array index)

        while (i < F.length) // loop variable still in range?
        {

            System.out.println(F[i]); // display value

            i = i + 1; // increment loop counter

        }

        System.out.println("Sortierung beginnt");

        i = 1;                              // Deklaration der i variable mit Wert 1
        while (i < F.length) {              //1. While_Schleife mit Bedingung i kleiner Arraylänge
            int j = F.length - 1;           //Initialisierung und Deklaration der Variable j mir größe Arraylänge -1
            while (j >= i) {                // Während j größer gleich i
                if (F[j] < F[j - 1]) {      // wenn F[j] kleiner F[j-1]
                    char temp = F[j];       // Initialisierund und Wertezuweisung Variable Temp = F[j]
                    F[j] = F[j - 1];        //Kopieren von Wert F[j-1] auf Wert F[j]
                    F[j - 1] = temp;        // Kopieren von Wert Temp auf F[j-1]
                    swa++;                  //Inkrementieren der Variable swa
                }
                inner++;                    //Inkrementieren der Variable inner
                j = j - 1;                  //Dekrementieren der Variable J
            }
            i = i + 1;                      //Inkrementieren der Variable I
        }

        i = 0;                              // initialize loop counter (= array index)

        while (i < F.length)                // loop variable still in range?
        {

            System.out.println(F[i]);       // display value

            i = i + 1;                      // increment loop counter

        }
        System.out.println("Die Zahlen wurden " + swa + " mal vertauscht"); //Ausgabe der Vertauschungen
        System.out.println("Die innere Schleife wurde " + inner + " mal durchlaufen");//Ausgabe der Inneren Schleifen Durchläufe
        System.out.println("Programm beendet!");//Ausgabe Programm Ende

    }
}
__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Belenus666 ist offline   Mit Zitat antworten
Ungelesen 22.10.10, 15:37   #5
PornoPenner
Banned
 
Registriert seit: Aug 2010
Beiträge: 209
Bedankt: 70
PornoPenner ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von Belenus666 Beitrag anzeigen
So hier jetzt das komplette Prog
... mit einer großen Anzahl von Design-Fehlern
Aber funktional wohl korrekt.
PornoPenner ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.


Sitemap

().