4.1 Definição de um array e suas propriedades
Um array é uma estrutura de dados que representa um conjunto ordenado de elementos de um único tipo, dispostos em células de memória contíguas. Cada elemento do array tem um índice único que é usado para acessá-lo.
Aqui está um array simples de tamanho 4, contendo os elementos (1, 2, 3 e 4).
Propriedades do array:
- Tamanho fixo: O tamanho do array é definido na sua criação e não pode ser alterado durante a execução do programa.
- Homogeneidade dos elementos: Todos os elementos do array devem ser do mesmo tipo (por exemplo, inteiros, strings).
- Disposição sequencial na memória: Os elementos do array são armazenados em células de memória contíguas, o que permite acesso rápido pelo índice.
- Acesso rápido pelo índice: O acesso a qualquer elemento do array é feito em tempo constante
O(1)
.
4.2 Exemplos de uso de arrays
Vamos ver alguns exemplos de uso de arrays que você provavelmente já conhece:
Armazenamento de dados de comprimento fixo
Dias da semana, meses do ano:
# Criação de um array com os dias da semana
days_of_week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
print(days_of_week[2]) # Saída: Wednesday
Matrizes e arrays multidimensionais
Matriz 3x3:
# Criação de uma matriz 3x3
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matrix[1][1]) # Saída: 5
Uso em algoritmos de ordenação
Ordenação de um array de números:
# Ordenação de um array de números
numbers = [5, 2, 9, 1, 5, 6]
numbers.sort() # Ordenação do array
print(numbers) # Saída: [1, 2, 5, 5, 6, 9]
Buffer para armazenamento temporário de dados
Buffer para leitura de dados de um arquivo:
# Criação de um buffer de 1024 bytes
buffer = [0] * 1024
print(len(buffer)) # Saída: 1024
4.3 Operações básicas com arrays
Importante! A classe list em Python é um array dinâmico, podendo mudar de tamanho durante a execução. Você aprenderá mais sobre arrays dinâmicos em algumas aulas.
Principais operações: acesso por índice, inserção, remoção
Acesso por índice
O acesso a um elemento do array é feito através de um índice que indica sua posição.
# Acesso a elementos do array por índice
arr = [10, 20, 30, 40, 50]
print(arr[2]) # Saída: 30
print(arr[-1]) # Saída: 50 (último elemento)
Inserção
A inserção de um elemento em um array pode exigir o deslocamento de todos os elementos subsequentes para abrir espaço para o novo elemento.
Exemplo (inserção de um elemento no meio do array):
# Inserção de elemento no array
arr = [10, 20, 30, 40, 50]
arr.insert(2, 25) # Inserção de 25 na posição 2
print(arr) # Saída: [10, 20, 25, 30, 40, 50]
Remoção
A remoção de um elemento do array pode exigir o deslocamento de todos os elementos subsequentes para preencher o espaço vazio.
Exemplo (remoção de elemento):
# Remoção de elemento do array
arr = [10, 20, 30, 40, 50]
arr.pop(2) # Remoção do elemento na posição 2
print(arr) # Saída: [10, 20, 40, 50]
4.4 Vantagens e desvantagens do uso de arrays
Vamos analisar as vantagens e desvantagens do uso de arrays:
Vantagens:
- Acesso rápido pelo índice: O acesso a qualquer elemento do array é feito em tempo constante
O(1)
, tornando os arrays muito eficientes para leitura de dados. - Simplicidade de implementação: Arrays são fáceis de entender e usar, simples de implementar e aplicáveis em diversas tarefas.
- Baixo overhead: Arrays ocupam menos memória comparados a estruturas de dados mais complexas, como listas encadeadas.
Desvantagens:
- Tamanho fixo: O tamanho do array é definido na sua criação e não pode ser alterado. Isso significa que é necessário conhecer antecipadamente o tamanho requerido ou usar arrays dinâmicos, que podem crescer conforme necessário.
- Custos de inserção e remoção: Inserção e remoção de elementos podem ser demoradas, pois exigem o deslocamento de elementos. No pior cenário, inserir ou remover um elemento no meio do array leva
O(n)
tempo. - Uso ineficiente de memória: Se o array não for completamente utilizado, as células de memória restantes permanecem vazias, o que pode levar a um uso ineficiente de memória.
GO TO FULL VERSION