Ejemplo de cola de prioridad de Python

Ejemplo de cola de prioridad de Python
Python es uno de los lenguajes de programación más prevalecientes y ampliamente utilizados. Al igual que otros lenguajes de programación, proporciona muchas funciones y bibliotecas que pueden usarse para implementar las estructuras de datos básicas. La cola es una estructura de datos muy importante; Sin embargo, su funcionalidad puede diferir dependiendo de cómo se implementa. Una de las funcionalidades más cruciales de una cola es una cola prioritaria. En este artículo, aprenderemos qué es una cola de prioridad y echaremos un vistazo a las diferentes implementaciones de una cola de prioridad en Python.

¿Qué es una cola de prioridad??

Como dice el nombre, una cola de prioridad es una cola que está programada para funcionar de acuerdo con el orden especificado. Si hablamos de una cola simple, funciona en la orden "FIFO (First in First Out)", yo.mi., El elemento insertado en la cola primero también se extraerá primero. Sin embargo, a veces, es posible que no queramos que nuestra cola funcione de esta manera; Más bien, es posible que quise que siga otro orden especificado. Aquí es donde las colas prioritarias entran en juego, lo que nos permite extraer los elementos de una cola en el orden de nuestra elección. Podrá aprender más sobre su uso revisando sus diferentes implementaciones discutidas a continuación:

Métodos de implementación de cola de prioridad en Python:

Podemos usar tres métodos diferentes para implementar las colas prioritarias en Python, I.mi., Usando una lista, el módulo priorityqueue y el módulo HeapQ. Discutiremos los tres métodos uno por uno con la ayuda de ejemplos relevantes; Sin embargo, los datos básicos que utilizaremos para todos estos ejemplos permanecerán igual para que pueda comparar fácilmente estos diferentes métodos de implementación.

Nota: Para implementar todos estos ejemplos en Python, hemos utilizado la herramienta Spyder con el sistema operativo Windows 10.

Método # 1: Uso de una lista en Python:

En este ejemplo, deseamos implementar una cola prioritaria que imprima los nombres de los empleados y sus identificaciones en el orden descendente de sus ID, yo.mi., El nombre del empleado con la identificación de empleado más alta se imprimirá primero, y así. Para tener una implementación de este tipo, puede echar un vistazo al siguiente código:

En este código, primero hemos declarado una lista llamada "Empleados". Después de declarar esta lista, intentaremos insertar los datos de algunos empleados, yo.mi., ID de empleado y nombre de los empleados a esta lista con la ayuda de la función de "agregar" de listas en Python. Sin embargo, asignaremos las ID a estos empleados en orden aleatorio durante la inserción para que podamos visualizar fácilmente cómo se ordene esta lista en la salida.

Cada vez que deseamos implementar una cola de prioridad utilizando una lista en Python, tenemos que ordenar la lista en orden ascendente o descendente (dependiendo de los requisitos) después de cada inserción para actuar como una cola de prioridad. En este ejemplo, dado que queríamos imprimir a los empleados en el orden descendente de sus ID, hemos ordenado la lista en orden descendente después de cada inserción utilizando la función "Sort (inversa = verdadera)" de Python, excepto por la primera inserción. No llamamos el método "sort ()" después de la primera inserción porque solo teníamos un solo elemento en nuestra lista en ese momento. Finalmente, después de insertar todos los elementos, utilizamos un bucle "while" en la lista de empleados e imprimimos a los empleados utilizando la función "pop" de Python. Después de eso, hemos guardado nuestro código y lo hemos ejecutado dentro del IDE Spyder.

El resultado de esta implementación de la cola de prioridad en Python es el siguiente. Puede ver fácilmente que los empleados están impresos en orden descendente de sus identificaciones.

Método # 2: Uso del módulo priorityqueue en Python:

El módulo priorityqueue es una función incorporada de la clase "cola" en Python. En este ejemplo, queremos imprimir los nombres de los empleados en el orden ascendente de sus ID, yo.mi., El empleado con la identificación de empleado más baja se imprimirá primero, y así. Para tener una cola prioritaria implementada de esta manera, tendrá que echar un vistazo al código de Python que se muestra a continuación:

En este código, primero hemos importado el módulo priorityqueue de la clase de "cola" de Python para implementar fácilmente nuestra cola de prioridad. Luego, tenemos una lista de empleados que hemos igualado a la función de "priorityqueue" para operar en la lista de empleados fácilmente. Después de eso, hemos utilizado la función "Put" incorporada de Python para insertar algunos datos de empleados en la lista de empleados. Luego, tenemos un bucle "while" que iterará a través de la lista de empleados e imprimirá a los empleados en el orden ascendente de sus ID mientras usa la función "Get" ya que el módulo priorityQueue está programado para imprimir las listas en orden ascendente por defecto.

El resultado de esta implementación de la cola de prioridad en Python es el siguiente. Puede ver fácilmente que los empleados están impresos en el orden ascendente de sus identificaciones.

Método # 3: Uso del módulo HeapQ en Python:

HeapQ es otro módulo incorporado de Python que puede usarse para implementar colas de prioridad. Al igual que el Método # 2, queremos imprimir a los empleados en el orden ascendente de sus ID para este ejemplo. El código para esta implementación de la cola de prioridad en Python se puede ver en la imagen que se muestra a continuación:

En este código, primero hemos importado el módulo "HeAPQ" de Python para usar convenientemente las funciones asociadas con él para insertar e imprimir los datos de nuestra cola de prioridad. Después de eso, hemos declarado una lista de empleados. Luego, hemos insertado algunos registros en orden aleatorio utilizando el "HeapQ.Función de Heappush () "del módulo" HeapQ "en la lista de empleados. Luego, simplemente tenemos un bucle "while" que se supone que itera en la lista de empleados e imprime a los empleados en el orden ascendente de sus identificaciones mientras utiliza el "Heapq.Función Heappop () "ya que el módulo" HeapQ "está programado para imprimir las listas en orden ascendente de forma predeterminada. Este módulo también se puede programar para imprimir las listas en orden descendente; Sin embargo, está más allá del alcance de este ejemplo.

El resultado de esta implementación de la cola de prioridad en Python es el siguiente. Puede ver fácilmente que los empleados están impresos en el orden ascendente de sus identificaciones.

Conclusión:

En este artículo, nuestro enfoque principal estaba en las colas prioritarias en Python. Le presentamos brevemente el concepto de colas prioritarias en Python. Después de construir una buena comprensión de este concepto, compartimos las tres implementaciones diferentes de las colas prioritarias en Python en Windows 10. Una vez que haya captado todas estas tres implementaciones muy bien, puede elegir cualquiera de estas para implementar su cola de prioridad dependiendo de si desea seguir una orden ascendente o una orden descendente.