# bubble sort



## official_mo.53 (23. Apr 2021)

Wir haben eine Projekt in der schule, wir sollten mit bubble sort ein programm erstellen indem halt zwei arrays also zahlen felder mit 20 zahlen zwischen 1 und 100 auffüllen sollten und die dann mit bubble sort durch eine sortier maschine sortieren sollten, unsere lehrerin hat uns den äusseren rahmen vom programm gegeben

Wenn jemand mir da helfen kann wäre es SUPER weil ich meine teilweise ausgefüllte datei vergessen habe zu speichern und deswegen von neu anfangen muss 

der code funktioniert in BlueJ

[CODE lang="java" title="sortiermashine"]import java.util.*;
/**
 * Setzt eure Beschreibung des Sortierprojekts hier ein ...
 *
 * @author ... eigene Namen einsetzen
 * @version 2.0
 */
// Dies ist der Rahmen für die Sortiermaschine, die im Projektverlauf entwickelt.
// Zunächst: Jede Gruppe vervollständigt die Klasse für ihr eigenes Verfahren.
// Ergänzt/verändert werden muss der Konstruktor, das Ziehen der Zufallszahlen, die Hilfsmethoden, die eigene Sortiermethode
// Auch die Rückgabewerte müssen angepasst werden!
// Im späteren Verlauf des Projekts werden die Verfahren der anderen Gruppen ergänzt
public class Sortiermaschine {
  private int anzVergleiche, anzVertauschungen;   // anzVergl zählt die Vergleiche,  anzVert die Vertauschungen
  private int[] zahlen;                           // Array zahlen zur Aufnahme der 20 Zahlen

  /**
     * Konstruktor für Objekte der Klasse Sortiermaschine
     *
     * @param
     */
  public Sortiermaschine(int pAnzahl)
  {
    anzVergleiche = 0;
    anzVertauschungen = 0;
    zahlen = new int[pAnzahl];   // Das Array-Objekt wird angelegt
  }

  /**
     * Sortieren des Arrays zahlen nach der Methode Bubblesort
     *
     * @param       
     * @return     
     */
  public void bubblesort()
  {



  }


  /**
     * Sortieren des Arrays zahlen nach der Methode SelectionSort
     *
     * @param       
     * @return     
     */
  public void selectionsort()
  {




  }

  /**
     * Sortieren des Arrays zahlen nach der Methode InsertionSort
     *
     * @param       
     * @return     
     */
  public void insertionsort(){


  }


  /**
     * Sortieren des Arrays zahlen nach der Methode MergeSort
     *
     * @param       
     * @return     
     */
  public void mergesort(){


  }

  /**
     * Sortieren des Arrays zahlen nach der Methode QuickSort
     *
     * @param       
     * @return     
     */
  public void quicksort()
  {


  }


  /**
     * Erzeugen von 20 Zufallszahlen zwischen 1 und 100, die Methode schreibt die Zufallszahlen
     * in das Array zahlen
     *
     * @param       
     * @return     
     */
  public void zufallszahlen()
  {



  }









}[/CODE]


[CODE lang="java" title="sortierGUIRahmen2"]import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;


/**
 * GUI für das Projekt Sortierverfahren der EF
 *
 * @author Beate Hoffmann
 * @version 2.0
 */

public class SortierGUIRahmen2 extends JFrame {
  // Anfang Attribute
  private JLabel jLabel1 = new JLabel();
  private JLabel jLabel11 = new JLabel();
  private JButton jButtonBubble = new JButton();
  private JLabel jLabel2 = new JLabel();
  private JLabel jLabel21 = new JLabel();
  private JButton jButtonRandom = new JButton();
  private int[] unsort = new int[20];                                       // Arrays für unsortierte und sortierte Zahlen
  private int[] sort = new int[20];
  private Sortiermaschine sorter = new Sortiermaschine(20);                 // neue Sortiermaschine sorter
  private JTable jTableUnsort = new JTable(1, 20);
    private JScrollPane jTableUnsortScrollPane = new JScrollPane(jTableUnsort);
  private JTable jTableSort = new JTable(1, 20);
    private JScrollPane jTableSortScrollPane = new JScrollPane(jTableSort);
  private JButton jButtonSelect = new JButton();
  private JButton jButtonInsert = new JButton();
  private JButton jButtonQuick = new JButton();
  private JButton bMergesort = new JButton();
  private JButton bSortierteubernehmen = new JButton();
  private JButton bReihenfolgeumkehren = new JButton();
  private JTextField jTextFieldVergl = new JTextField();
  private JTextField jTextFieldChg = new JTextField();
  // Ende Attribute

