human
Can you provide a the Python code you requested given the following:
I am working on the file "Coursera/CICCP2/.ipynb_checkpoints/Curso Introdução à Ciência da Computação com Python - Parte 2-checkpoint.ipynb".
The first task is:
Melhoria no Algoritmo de Ordenação da Bolha
Percorre a lista múltiplas vezes.
a cada passagem, compara todos os elementos adjacentes e troca de lugar os que estiverem fora de ordem.
Melhoria: se em uma das iterações, nenhuma troca é realizada, isso significa que a lista já está ordenada e podemos finalizar o algoritmo.
Can you write Python code for it?
assistant
#Here is the Python code 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] 
    
    def bolha_curta(self, lista):
        
        fim = len(lista)
        
        for i in range(fim - 1, 0, -1):
            trocou = False
            for j in range(i):
                if lista[j] > lista[j + 1]:
                    lista[j], lista[j + 1] = lista[j + 1], lista[j] 
                    trocou = True
            if not trocou: # que é igual a if trocou == False
                return 

import random
import time

class ContaTempos:
    
    def lista_aleatoria(self, n): # n = número de elementos da lista
        from random import randrange
        lista = [random.randrange(1000) for x in range(n)] # lista com n elementos, todos sendo aleatórios de 0 a 999
        return lista
    
    def lista_quase_ordenada(self, n):
        lista = [x for x in range(n)] # lista ordenada
        lista[n//10] = -500 # localizou o -500 no primeiro décimo da lista
        return lista        
        
    def compara(self, n):
        
        lista1 = self.lista_aleatoria(n)
        lista2 = lista1
        lista3 = lista2
        
   ...