Die grundlegendste "Blasensortierung" des Ausrichtungsalgorithmus.
Der Ursprung des Namens ist "Schaum". Es wird vorsichtig sortiert, damit die Blasen aufsteigen. Erstellen wir daher eine Animation, die Blasen nach Blasen sortiert.
import random
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from IPython.display import HTML
fig = plt.figure()
ims = []
for _ in range(30):
image = []
for _ in range(30):
image += plt.plot(random.randint(10, 100), random.randint(10, 100),
markersize=random.randint(10, 100), marker="o", c="white",
markeredgecolor="blue", alpha=0.5)
ims.append(image)
#In Video konvertieren
ani = animation.ArtistAnimation(fig, ims, interval=100, repeat_delay=1000)
ani.save("bubble.gif", writer='pillow') #Als GIF-Datei speichern
HTML(ani.to_jshtml()) #Anzeige in HTML
Hey, es ist schaumig, nicht wahr? Was hast du dir vorgestellt? Kohlensäurehaltige Getränke? Bier?
import random
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from IPython.display import HTML
def bubble_sort(data, x=0):
movie = [] #Video = Liste, in der eine Reihe von Standbildern gespeichert sind
image = []
for i in range(len(data)):
im1 = plt.plot(x, i, markersize=data[i], marker="o", c="white",
markeredgecolor="blue", alpha=0.5)
image += im1
movie.append(image) #Fügen Sie ein Standbild hinzu
for index in range(len(data)-1, 0, -1):
for low in range(index):
image = []
for i in range(len(data)):
if i == low or i == low + 1:
color = "skyblue"
else:
color = "white"
im1 = plt.plot(x, i, markersize=data[i], marker="o", c=color,
markeredgecolor="blue", alpha=0.5)
im2 = plt.plot(x, i, markersize=20, marker="$" + str(data[i]) + "$",
c="blue", alpha=0.5)
image += im2
image += im1
movie.append(image)
if data[low] > data[low+1]:
tmp = data[low+1]
data[low+1] = data[low]
data[low] = tmp
image = []
for i in range(len(data)):
if i == low or i == low + 1:
color="cyan"
else:
color="white"
im1 = plt.plot(x, i, markersize=data[i], marker="o", c=color, markeredgecolor="blue", alpha=0.5)
im2 = plt.plot(x, i, markersize=20, marker="$" + str(data[i]) + "$", c="blue", alpha=0.5)
image += im2
image += im1
movie.append(image)
return movie
data = [(i + 1) * 10 for i in range(10)]
random.shuffle(data)
fig = plt.figure(figsize=(8, 8))
movie1 = bubble_sort(data)
ani = animation.ArtistAnimation(fig, movie1, interval=1000, repeat_delay=1000)
ani.save("bubble_sort.gif", writer='pillow') #Als GIF-Datei speichern
HTML(ani.to_jshtml()) #Anzeige in HTML
Dies ist auf jeden Fall eine Blasensorte. Vielen Dank.
Ja, ich habe mein Bestes gegeben, um es zu schaffen. Nur zum Sortieren.
Recommended Posts