human
I am working on the file "Coursera/CICCP2/Curso Introdução à Ciência da Computação com Python - Parte 2.ipynb".
The first task is:
Comparação de Desempenho
Módulo time:

função time()
devolve o tempo decorrido (em segundos) desde 1/1/1970 (no Unix)

Para medir um intervalo de tempo
import time
antes = time.time()
algoritmo_a_ser_cronometrado()
depois = time.time()
print("A execução do algoritmo demorou ", depois - antes, "segundos")
Can you write Python program for it?
assistant
#Here is the Python program you requested.

class Ordenador:
    
    def selecao_direta(self, lista):
        
        fim = len(lista)
        
        for i in range(fim - 1):
            # Inicialmente o menor elemento já visto é o i-ésimo
            posicao_do_minimo = i
            
            for j in range(i + 1, fim):
                if lista[j] < lista[posicao_do_minimo]: # encontrou um elemento menor...
                    posicao_do_minimo = j               # ...substitui.
            
            # Coloca o menor elemento encontrado no início da sub-lista
            # Para isso, troca de lugar os elementos nas posições i e posicao_do_minimo
            
            lista[i], lista[posicao_do_minimo] = lista[posicao_do_minimo], lista[i]
            
    def bolha(self, lista):
        
        fim = len(lista)
        
        for i in range(fim - 1, 0, -1):
            for j in range(i):
                if lista[j] > lista[j + 1]:
                    lista[j], lista[j + 1] = lista[j + 1], lista[j] 

import random
import time

class ContaTempos:
    
    def lista_aleatoria(self, n): # n = número de elementos da lista
        from random import randrange
        lista = [0 for x in range(n)] # lista com n elementos, todos sendo zero
        for i in range(n):
            lista[i] = random.randrange(1000) # inteiros entre 0 e 999
        return lista
        
    def compara(self, n):
        
        lista1 = self.lista_aleatoria(n)
        lista2 = lista1
        
        o = Ordenador()
        
        antes = time.time()
        o.bolha(lista1)
        depois = time.time()
        print("Bolha demorou", depois - antes, "segundos")
        
        antes = time.time()
        o.selecao_direta(lista2)
        depois = time.time()
        print("Seleção direta demorou", depois - antes, "segundos")

c = ContaTempos()
c.compara(1000)

print("Diferença de", 0.16308164596557617 - 0.05245494842529297)

c.compara(5000)