Last active 1731960949

Revision 26264153e4af875851059238c6674fba3529bfd9

nums.py Raw
1# nums é a lista que não é organizada
2def 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