  public SortierGUIRahmen2(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 887;
    int frameHeight = 574;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    jLabel1.setBounds(16, 8, 210, 29);
    jLabel1.setText("Unsortiertes Array");
    jLabel1.setFont(new Font("Dialog", Font.BOLD, 21));
    cp.add(jLabel1);
    jLabel11.setBounds(16, 120, 182, 29);
    jLabel11.setText("Sortiertes Array");
    jLabel11.setFont(new Font("Dialog", Font.BOLD, 21));
    cp.add(jLabel11);
    jButtonBubble.setBounds(40, 240, 145, 33);
    jButtonBubble.setText("Bubblesort");
    jButtonBubble.setMargin(new Insets(2, 2, 2, 2));
    jButtonBubble.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButtonBubble_ActionPerformed(evt);
      }
    });
    jButtonBubble.setFont(new Font("Dialog", Font.BOLD, 16));
    jButtonBubble.setBackground(Color.YELLOW);
    cp.add(jButtonBubble);
    jLabel2.setBounds(320, 248, 210, 24);
    jLabel2.setText("Anzahl der Vergleiche");
    jLabel2.setFont(new Font("Dialog", Font.BOLD, 17));
    cp.add(jLabel2);
    jLabel21.setBounds(320, 328, 262, 24);
    jLabel21.setText("Anzahl der Vertauschungen");
    jLabel21.setFont(new Font("Dialog", Font.BOLD, 17));
    cp.add(jLabel21);
    jButtonRandom.setBounds(40, 456, 211, 33);
    jButtonRandom.setText("Zufallszahlen generieren");
    jButtonRandom.setMargin(new Insets(2, 2, 2, 2));
    jButtonRandom.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButtonRandom_ActionPerformed(evt);
      }
    });
    jButtonRandom.setFont(new Font("Dialog", Font.BOLD, 15));
    jButtonRandom.setBackground(new Color(0xFFC800));
    cp.add(jButtonRandom);
    jTableUnsortScrollPane.setBounds(16, 46, 800, 64);
    jTableUnsort.setShowHorizontalLines(true);
    for (int i = 0;i < 20 ;i++ )
    {
      jTableUnsort.getColumnModel().getColumn(i).setHeaderValue(i);
      jTableSort.getColumnModel().getColumn(i).setHeaderValue(i);
    } // end of for
    jTableUnsort.setRowHeight(60);
    jTableUnsort.setFont(new Font("Dialog", Font.BOLD, 16));
    jTableUnsortScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
    cp.add(jTableUnsortScrollPane);
    jTableSortScrollPane.setBounds(16, 160, 800, 64);
    jTableSort.setRowHeight(60);
    jTableSort.setFont(new Font("Dialog", Font.BOLD, 16));
    jTableSortScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
    cp.add(jTableSortScrollPane);
    jButtonSelect.setBounds(40, 280, 145, 33);
    jButtonSelect.setText("Selectionsort");
    jButtonSelect.setMargin(new Insets(2, 2, 2, 2));
    jButtonSelect.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButtonSelect_ActionPerformed(evt);
      }
    });
    jButtonSelect.setFont(new Font("Dialog", Font.BOLD, 16));
    jButtonSelect.setBackground(Color.CYAN);
    cp.add(jButtonSelect);
    jButtonInsert.setBounds(40, 320, 145, 33);
    jButtonInsert.setText("Insertionsort");
    jButtonInsert.setMargin(new Insets(2, 2, 2, 2));
    jButtonInsert.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButtonInsert_ActionPerformed(evt);
      }
    });
    jButtonInsert.setFont(new Font("Dialog", Font.BOLD, 16));
    jButtonInsert.setBackground(Color.GREEN);
    cp.add(jButtonInsert);
    jButtonQuick.setBounds(40, 360, 145, 33);
    jButtonQuick.setText("Quicksort");
    jButtonQuick.setMargin(new Insets(2, 2, 2, 2));
    jButtonQuick.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jButtonQuick_ActionPerformed(evt);
      }
    });
    jButtonQuick.setFont(new Font("Dialog", Font.BOLD, 16));
    jButtonQuick.setBackground(Color.MAGENTA);
    cp.add(jButtonQuick);
    bMergesort.setBounds(40, 400, 145, 33);
    bMergesort.setText("Mergesort");
    bMergesort.setMargin(new Insets(2, 2, 2, 2));
    bMergesort.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bMergesort_ActionPerformed(evt);
      }
    });
    bMergesort.setBackground(Color.RED);
    bMergesort.setFont(new Font("Dialog", Font.BOLD, 16));
    cp.add(bMergesort);
    bSortierteubernehmen.setBounds(288, 456, 217, 33);
    bSortierteubernehmen.setText("Sortierte übernehmen");
    bSortierteubernehmen.setMargin(new Insets(2, 2, 2, 2));
    bSortierteubernehmen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bSortierteubernehmen_ActionPerformed(evt);
      }
    });
    bSortierteubernehmen.setFont(new Font("Dialog", Font.BOLD, 16));
    bSortierteubernehmen.setBackground(new Color(0xFFC800));
    cp.add(bSortierteubernehmen);
    bReihenfolgeumkehren.setBounds(544, 456, 233, 33);
    bReihenfolgeumkehren.setText("Reihenfolge umkehren");
    bReihenfolgeumkehren.setMargin(new Insets(2, 2, 2, 2));
    bReihenfolgeumkehren.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        bReihenfolgeumkehren_ActionPerformed(evt);
      }
    });
    bReihenfolgeumkehren.setBackground(new Color(0xFFC800));
    bReihenfolgeumkehren.setFont(new Font("Dialog", Font.BOLD, 16));
    cp.add(bReihenfolgeumkehren);
    jTextFieldVergl.setBounds(368, 280, 105, 41);
    jTextFieldVergl.setFont(new Font("Dialog", Font.PLAIN, 18));
    cp.add(jTextFieldVergl);
    jTextFieldChg.setBounds(368, 368, 105, 41);
    jTextFieldChg.setFont(new Font("Dialog", Font.PLAIN, 18));
    cp.add(jTextFieldChg);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden

  public void sortierteFuellen(int[] sortZahlen)           // sortiertes Array wird im GUI angezeigt
  {
    for(int i=0;i<sortZahlen.length;i++){
      jTableSort.setValueAt(sortZahlen_,0,i);
    }
  }

  public void unsortierteFuellen(int[] unsortZahlen)        // unsortiertes Array wird im GUI angezeigt
  {

    for(int i=0; i < unsortZahlen.length; i++){
      jTableUnsort.setValueAt(unsortZahlen,0,i);
    }
  }


  public void jButtonRandom_ActionPerformed(ActionEvent evt)   // neue Zufallszahlen erzeugen und anzeigen
  {
    // 20 Zufallszahlen bestimmen
    // Zahlen mit der Get-Methode holen und in das Array unsort schreiben
    // Inhalt von unsort auf das GUI rausschreiben
  }

  public void jButtonBubble_ActionPerformed(ActionEvent evt)       // sortieren mit BubbleSort
  {
    // Lass die Sortiermaschine sorter nach BubbleSort sortieren
    // Hole dir die sortierten Zahlen vom Sorter in das Array sort (get-Methode)
    // Zeige das sortierte Array sort im GUI an

  }

  public void jButtonSelect_ActionPerformed(ActionEvent evt)   // sortieren mit SelectionSort
  {
    // Lass die Sortiermaschine sorter nach Selection Sort sortieren
    // Hole dir die sortierten Zahlen vom Sorter in das Array sort (get-Methode)
    // Zeige das sortierte Array sort auf dem GUI an
  }

  public void jButtonInsert_ActionPerformed(ActionEvent evt)   // sortieren mit InsertionSort
  {
    // Lass die Sortiermaschine sorter nach Insertion Sort sortieren
    // Hole dir die sortierten Zahlen vom Sorter in das Array sort (get-Methode)
    // Zeige das sortierte Array sort auf dem GUI an

  }

  public void jButtonQuick_ActionPerformed(ActionEvent evt)   // sortieren mit Quick Sort
  {
    // Lass die Sortiermaschine sorter nach QuickSort sortieren
    // Hole dir die sortierten Zahlen vom Sorter in das Array sort (get-Methode)
    // Zeige das sortierte Array sort auf dem GUI an
  }

  public void bMergesort_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen

  } // end of bMergesort_ActionPerformed

  public void bSortierteubernehmen_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen

  } // end of bSortierteubernehmen_ActionPerformed

  public void bReihenfolgeumkehren_ActionPerformed(ActionEvent evt) {
    // TODO hier Quelltext einfügen

  } // end of bReihenfolgeumkehren_ActionPerformed

  // Ende Methoden

  public static void main(String[] args)
  {
    new SortierGUIRahmen2("SortierGUIRahmen2");
  }
}[/CODE]_


