Tentando entender o algoritmo de ordenação por inserção
Estou lendo alguns livros sobre Python, estruturas de dados e análise e design de algoritmos. Eu quero realmente entender as vantagens e desvantagens da codificação e me tornar um programador eficiente. É difícil pedir que o livro esclareça, daí a minha pergunta sobre o stackoverflow. Estou realmente achando que algoritmos e recursões são desafiadores ... Publiquei algum código (tipo de inserção) abaixo que estou tentando entender exatamente o que está acontecendo. Geralmente entendo o que deveria acontecer, mas não estou realmente entendendo como e por qu
De tentar analisar partes do código no Python Idle, sei que:
key (holds variables) = 8, 2, 4, 9, 3, 6
e essa
i (holds the length) = 7 ( 1, 2, 3, 4, 5, 6, 7)
Não sei por que 1 é usado na primeira linha: range (1, len (mylist)). Qualquer ajuda é apreciad
mylist = [8, 2, 4, 9, 3, 6]
for j in range(1,len(mylist)):
key = mylist[j]
i = j
while i > 0 and mylist[i-1] > key:
mylist[i] = mylist[i - 1]
i -= 1
mylist[i] = key