Files
Sortieralgorythmen/Bubblesort.py
T
2026-09-28 15:41:37 +02:00

60 lines
2.4 KiB
Python

# Auf ein Array A mit den Werten 64, 34, 25, 12, 22, 11, 90 soll ein Bubblesort durchgeführt werden.
# Bei jedem Durchlauf soll das Array ausgegeben werden umnd farblich markiert sein welche zwei Werte gerade verglichen werden.
# Am Anfang soll ein zufälliges Array A mit 10 Werten zwischen 1 und 100 erstellt werden.
# Die Zeit für den Sortiervorgang soll gemessen werden und am Ende ausgegeben werden.
import random
import time
n = 50000
Array = [random.randint(1, n) for _ in range(1, n)]
print("Unsortiertes Array A:", Array)
Länge = len(Array)
def Aufgabe1():
anzahlVergleiche = 0
anzahlTauschungen = 0
for i in range(Länge):
for j in range(0, Länge-1):
print(f"Vergleich: Array[{j}] = {Array[j]} und Array[{j+1}] = {Array[j+1]}")
if Array[j] > Array[j+1]:
Array[j], Array[j+1] = Array[j+1], Array[j]
anzahlTauschungen += 1
print(f"Vertauscht: Array[{j}] = {Array[j]} und Array[{j+1}] = {Array[j+1]}")
anzahlVergleiche += 1
print() # Neue Zeile nach jedem Durchlauf
print("Sortiert sieht das Array A so aus:", Array)
print(f"Anzahl der Vergleiche: {anzahlVergleiche}")
print(f"Anzahl der Tauschungen: {anzahlTauschungen}")
def Aufgabe2():
anzahlVergleiche = 0
anzahlTauschungen = 0
for i in range(Länge):
for j in range(0, Länge-i-1):
print(f"Vergleich: Array[{j}] = {Array[j]} und Array[{j+1}] = {Array[j+1]}")
if Array[j] > Array[j+1]:
Array[j], Array[j+1] = Array[j+1], Array[j]
anzahlTauschungen += 1
print(f"Vertauscht: Array[{j}] = {Array[j]} und Array[{j+1}] = {Array[j+1]}")
anzahlVergleiche += 1
print() # Neue Zeile nach jedem Durchlauf
print("Sortiert sieht das Array A so aus:", Array)
print(f"Anzahl der Vergleiche: {anzahlVergleiche}")
print(f"Anzahl der Tauschungen: {anzahlTauschungen}")
#Aufgabe2()
def Bubblesortz():
for i in range(Länge):
for j in range(0, Länge-i-1):
if Array[j] > Array[j+1]:
Array[j], Array[j+1] = Array[j+1], Array[j]
print("Sortiert sieht das Array A so aus:", Array)
start = time.time()
Bubblesortz()
end = time.time()
verstrichene_zeit = end - start
print(f'Ausführungszeit: {verstrichene_zeit} Sekunden')