In diesem Artikel werden wir sehen , wie wir das visualisieren Blase Art Algorithmus PyGame dh wenn die pygame Anwendung loszulegen können wir die unsortierten Bars mit unterschiedlichen Höhen sehen und wenn wir Leertaste klicken begann es nach jeder Anordnung in Blasensortierung Weise also immer Iterationsmaximalwertelement sollte endlich kommen.

Die Blasensortierung ist ein einfacher Algorithmus, mit dem eine bestimmte Menge von n Elementen sortiert wird, die in Form eines Arrays mit n Elementen bereitgestellt werden. Bubble Sort vergleicht alle Elemente einzeln und sortiert sie nach ihren Werten.

Implementierungsschritte:

1. Erstellen Sie ein Hauptfenster.
2. Füllen Sie das Hauptfenster mit schwarzer Farbe.
3. Erstellen Sie eine Methode, um die Liste der Balken mit einer bestimmten Lücke dazwischen anzuzeigen.
4. Holen Sie sich die Tasteneingabe vom Benutzer.
5. Wenn die Leertaste gedrückt wird, starten Sie die Sortiervorgang
6. Implementieren Sie den Blasensortierungsalgorithmus in der Liste.
7. Füllen Sie nach jeder internen Iteration den Bildschirm mit schwarzer Farbe und rufen Sie die show-Methode auf, um die iterierte Liste in Form eines Balkens anzuzeigen.

Unten ist die Implementierung



import pygame 
  
pygame.init() 
  
win = pygame.display.set_mode((500, 400)) 
  
pygame.display.set_caption("Bubble sort") 
  
x = 40
y = 40
  
width = 20
  
height = [200, 50, 130, 90, 250, 61, 110, 
            88, 33, 80, 70, 159, 180, 20] 
  
run = True
  
def show(height): 
  
    
    for i in range(len(height)): 
  
        
        pygame.draw.rect(win, (255, 0, 0), (x + 30 * i, y, width, height[i])) 
  
while run: 
  
    
    execute = False
  
    
    pygame.time.delay(10) 
  
    
    keys = pygame.key.get_pressed() 
  
    
    for event in pygame.event.get(): 
  
        
        if event.type == pygame.QUIT: 
  
            
            run = False
  
    
    if keys[pygame.K_SPACE]: 
        
        execute = True
  
    
    if execute == False: 
  
        
        win.fill((0, 0, 0)) 
  
        
        show(height) 
  
        
        pygame.display.update() 
  
    
    else: 
  
        
        for i in range(len(height) - 1): 
  
            
            for j in range(len(height) - i - 1): 
  
                
                if height[j] > height[j + 1]: 
  
                    
                    
                    t = height[j] 
                    height[j] = height[j + 1] 
                    height[j + 1] = t 
  
                
                win.fill((0, 0, 0)) 
  
                
                show(height) 
  
                
                pygame.time.delay(50) 
  
                
                pygame.display.update() 
  
pygame.quit() 

Ausgabe :