Last active 1731960949

owsei revised this gist 1731960949. Go to revision

1 file changed, 34 insertions

nums.py(file created)

@@ -0,0 +1,34 @@
1 + # nums é a lista que não é organizada
2 + def ordenar(nums):
3 + # lista é a lista organizada
4 + lista = []
5 + # a gnt vai executar esse bloco para cada item na lista
6 + # (precisa desse 'range len' pq a gnt vai modificar a lista)
7 + for _ in range(len(nums)):
8 + # a gnt tira um valor no canto da lista
9 + # n importa qual valor a gnt pegou, mas sim q a gnt retirou ele da lista
10 + atual = nums.pop()
11 +
12 + # caso seja o primeiro valor da lista ele n tem como estar desorganizado
13 + if len(lista) == 0:
14 + lista.append(atual)
15 + else:
16 + # a gnt sabe q c n tiver nhm espaço p/ um item
17 + # (ou seja, n vai ter um item maior na lista para ele ficar ao lado)
18 + # ele vai ficar no final da lista
19 + posição_atual = len(lista)
20 +
21 + # a gnt vai passar por cada *posição* na lista
22 + for posição in range(len(lista)):
23 + # e comparar o valor dessa posição com o valor atual
24 + if lista[posição] > atual:
25 + # caso o nosso valor tenha passado do valor da
26 + # posição a gnt sabe q é para ele aparecer logo antes
27 + # ent a gnt fala q a posição que o item precisa ser inserido é a atual
28 + # (isso vai 'mover' o valor atual (e tds os próximos) p/ direita)
29 + posição_atual = posição
30 + # n precisa mais procurar o lugar correto na lista, pq já foi encontrado
31 + break
32 + # a gnt vai adicionaro o valor atual no posição encontrada
33 + lista.insert(posição_atual, atual)
34 + return lista
Newer Older