Você está na página 1de 3

VETORES (ARRAYS) - SEQUENCIA DE ELEMENTOS EM ESPAÇOS CONTIGUOS NA MEMORIA DO

COMPUTADOR (Uma Lista de dados)

Ex: array = ['abacate', 'banana', 'caju', 'damasco', 'embaúba']


0 1 2 3 4

(0, 1, 2, 3, 4) -----> São índices que identificam a posição de um dado em um


array.

* O desempenho depende de como o código interage com a estrutura de dados!!!

Nos Arrays (Vetores)

-Existem quatro operações básicas.

-Leitura: Para obter algum dado da estrutura


-Busca: Procurar certo dado na estrutura
-Inserção: Adicionar um novo dado na estrutura
-Remoção: Remover um dado da estrutura

Quão rápido são essas operações? Em termos de passos, depende do hardware, tem
complexidade temporal, eficiência e desempenho.

*Leitura: No caso de um array, obter o dado de certo índice. Quantos passos


são necessarios para a leitura de um array?
A leitura de um array é realizada em UM passo

*Dado o índice desejado, o programa lê diretamente( em 1 passo) o


dado naqeula posição.
1. Um computador lê qualquer endereço de memória em 1 passo
2. Cada array tem gravado o endereço de memória em que inicia
3. Todo array começa no índice 0.

Exemplo: Ler o valor no índice 3


1. O ARRAY começa no índice 0, no endereço de memória 106.
2. O índice 3 está exatamente três células além do índice
0.
3. Para ler o índice 3 basta fazer 106+3 = 109

106 107 108 109 110 (endereço)


[a] [b] [c] [d] [e]
0 1 2 3 4 (índice)

* Leitura de um dado em um array é uma operação eficiente


(A MAIS RÁPIDA POSSÍVEL)

*Busca: No caso de um array buscar por um dado, por exemplo, 'd', e obter seu
índice (Apenas o índice do primeiro valor encontrado é
devolvido caso haja dados repetidos. Quantos passos são necessarios
para a busca de um array?

* A busca em um array de tamanho N é realizado em até N passos.


1. A busca sempre comeã no índice 0
2. Se o dado no índice 0 não for o desejado, o computador passa
para o próximo índice.
3. Prossegue assim até encontrar o dado desejado, ou chegar ao
final sem encontrá-lo.

Exemplo: Buscar por 'd'


-Verifica cada índice a partir de zero
-Ao encontrar d no índice 3, devolve o valor do índice
-Verifica-se 4 células = 4 passos.

[a] [b] [c] [d] [e]


0 1 2 3 4 (índice)

Essa técnica de busca é chamada de BUSCA LINEAR ou SIMPLES.

Qual o número máximo de passos necessários para fazer uma


busca linear em um array? Quando é que isso acontece?
-Ocorre quando o valor procurado é o último ou não
existe, caso não existe irá devolver o valor None, nil, Null...
-No nosso caso, seriam necessarios 5 passos no array
do exemplo

*Inserção(Vetor): No caso de um array, incluir um novo dado, por exemplo 'f'


em um novo espaço. Quantos passos são necessários para a inserção em um array?
*O número de passos para inserção em um array depende do
local de inserção!!!!!
-Inserção no final: O computador, além da posição
inicial do array, também sabe o tamanho do array.
-No caso de inserir 'f' no final do array que usei
nos outros exemplos, ocorrerá em um passo, será alocado no espaço 111 (Um espaço
livre na memoria).

-No caso de inserir 'f' no começo ou no meio do


array:
-Precisamos deslocar os dados para criar
espaço.

Exemplo: Inserir 'f' no indice 3 do array


-Ocorre em 4 passos
-3 passos para deslocar os dados para a direita
-1 passo para inserir o dado no array

-Qual o pior caso de inserção? Acontece quando é inserido


um dado no inicio do array.
*São necessarios até N+1 passos para inserção em um
array de tamanho N.

*Remoção(Vetor): No caso de um array remover, por exemplo o dado de certo


indice. Quantos passos são necessários para a remoção de um array?
*O número de passos para remoção em um array também depende
do local de inserção!!!!
-Por exemplo, para remover o valor do indice 2 do
array que usei nos outros exemplos
-Basta um passo para remover o valor (A partir do
endereço 106 adicionar 2(106+2=108)
-Porém há um espaço vazio no array
-Todos os elementos da direita precisam ser
deslocados (2 passos para deslocar o 'd' e o 'e')
-Logo, são necessarios 3 passos para remover o valor
do indice 2 do array em questão

*O pior caso ocorre quando se remove o primeiro


elemento do array.

*São necessarios até N passos para remoção em um


array de tamanho N

Você também pode gostar