/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bubblesorte4; /** * * @author Eike Ulrichs */ public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { Bubblesort1 b1 = new Bubblesort1();// Erstellen eines neuen Objektes von Bubblesort int[] liste = {1, 3, 2, 6, 4, 5, 7};//Array mit Werten b1.init(liste.length, liste); System.out.println("Array vor Bubblesort"); //Ausgabe b1.display();// Aufrufen der Methode display von Objekt b1 Übergabe der Liste b1.sortOptimal();//Aufrufen der Methode sortOptimal von Objekt b1 Übergabe der Liste {System.out.println("Array nach Bubblesort");} b1.display();// Aufrufen der Methode display von Objekt b1 Übergabe der Liste b1.initReverse();// Aufrufen der Methode initReverse von Objekt b1 Übergabe der Liste {System.out.println("Umgekehrter Bubblesort");} b1.display();// Aufrufen der Methode display von Objekt b1 Übergabe der Liste b1.while1(); //Aufrufen der Methode While1 von Objekt b1 Übergabe der Liste {System.out.println("Array nach While-Bubblesort");} b1.display();// Aufrufen der Methode display von Objekt b1 Übergabe der Liste } }
/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package bubblesorte4; /** * * @author Eike Ulrichs */ public class Bubblesort1 { static int F[]; static int swap; static int inner; void init(int laenge, int X[]) { F = new int[laenge]; F = X; swap = 0; inner = 0; } public static void sortOptimal() { //Erzeugen der Methode "sortOptimal" boolean unsortiert = true;// Boolscher-Wert für die Abbruchbedingung int temp; //temporäre Variable while (unsortiert) { //Prüfen der Abbruchbedingung unsortiert = false; //Setzen des neuen Boolschen-Wertes for (int i = 0; i < F.length - 1; i++) { //Während I kleiner Array-Länge if (F[i] > F[i + 1]) {//Wenn Elemant i vom Arrax größer als I+1 temp = F[i];// Kopieren von Wert i in temp F[i] = F[i + 1];// Kopieren von Wert i+1 in i F[i + 1] = temp; //Kopieren von Wert temp in i+1 unsortiert = true; //Setzen des neuen Boolschen-Wertes swap++; } } inner++; } } public static void initReverse() {// Erzeugen der Methode "initReverse" boolean unsortiert = true;// Boolscher-Wert für die Abbruchbedingung int temp;// temporäre Variable swap = 0; inner = 0; while (unsortiert) { // Während unsortiert unsortiert = false;// Boolscher-Wert ist "False" for (int i = 0; i < F.length - 1; i++) {//Während Element I Des Arrays kleiner Element I-1 if (F[i] < F[i + 1]) {// Wenn Element I von X kleiner Element I+1 temp = F[i];// KOpieren des Wertes XI auf temp F[i] = F[i + 1];//Kopieren des Wertes XI+1 auf XI F[i + 1] = temp;//Kopieren des Wertes temp auf XI+1 unsortiert = true;// Wahrheitswert auf "true" setzen swap++; } } inner++; } } public static void display() { //Erzeugen der Methode "display" System.out.println(java.util.Arrays.toString(F)); System.out.println("Die Variablen wurden " + swap + " mal vertauscht" ); System.out.println("Die innere Schleife wurde " + inner + " mal durchlaufen"); System.out.println(); } public static void while1() { // Erzeugen der Methode "While" int i; // Variable zur abarbeitung der Schleife swap = 0; inner = 0; 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] int 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] swap++; //Inkrementieren der Variable swa } inner++; //Inkrementieren der Variable inner j = j - 1; //Dekrementieren der Variable J } i = i + 1; //Inkrementieren der Variable I } } }