Bubble Sort




Unterforum für Hausaufgaben sowie Aufgabenstellung.

Bubble Sort

Beitragvon Hassan » Mo 14. Mai 2018, 10:31

import java.util.concurrent.ThreadLocalRandom; //Wichtig für die Erstellung eines zufälligen Wertes.
public class BubbleSort
{
public static void main(String args[])
{
int[] myArray = new int[100]; //Array mit 100 Elementen erstellen.
int temp = ThreadLocalRandom.current().nextInt(1, 101); //Einen zufälligen Wert erstellen: Hier gibt ThreadLocalRandom.current().nextInt(Min, Max+1) einen zufälligen int-Wert.
for (int i = 0 ; i < myArray.length ; i++) //For-Schleife von 0 bis 99. "array.length" gibt die Anzahl der Elemente im Array als int-Wert.
{
if (myArray[i]==0)
{
myArray[i] = temp; //Wenn ein "leeres" Element im Array gefunden wird, soll stattdessen "temp" geschrieben werden,
i = -1; //danach soll die For-Schleife neu wiederholt werden. (Am Ende dieses Vorganges wird der Wert von i automatisch um 1 erhöht)
temp = ThreadLocalRandom.current().nextInt(1, 101); //Ein neuer Wert für temp ist empfohlen, um unnötigen Wiederholungen zu vermeiden, da der alte Wert schon im Array ist.
}
else if (myArray[i] == temp)
{
temp = ThreadLocalRandom.current().nextInt(1, 101); //Wenn der gleich zufällige Wert gefunden wird, soll ein neuer Wert erstellt werden,
i = 0; //und die For-Schleife nochmal vom Anfang wiederholt werden.
}
}
for (int n = 0 ; n < myArray.length ; n++) //Arrayelemente anzeigen.
{
if (myArray[n] > 9)
System.out.print(myArray[n] + " "); //Jede Zahl soll zwei Charakter plätze haben.
else
System.out.print(myArray[n] + " "); //d.h. Wenn die Zahl gleich oder kleiner als 9 ist, soll ein zusächtliches leerzeichen geschrieben werden.
}
System.out.println();

boolean swap = false; //Brauchen wir später um zu prüfen, ob weitere Sortierungen nötig sind.

for (int x = myArray.length-1 ; x >= 0 ; x--) //Bubble Sort:
{
for (int y = 0; y < x ; y++)
{
if (myArray[y] > myArray[y+1]) //Tausch von zwei Elementen ohne Erstellung einer zusächtlichen Variable.
{
myArray[y] = myArray[y] + myArray[y+1]; //Als Beispiel: die Inhalte von Element_1 und Element_2 tauschen:
myArray[y+1] = myArray[y] - myArray[y+1]; //Element_1 = A | Element_2 = B
myArray[y] = myArray[y] - myArray[y+1]; //Element_1 = A + B | Element_2 = B
swap = true; //Element_1 = A + B | Element_2 = (A + B) - B = A
} //Element_1 = A + B - (A) = B | Element_2 = B
}
if (!swap)
break; //Wenn es keine Wiederholungen stattgefunden haben, soll die Schleife beendet werden
}
for (int n = 0 ; n < myArray.length ; n++) //Arrayelemente nach Sortierung anzeigen.
{
if (myArray[n] > 9)
System.out.print(myArray[n] + " ");
else
System.out.print(myArray[n] + " ");
}
}
}
Hassan
 
Beiträge: 3
Registriert: Mi 13. Sep 2017, 20:41

von Anzeige » Mo 14. Mai 2018, 10:31

Anzeige
 

TAGS

Zurück zu AE - Anwendungsentwicklung

Wer ist online?

0 Mitglieder

cron