nums.py
· 1.6 KiB · Python
Raw
# nums é a lista que não é organizada
def ordenar(nums):
# lista é a lista organizada
lista = []
# a gnt vai executar esse bloco para cada item na lista
# (precisa desse 'range len' pq a gnt vai modificar a lista)
for _ in range(len(nums)):
# a gnt tira um valor no canto da lista
# n importa qual valor a gnt pegou, mas sim q a gnt retirou ele da lista
atual = nums.pop()
# caso seja o primeiro valor da lista ele n tem como estar desorganizado
if len(lista) == 0:
lista.append(atual)
else:
# a gnt sabe q c n tiver nhm espaço p/ um item
# (ou seja, n vai ter um item maior na lista para ele ficar ao lado)
# ele vai ficar no final da lista
posição_atual = len(lista)
# a gnt vai passar por cada *posição* na lista
for posição in range(len(lista)):
# e comparar o valor dessa posição com o valor atual
if lista[posição] > atual:
# caso o nosso valor tenha passado do valor da
# posição a gnt sabe q é para ele aparecer logo antes
# ent a gnt fala q a posição que o item precisa ser inserido é a atual
# (isso vai 'mover' o valor atual (e tds os próximos) p/ direita)
posição_atual = posição
# n precisa mais procurar o lugar correto na lista, pq já foi encontrado
break
# a gnt vai adicionaro o valor atual no posição encontrada
lista.insert(posição_atual, atual)
return lista
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 |