Arrays

Python SELF PT
Nível 51 , Lição 3
Disponível

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).

Definição de um array e suas propriedades

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.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION