Buscar

Prova - 2018390277

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Prova 1 - Aed 1 - Tiago Silveira do Nascimento 2018390277
1) A diferença entre pilhas e filas se dá basicamente no modo de ordenação das duas. Nas pilhas temos uma estrutura de dados onde o o último objeto a entrar é o primeiro a sair, como uma pilha de pratos. A essa forma de ordenação podemos dar o nome de LIFO (last in first out). Já nas filas temos uma estrutura de dados onde o primeiro objeto a entrar é o primeiro a sair, também damos o nome a essa organização de FIFO(first in first out). 
2) Um vetor é um conjunto de dados sequencialmente dispostos que podem aumentar ou diminuir de forma dinâmica. Uma lista é um conjunto de itens relacionados que não são necessariamente dispostas sequencialmente na memória, mas pode ser acessado sequencialmente porque cada item tem um link para o próximo item. Com uma lista , os dados não são necessariamente organizados em sequência na memória. Ao invés disso, cada item da lista contém um link para o próximo item na lista. Quando se insere um item numa lista, o mesmo pode ser colocado em qualquer lugar na memória, o que torna a inserção numa lista, muito mais prática do que a inserção em um vetor.
3) O(n²) significa que pra cada elemento 'n' na sua lista, o tempo de execução vai escalar exponencialmente. São pequenos programas e de fácil entendimento. É importante ressaltar que nos algoritmos de ordenação, as medidas de complexidade mais relevantes são o número de comparações entre chaves e o número de movimentações dos registros dos eventos. Um bom exemplo, é o selection sort, onde os itens são selecionados em ordem crescente e postos em ordem.
Já os métodos O(nlog(n)) são mais complexos, principalmente nos detalhes, pois requerem mais comparações.Porém, por se tratar de um tempo logarítmico, acaba executando mais rapidamente. Com isso, são projetados para lidar com uma maior quantidade de dados. Um exemplo é o mergesort, onde o algoritmo divide o problema em problemas menores, resolve cada pedaço individualmente e junta (merge) as respostas de forma ordenada. 
4) Conhecendo a complexidade de cada algoritmo, é possível escolher e aplica-los nas situações mais apropriadas, evitando longos tempos de execução em listas com grande quantidade de itens. Como em uma lista de convidados, por exemplo. Caso os nomes estejam ordenados em ordem alfabética, se perde menos tempo verificando todos os nomes da lista de forma aleatória, até encontrar uma pessoa específica. 
5) lista = ListaEncadeada()
for i in range(5):
 inserir_inicio(lista, i)
print("Lista:", lista)
print("Remover elementos:")
for i in range(5):
 remove(lista, i)
 print("Removendo o elemento {0}: {1}".format(i, lista))

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando