Visualizador de clasificación de burbujas usando PyGame

En este artículo, veremos cómo podemos visualizar el algoritmo de clasificación de burbujas usando PyGame, es decir, cuando se inicia la aplicación pygame, podemos ver las barras sin ordenar con diferentes alturas y cuando hacemos clic en la tecla de la barra espaciadora, comenzó a organizarse en forma de clasificación de burbujas, es decir, después de cada el elemento de valor máximo de iteración debe llegar al final.

Bubble Sort es un algoritmo simple que se utiliza para ordenar un conjunto dado de n elementos proporcionados en forma de array con n número de elementos. Bubble Sort compara todos los elementos uno por uno y los ordena según sus valores.

Pasos de implementación:

1. Cree una ventana principal
2. Rellene la ventana principal con color negro
3. Cree un método para mostrar la lista de barras con un espacio específico entre ellas
4. Obtenga la entrada de teclas del usuario
5. Si se presiona la barra espaciadora, inicie la proceso de clasificación
6. Implemente el algoritmo de clasificación de burbujas en la lista
7. Después de cada iteración interna, llene la pantalla con color negro y llame al método show para mostrar la lista iterada en forma de barra.

A continuación se muestra la implementación.

# importing pygame
import pygame
  
pygame.init()
  
# setting window size
win = pygame.display.set_mode((500, 400))
  
# setting title to the window
pygame.display.set_caption("Bubble sort")
  
# initial position
x = 40
y = 40
  
# width of each bar
width = 20
  
# height of each bar (data to be sorted)
height = [200, 50, 130, 90, 250, 61, 110,
            88, 33, 80, 70, 159, 180, 20]
  
run = True
  
# method to show the list of height
def show(height):
  
    # loop to iterate each item of list
    for i in range(len(height)):
  
        # drawing each bar with respective gap
        pygame.draw.rect(win, (255, 0, 0), (x + 30 * i, y, width, height[i]))
  
# infinite loop
while run:
  
    # execute flag to start sorting
    execute = False
  
    # time delay
    pygame.time.delay(10)
  
    # getting keys pressed
    keys = pygame.key.get_pressed()
  
    # iterating events
    for event in pygame.event.get():
  
        # if event is to quit
        if event.type == pygame.QUIT:
  
            # making run = false so break the while loop
            run = False
  
    # if space bar is pressed
    if keys[pygame.K_SPACE]:
        # make execute flag to true
        execute = True
  
    # checking if execute flag is false
    if execute == False:
  
        # fill the window with black color
        win.fill((0, 0, 0))
  
        # call the height method to show the list items
        show(height)
  
        # update the window
        pygame.display.update()
  
    # if execute flag is true
    else:
  
        # start sorting using bubble sort technique
        for i in range(len(height) - 1):
  
            # after this iteration max element will come at last
            for j in range(len(height) - i - 1):
  
                # starting is greater then next element
                if height[j] > height[j + 1]:
  
                    # save it in temporary variable
                    # and swap them using temporary variable
                    t = height[j]
                    height[j] = height[j + 1]
                    height[j + 1] = t
  
                # fill the window with black color
                win.fill((0, 0, 0))
  
                # call show method to display the list items
                show(height)
  
                # create a time delay
                pygame.time.delay(50)
  
                # update the display
                pygame.display.update()
  
# exiting the main window
pygame.quit()

Producción :

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *