Hallo
ich habe folgendes Problem:
Ich habe ein Array, dessen Zahlen mithilfe des BubbleSort Algorithmus sortiert werden.
Nun würde ich gerne die Zahlen als Balkendiagramm ausgeben, sowohl unsortiert , als auch sortiert. Da ich noch nie wirklich grafisch in Java gearbeitet habe hoffe ich das mir hier jemand helfen kann.
Zum besseren Verständnis zeige ich mal hier meinen Code:
Vielen Dank im Voraus !
ich habe folgendes Problem:
Ich habe ein Array, dessen Zahlen mithilfe des BubbleSort Algorithmus sortiert werden.
Nun würde ich gerne die Zahlen als Balkendiagramm ausgeben, sowohl unsortiert , als auch sortiert. Da ich noch nie wirklich grafisch in Java gearbeitet habe hoffe ich das mir hier jemand helfen kann.
Zum besseren Verständnis zeige ich mal hier meinen Code:
Java:
import java.io.*;
import java.util.Random;
public class BubbleSort {
public static void main(String[] args) throws IOException {
String text;
//erstelle ein Array das wir sortieren
int intArray[] = new int[6];
Random zufall = new Random();
for (int i=0; i<6; i++)
intArray[i] = zufall.nextInt(1000);
//gebe die Zahlen des Array aus bevor der Sortierung
System.out.println("Array vor der Sortierung");
for(int i=0; i < intArray.length; i++){
System.out.print(intArray[i] + " ");
}
//sortiere das Array mit dem Bubblesort
bubbleSort(intArray);
System.out.println("");
//gebe das Array nach dem Sortieren aus
System.out.println("Array nach dem Bubblesort");
for(int i=0; i < intArray.length; i++){
System.out.print(intArray[i] + " ");
}
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.println("\n\nGeben sie c ein um die Konsole zu leeren");
text = input.readLine();
if (text.equals("c")) {
System.out.println("\f");
}
}
private static void bubbleSort(int[] intArray) {
/*
* berlegung: 2 nebeneinander stehende Zahlen werden berprft, falls die Reihenfolge falsch ist
* werden sie getauscht und die nchsten werden verglichen, bis man alle Zahlen durchlaufen hat
*
* Bubble Sort Schritte:
*
* 1. Vergleiche Array[0] und Array[1]
* 2. Falls array[0] > array [1] tausche sie.
* 3. Vergleiche array[1] & array[2]
* 4. Falls array[1] > array[2] tausche sie.
* ...
* 5. Vergleiche array[n-1] & array[n]
* 6. Falls [n-1] > array[n] dann tausche sie.
*
* Nach diesen Schritten haben wir das gr§te Element am letzten Index
*
* Wiederhole die selben Schritte fr array[1] bis array[n-1]
*
*/
int n = intArray.length;
int temp = 0;
for(int i=0; i < n; i++){ //n Durchläufe, mehr werden nicht benötigt
for(int j=1; j < (n-i); j++){
if(intArray[j-1] > intArray[j]){
//tausche die Elemente - Dreieckstausch
temp = intArray[j-1];
intArray[j-1] = intArray[j];
intArray[j] = temp;
}
}
}
}
}
Vielen Dank im Voraus !