60 lines
2.4 KiB
Python
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')
|