def program1(L):
multiples = [] # 1 step
for x in L: # 1 step x n times
for y in L: # 3 steps x n times
multiples.append(x*y)
return multiples # 1 step
In this case we go through the loop for x in L
ntimes. Every time through this loop, we execute an assignment of a value to x
, and then the inner loop for y in L
. The assignment takes 1 step on each iteration; how many steps does the inner loop take on each iteration?
The inner loop has three operations (assignment of a value to y, x*y, and list appending). So the inner loop executes 3*n times on each iteration of the outer loop. Thus the nested loop structure is executed n * (3*n + 1) = 3*n**2 + n times! (Aqui, eu não entendo porque o MIT acrescenta +1 aos três passos existentes no loop interno, o que resultará em n*1 (ou somente n) na resposta final)
Adding in two steps (for the first assignment statement, and the return statement) we see that in the worst case, this program executes 3*n**2 + n + 2 steps.
--
Você recebeu essa mensagem porque está inscrito no grupo quot;Aprendendo a Programar com o MIT e a Escola de Dados" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para programadedados20...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para programaded...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/programadedados2014_01.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/programadedados2014_01/3be9bd1a-ea61-47f4-8379-080bfd41c47f%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para programadedados2014_01+unsub...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para programaded...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/programadedados2014_01.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/programadedados2014_01/3be9bd1a-ea61-47f4-8379-080bfd41c47f%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para programadedados20...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para programaded...@googlegroups.com.
Acesse esse grupo em http://groups.google.com/group/programadedados2014_01.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/programadedados2014_01/d215ee2a-266e-4d2e-b498-b13101463b42%40googlegroups.com.