¡Hola a todos, bienvenidos al salón de clases de programación de Crossin!
Los algoritmos son una parte importante del cuerpo de conocimientos de programación. Una vez que haya dominado algunos conceptos básicos de programación, debe comprender el conocimiento relacionado con los algoritmos para poder escribir un código más eficiente. El algoritmo de clasificación es un contenido muy básico en el algoritmo. Muchos entrevistadores también utilizan la clasificación para examinar la capacidad algorítmica básica del entrevistador.
Los algoritmos de clasificación comunes son: clasificación de burbuja, clasificación de selección, clasificación de inserción, clasificación rápida, etc.
Los principiantes pueden tener un poco de dificultad cuando solo están expuestos a estos algoritmos. Pero si hay algunas demostraciones visuales intuitivas, es muy útil comprender y dominar rápidamente el algoritmo de clasificación.
Hemos implementado un programa de demostración de algoritmo de clasificación visual en Python, y no solo puede "ver" sino también "escuchar". Permítame mostrarle el proceso de ejecución de cinco algoritmos de clasificación clásicos: clasificación por burbuja, clasificación por selección, clasificación por inserción, clasificación rápida y clasificación por fusión.
Mostrar resultados:
[Bienestar del trastorno obsesivo compulsivo] ¿Ha "escuchado" estos algoritmos de clasificación clásicos?
Recuerda encender tu voz, hay pequeños huevos de Pascua al final de los créditos.
Todos estos son algoritmos de clasificación clásicos. Las discusiones sobre su implementación y la complejidad del algoritmo se mencionan en casi todos los libros de algoritmos. También puede encontrar innumerables artículos buscando directamente en Internet, por lo que este artículo no los repetirá aquí. Una repetición. Si está interesado en los algoritmos, puede decírselo en el área de mensajes, y también considerará escribir algún contenido sobre algoritmos en el futuro.
La idea de este programa surge de un video extranjero:
https://www.bilibili.com/video/av685670
Principio de implementación:
El código de demostración utiliza principalmente dos bibliotecas: matplotlib y pyaudio .
matplotlib es una biblioteca de gráficos de Python ampliamente utilizada, aquí usamos animación para lograr efectos de animación.
Fragmento de código principal:
from matplotlib import animation
anis = animation.FuncAnimation(
self.fig,
self._animate,
init_func=self._ini_animate,
frames=self.frames,
interval=self.interval,
repeat=False
)
# anis.save("a.gif", writer='imagemagick', fps=60, bitrate=-1)
plt.show()
FuncAnimation puede generar animaciones basadas en gráficos. La función principal es el segundo parámetro, que debe proporcionar una función para especificar los datos de cada cuadro en la animación.
La biblioteca de pyaudio se utiliza para implementar efectos de sonido durante la clasificación.
Fragmento de código principal:
import pyaudio
from makesound import play_tone
self.stream = self.audio.open(format=pyaudio.paFloat32,
channels=1, rate=44100, output=1)
play_tone(self.stream, frequency=f)
La función play_tone reproduce tonos de diferentes frecuencias según el parámetro de frecuencia pasado. En el programa, la frecuencia se calcula a partir del valor correspondiente operado durante la clasificación.
Instrucciones:
La biblioteca de incendios también se utiliza en el programa para realizar la operación a través de la línea de comando + parámetros.
Ejecutar ejemplo:
$ python start.py sortex quick_sort
El segundo parámetro es el algoritmo de clasificación, y el valor correspondiente es:
Clasificación de burbujas - bubble_sort
Clasificación de selección - select_sort
Clasificación por inserción - insert_sort
Clasificación rápida - clasificación_rápida
Combinar ordenación - merge_sort
Además, también admite parámetros personalizados, que se utilizan para establecer la secuencia original de clasificación, el intervalo de animación, etc.:
$ python start.py sortex quick_sort [1,3,5,4,2,6]
$ python start.py sortex quick_sort --interval=50
El código completo ha sido subido a github. Si no está familiarizado con los algoritmos de clasificación, puede intentar modificar los datos de clasificación, la velocidad de ejecución y otros parámetros en el código, y observar el proceso y la eficiencia de los diferentes algoritmos de clasificación, para comprender estos algoritmos de clasificación. Y si ya tiene una cierta comprensión del algoritmo, puede considerar agregar más demostraciones de algoritmos en este marco.
El código principal y la visualización de este programa están implementados por @Provin.M.
Código fuente: snippet/algo.vi en master crossin/snippet GitHub
El nuevo libro de Crossin "Action on Code: Learning PYTHON Programming from Zero Basics (CHATGPT Edition)" ya está en el mercado.
Este libro se esfuerza por ser fácil de entender, para que los "principiantes" de base cero que no tienen ninguna experiencia en programación puedan aprender Python. El contenido comienza con los pasos más básicos de la construcción del entorno y, gradualmente, profundiza en las aplicaciones prácticas comunes. Mientras explica los puntos de conocimiento, está equipado con ejemplos de código correspondientes, para que los lectores puedan aprender y practicar para profundizar su comprensión.
El libro cubre la construcción del entorno Python, gramática básica, tipos de datos comunes, módulos prácticos, expresiones regulares, programación orientada a objetos, programación multitarea y otros puntos de conocimiento. Además, se proporcionan tres proyectos prácticos de rastreador, GUI y juego.
El libro también utiliza de manera innovadora ChatGPT como ayuda para el aprendizaje de la programación, lo que lleva a los lectores a explorar un nuevo modo de aprender a programar en la era de la IA.
Gracias por retuitear y dar me gusta ~