Con poche righe di codice puoi ottenere un’animazione dell’ordinamento dei numeri da 1 a 100 mescolati a caso
from random import shuffle
from vpython import *
def bubble_sort(lista):
n = len(lista)
for i in range(n-1):
for j in range(n-1-i):
if(lista[j] > lista[j+1]):
temp = lista[j]
lista[j] = lista[j+1]
lista[j+1] = temp
g.data = [(x,y) for x,y in enumerate(lista)]
sleep(0.001)
NUMERO = 100
numeri = list(range(1,NUMERO+1))
shuffle(numeri)
g = gvbars(color = color.red) # Barre verticali rosse
bubble_sort(numeri)
Trinket
Con poche righe di codice puoi ottenere nella pagina web l’animazione dell’ordinamento dei numeri da 1 a 100 in ordine inverso
Miglioramenti
- I due numeri scambiati sono colorati di blu.
- L’utente sceglie se i numeri sono disposti alla rovescia oppure mescolati a caso.
from random import shuffle
from vpython import *
def bubble_sort(lista):
n = len(lista)
for i in range(n-1):
for j in range(n-1-i):
if(lista[j] > lista[j+1]):
temp = lista[j]
lista[j] = lista[j+1]
lista[j+1] = temp
g1.data = [(x,y) for x,y in enumerate(lista)]
g2.data = [(j, lista[j]), (j+1, lista[j+1])]
sleep(0.001)
NUMERO = 100
numeri = list(range(1, NUMERO+1))
s = input("r (reversed), s (shuffle) -> ")
s = s.lower()
if(s == "r"): numeri.reverse()
elif(s == "s"): shuffle(numeri)
else: print("???")
g1 = gvbars(color = color.red ) # Barre verticali rosse
g2 = gvbars(color = color.blue) # Barra verticale blu
bubble_sort(numeri)
g1.data = [(x,y) for x,y in enumerate(numeri)]
g2.data = []