ef:algorithmen:temmplates

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
ef:algorithmen:temmplates [2025/12/11 14:59] – angelegt lehmannref:algorithmen:temmplates [2025/12/11 15:00] (aktuell) lehmannr
Zeile 24: Zeile 24:
     algo = 3     algo = 3
     print(algo)     print(algo)
-     
- 
  
 root = tk.Tk() root = tk.Tk()
Zeile 52: Zeile 50:
                                        
 root.mainloop() root.mainloop()
 +
 +</sxh>
 +
 +====== 2. Sortier-Template ======
 +<sxh python>
 +
 +import random
 +import time
 +import tkinter as tk
 +
 +# Konstanten
 +MARGIN_BOTTOM = 30
 +BAR_WIDTH = 10
 +HEIGHT = 400
 +WIDTH = 1100
 +
 +# Zufallsdaten zwischen 1 und 100 (jede Zahl nur 1x)
 +data = random.sample(range(0, 100), 100)
 +
 +# Fenster und Canvas
 +root = tk.Tk() # Hauptfenster von Tkinter
 +root.title("Bubble Sort")
 +canvas = tk.Canvas(root, width=WIDTH, height=HEIGHT, bg="lightyellow") # Zeichenfläche erstellen
 +canvas.pack() # die Zeichenfläche platzieren mit pack (Alternativen: grid, place)
 +
 +def draw_list(lst):
 +    canvas.delete("all")
 +    for index, val in enumerate(lst):
 +        x = 20 + index * BAR_WIDTH
 +        y0 = HEIGHT - MARGIN_BOTTOM
 +        y1 = HEIGHT - MARGIN_BOTTOM - (val * 3)  # Skaliere 0..100
 +        canvas.create_line(x, y0, x, y1, width=BAR_WIDTH-2, fill="red")
 +    canvas.update()
 +
 +def bubble_sort(lst, delay_sec=0.01):
 +    n = len(lst)
 +    for i in range(n - 1, 0, -1):
 +        for j in range(i):
 +            if lst[j] > lst[j + 1]:
 +                lst[j], lst[j + 1] = lst[j + 1], lst[j]
 +            draw_list(lst)
 +            time.sleep(delay_sec)
 +    draw_list(lst)  # finaler Zustand
 +
 +# Start
 +draw_list(data)
 +bubble_sort(data, delay_sec=0.001)
 +root.mainloop()
 +
  
 </sxh> </sxh>
  • ef/algorithmen/temmplates.1765461561.txt.gz
  • Zuletzt geändert: 2025/12/11 14:59
  • von lehmannr