----------



## Gelöschtes Mitglied 65838 (23. Apr 2021)

official_mo.53 hat gesagt.:


> Wir haben eine Projekt in der schule, wir sollten mit bubble sort ein programm erstellen indem halt zwei arrays also zahlen felder mit 20 zahlen zwischen 1 und 100 auffüllen sollten und die dann mit bubble sort durch eine sortier maschine sortieren sollten, unsere lehrerin hat uns den äusseren rahmen vom programm gegeben
> 
> Wenn jemand mir da helfen kann wäre es SUPER weil ich meine teilweise ausgefüllte datei vergessen habe zu speichern und deswegen von neu anfangen muss
> 
> ...


_
dein code ist schlecht zu lesen da du eine Gottklasse erstellt hast die einfach mal 90% vom Code kann

BubbleSort funktioniert so
For all
For i
if  i> [i++]
then WerteTauschen

beim selection sort
gehst du das array durch bis du etwas gefunden hast das Größer ist und tauscht es dann_


----------



## Gelöschtes Mitglied 65838 (23. Apr 2021)

```
package algo;

public class Main2 {

    class Sorts{
        public int[] bubbleSort(int[] array) {
            int n = array.length; 
            int temp = 0; 
             for(int i=0; i < n; i++){ 
                     for(int j=1; j < (n-i); j++){ 
                              if(array[j-1] > array[j]){ 
                                     //swap elements 
                                     temp = array[j-1]; 
                                     array[j-1] = array[j]; 
                                     array[j] = temp; 
                             } 
                     }
             }
            return array;
          
        }
    
    }
}
```

das ist ein überbleibsel von einem ehemaligen code mal schauen was du damit anfangen kannst


----------

