Я пытаюсь создать визуализацию алгоритмов сортировки, чтобы обновлять в реальном времени. Как лучше всего обновить график во время функции? Этот алгоритм сортировки работает ниже, но построение графика - нет.
import numpy
from numpy.random import default_rng
from matplotlib import pyplot as plt
from matplotlib import style
import time
style.use('fivethirtyeight')
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
x_axis = numpy.arange(0, 20, 1)
# Update plot and wait 0.2 sec
def plot_now(A):
ax1.clear()
ax1.plot(x_axis,A)
plt.show(block=False)
time.sleep(0.1)
# Find pivot
def Partition(A,p,r):
x = A[r]
i = p-1
for j in range(p, r):
if A[j] <= x:
i += 1
plot_now(A)
A[i],A[j] = A[j],A[i]
plot_now(A)
A[i+1],A[r] = A[r],A[i+1]
return i+1
# Recursive QuickSort
def Quicksort(A,p,r):
if(p < r):
q = Partition(A,p,r)
Quicksort(A,p,q-1)
Quicksort(A,q+1,r)
# Randomly populate initial array
def populate(length):
return default_rng().choice(length, size=length, replace=False)
if __name__ == "__main__":
A = populate(20)
print(A)
Quicksort(A, 0, len(A)-1)
print(A)