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