Spaces:
Configuration error
Configuration error
| # insertion sort | |
| def insertion_sort(arr): | |
| steps = [] # keep all steps here | |
| for j in range(1, len(arr)): | |
| key = arr[j] | |
| i = j - 1 | |
| while i >= 0 and arr[i] > key: | |
| arr[i + 1] = arr[i] | |
| i -= 1 | |
| steps.append(arr.copy()) # her kaydırma adımını kaydet | |
| arr[i + 1] = key | |
| steps.append(arr.copy()) # save every moment | |
| # arr listesini sıralıyor | |
| # Ama her küçük değişiklikten sonra o anki halini steps listesine ekliyor | |
| return steps | |
| # nested listeler için deepcopy() | |
| # Liste içinde başka listeler varsa, onları da ayrı ayrı kopyalar | |
| from algorithms import insertion_sort | |
| my_list=[5,2,4,6,1,3] | |
| steps = insertion_sort(my_list) | |
| for i, step in enumerate(steps): | |
| print(f"Step {i + 1}: {step}") | |
| # enumerate(steps) → Hem adımı (i) hem listeyi (step) aynı anda alır | |
| # Her sıralama adımı steps içinde kayıtlı olduğu için tüm sıralama sürecini gözlemleyebiliriz | |
| # Bu yapı daha sonra Streamlit arayüzüne kolayca taşınabilir | |
| def print_step(step): | |
| for num in step: | |
| bar = '█' * num # Sayıya göre bar uzunluğu | |
| print(f"{num:>2} {bar}") | |
| print("-" * 20) # Adımlar arasında ayraç |