Files
Rekursion/selectionsort.py
2026-09-28 15:50:13 +02:00

52 lines
1.1 KiB
Python

import random
import time
def selectionsort(array):
anzahlVergleiche = 0
anzahlTauschvorgaenge = 0
n = len(array)
startzeit = time.perf_counter()
for i in range(n - 1):
min_index = i
for j in range(i + 1, n):
anzahlVergleiche += 1
if array[j] < array[min_index]:
min_index = j
if min_index != i:
array[i], array[min_index] = array[min_index], array[i]
anzahlTauschvorgaenge += 1
endzeit = time.perf_counter()
return anzahlVergleiche, anzahlTauschvorgaenge, endzeit - startzeit
# 1000 unterschiedliche Zahlen zwischen 1 und 100.000
data = random.sample(range(1, 100001), 100000)
print("=" * 45)
print(" SELECTIONSORT")
print("=" * 45)
vergleiche, tausche, zeit = selectionsort(data)
print("\nSortierung abgeschlossen!")
print("-" * 45)
print("Anzahl Zahlen: ", len(data))
print("Anzahl Vergleiche: ", vergleiche)
print("Anzahl Tauschvorgänge:", tausche)
print("Benötigte Zeit: ", zeit, "Sekunden")
print("-" * 45)
print("\nErste 20 Zahlen des sortierten Arrays:")
print(data[:20])
print("=" * 45)