# Lista 5 de P1 from random import randint from time import clock # Função simples que cria uma lista com numeros randomicos entre -100 e 100 def criaLista(qtdNums): listaNumeros = [] i = 0 while i < qtdNums: numeroRandomico = randint(-100, 100) listaNumeros.append(numeroRandomico) i += 1 return listaNumeros # Função que contém um bubble sort para ordenar a lista. Esta função também recebe a opção de ordenação (c = crescente, d = decrescente), eliminando a necessidade de repetir código def ordenaLista(listaNums, ordem): tempoInicial = clock() # Marca tempo inicial listaOrd = listaNums[:] for num in range(len(listaOrd)-1,0,-1): for i in range(num): # Esse segundo range reduz em cada iteração (visto que o i-ésimo maior/menor termo da lista já está na posição correta) if ordem == 'c' and listaOrd[i]>listaOrd[i+1]: # se opção = crescente listaOrd[i], listaOrd[i+1] = listaOrd[i+1], listaOrd[i] elif ordem == 'd' and listaOrd[i]<listaOrd[i+1]: # se opção = decrescente listaOrd[i], listaOrd[i+1] = listaOrd[i+1], listaOrd[i] tempoFinal = clock() # Marca tempo final cronometro = "%.6f" % (tempoFinal - tempoInicial) # Cria uma string do delta tempo de acordo com enunciado return listaOrd, cronometro # Função que transforma uma lista em uma sequência de strings separados por vírgulas para atender o exemplo da questão def listaParaStr(lista): i = 0 palavra = '' while i < len(lista): palavra = palavra + str(lista[i]) if i < len(lista) - 1: palavra = palavra + ', ' i += 1 return palavra # Inputs: tamanhoLista = int(input("Informe o tamanho da lista: ")) if tamanhoLista < 10 or tamanhoLista > 100: tamanhoLista = int(input("O tamanho da lista deve ser maior ou igual a 10 e menor ou igual a 100. Tente novamente.")) opcaoOrd = input("Selecione a opção de ordenação: (C)rescente ou (D)ecrescente? ").lower() if opcaoOrd == 'c': strOpcao = "crescente:" else: strOpcao = "decrescente:" # Main: listaOriginal = criaLista(tamanhoLista) listaOrdenada, tempoExecucao = ordenaLista(listaOriginal, opcaoOrd) listaOriginal, listaOrdenada = listaParaStr(listaOriginal), listaParaStr(listaOrdenada) # Outputs: print("1) Lista original:", listaOriginal) print("2) Lista ordenada", strOpcao, listaOrdenada) print("3) Tempo de execução da ordenação:", tempoExecucao, 's')
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question