Matriz na Estrutura de Dados - Explicação, Função e Exemplos
Publicados: 2021-06-21As estruturas de dados provaram ser uma parte crucial de quase todas as linguagens de programação que foram amplamente aplicadas à maioria dos programas de computador. É através das estruturas de dados que os dados podem ser efetivamente gerenciados e acessados pelos programas, pois acessar e armazenar dados individuais separadamente é um processo demorado. Os algoritmos são projetados especialmente para criar operações específicas necessárias em uma estrutura de dados. Portanto, estruturas de dados e algoritmos juntos estabelecem a base de aplicativos e programas complexos.
Neste artigo, estaremos focando em um tipo de estrutura de dados, ou seja, Array.
Uma matriz é um tipo de estrutura de dados onde os elementos ou os dados são armazenados em locais contíguos. Sempre que o usuário tiver um conjunto de dados com o mesmo tipo de dados, a estrutura de dados array é a opção para organizar esses dados. O tamanho de uma matriz depende do tamanho dos dados. Antes que os elementos sejam armazenados em uma matriz, o tamanho da matriz deve ser definido para que incorpore todos os elementos de forma eficaz. Cada elemento armazenado em uma matriz tem um valor de índice atribuído a ele, o que ajuda a identificar a localização desse elemento na matriz. O primeiro elemento da matriz tem um valor de índice de zero.
Os termos importantes associados a uma estrutura de dados de matriz são:
- Elemento : Elemento representa cada objeto ou item armazenado na estrutura de dados.
- Índice : Índice representa a localização do elemento em uma matriz. Tem um valor numérico.
O tamanho de uma matriz muda com diferentes linguagens de programação. Com base no tamanho, uma matriz pode ser de dois tipos: uma matriz estática e uma matriz dinâmica.
Índice
1. Matriz estática:
Esses tipos de arrays têm seus tamanhos predefinidos durante sua criação. Por causa disso, as matrizes estáticas também são conhecidas como matrizes fixas ou matrizes de comprimento fixo. A matriz pode ser definida de duas maneiras. Os elementos da matriz podem ser definidos durante a criação da matriz ou o tamanho da matriz pode ser definido durante a criação de uma matriz. Neste último caso, os elementos não precisam ser especificados. Os valores padrão podem ser alocados para uma matriz não inicializada ou valores deixados na memória de alocações anteriores.
A matriz não pode encolher ou expandir depois que o tamanho for definido. À medida que a memória é alocada durante a declaração de um array, é apenas o compilador que pode destruir o array. A adição de um elemento não é possível porque o usuário não tem certeza se alguma memória livre está presente para alocar para o próximo elemento.
A tabela abaixo mostra o exemplo de arrays usados em diferentes linguagens de programação.
Linguagem de programação | Conteúdo da matriz definida | Tamanho definido do array sem conteúdo |
C++ | int marcas[] = {10, 20, 30}; | int marcas[3]; |
C# | int[] marcas = {10, 20, 30}; | int[] marcas = = new int[3]; |
Java | int[] marcas = {10, 20, 30}; | int[] marcas = = new int[3]; |
JavaScript | var marcas = [10, 20, 30]; | var marcas = new Array(3); |
Pitão | marcas = [10, 20, 30] | marcas = [Nenhuma] * 3 |
Rápido | valores de var:[Int] = [10, 20, 30] | var marcas: [Int] = [Int](repetindo: 0, contagem: 3) |
2. Matriz Dinâmica
Como o nome sugere, o array é dinâmico, o que significa que os elementos podem ser adicionados ou removidos durante o tempo de execução. Em comparação com os arrays estáticos cujo comprimento é fixo, os arrays dinâmicos não têm nenhum comprimento ou tamanho fixo do array. Funções de biblioteca padrão ou funções integradas estão disponíveis na maioria das linguagens de programação para criar e gerenciar arrays dinâmicos.
A tabela abaixo mostra a criação de um array em diferentes linguagens de programação
Linguagem de programação | Classe | Adição de elemento | Remoção do elemento |
C++ | #include <lista> std::lista | inserir | apagar |
C# | System.Collections.Generic.List | Adicionar | Remover |
Java | java.util.ArrayList | adicionar | remover |
JavaScript | Variedade | empurrar, emendar | pop, emenda |
Pitão | Lista | acrescentar | remover |
Rápido | Variedade | acrescentar | remover |
Representação de uma matriz
A representação de um array varia de acordo com sua implementação em diferentes linguagens de programação. Sendo o array uma parte importante da estrutura de dados python , uma ilustração foi mostrada na linguagem de programação python.
Em python, os arrays de estrutura de dados são tratados através da palavra-chave array . Sempre que a matriz de palavras-chave é usada, o usuário precisa armazenar elementos dos mesmos tipos de dados.
Fonte
Figura 1: Um exemplo de uma matriz
Conforme a Figura 1, a ilustração da matriz mostra que
- O tamanho do array é 10, o que significa que 9 elementos podem ser armazenados no array.
- O valor do índice foi mencionado acima do array que começa com o valor 0.
- Os elementos armazenados na matriz podem ser de qualquer tipo de dados e o elemento pode ser acessado por meio de seu valor de índice.
Outra ilustração foi mostrada na Figura 2, onde a sintaxe de python e C++ foi descrita.
Fonte
Figura 2 : Declaração de array usando python e C++ (
Propriedades de uma matriz
Uma estrutura de dados de matriz tem várias propriedades:
- Os elementos armazenados dentro de um array possuem os mesmos tipos de dados e o mesmo tamanho, ou seja, o tipo de dados de int terá tamanho de 4 bytes.
- A localização de memória contígua é usada para armazenar os elementos de uma estrutura de dados. A menor memória é alocada para o primeiro elemento da matriz.
- Os valores de índice são usados para encontrar a localização dos elementos em uma matriz. O índice começa com 0 e é sempre menor que o número total de elementos na matriz.
- O acesso aleatório dos elementos no array é possível devido ao valor do índice disponível. O endereço do elemento pode ser calculado através do endereço base adicionado a um valor de deslocamento.
- O conceito de array permanece o mesmo em todas as linguagens de programação. Apenas a inicialização e a declaração variam.
- Nome da matriz, elementos e tipo de dados são as três partes que serão comuns em todos os idiomas.
Criando uma matriz
A criação de um array na estrutura de dados python foi mostrada abaixo.
- O módulo array na estrutura de dados python pode ser importado para criar um array.
- array(data_type, value_list ) é a sintaxe através da qual um array pode ser criado na estrutura de dados python .
- O tipo de dados deve ser inteiros reais ou floats. Strings não são permitidas em python.
A Figura 2 mostra como criar um array em python. Um exemplo de código para mostrar como um módulo array é importado em python
importar matriz
marcas = array.array('i', [100.200.300])
imprimir (marcas)
A declaração de um array pode ser feita através de
arrayName = array.array(tipo de código para tipo de dados, [array,items])
Isso pode ser representado na Figura 3
Fonte
Figura 3: declaração de array em python
Termos importantes usados na criação de uma matriz:
- Identificador: Um nome que deve ser especificado como um nome para variáveis
- Módulo: módulo especial chamado array deve ser importado em python.
- Método: É um método específico para inicializar um array em python. Dois argumentos foram tomados, typecode e elements.
- Código de tipo: O tipo de dados deve ser especificado com o código de tipo disponível.
- Elementos: Os elementos da matriz devem ser especificados entre colchetes, por exemplo [200.400.100.]
Os códigos de tipo disponíveis são mostrados abaixo
Operações de matriz
Com a disponibilidade de estruturas de dados e algoritmos, diversas operações podem ser realizadas em qualquer tipo de estrutura de dados. Uma estrutura de dados de matriz pode ter operações como adição, exclusão, acesso e atualização de um elemento.
As operações que podem ser realizadas em um array da estrutura de dados python estão listadas abaixo.
1. Adição de um elemento a um array
- A função insert() integrada é usada para adicionar elementos a um array.
- Sintaxe usada : arrayName.insert(index, value)
- Um ou mais elementos podem ser adicionados ao array por meio da função insert().
- Os elementos podem ser adicionados ao início do array ou em qualquer posição específica usando a função Input: append().
importar matriz
marcas = array.array('i', [200.500.600])
marcas.inserir(1, 150)
Saída: array('i', [200.150.500.600])
Um exemplo com um código é mostrado abaixo retirado de
Saída do código:
Fonte
2. Exclusão de um elemento em uma matriz
- Um elemento pode ser excluído do array por meio de seu valor.
- Sintaxe usada: arrayName.remove(valor)
- Exemplo: remover o valor de 250 após sua adição no array com os elementos 100, 300, 200, 500 e 800.
Entrada:
importar matriz
marcas = array.array('i', [100.300.200.500.800])
marcas.inserir(1, 250)
imprimir (marcas)
marcas.remover(250)
Saída: array('i', [100.300.200.500.800])
Um exemplo de código retirado de
Fonte
Saída do código:
3. Acessando elementos em uma matriz
- operador de índice [ ] é usado para acessar elementos em uma matriz.
- O número de índice é usado para acessar qualquer elemento no array .
Um exemplo de um código é mostrado abaixo retirado de
Saída do código:
Fonte
4. Pesquisando elemento em uma matriz.
- O método index() embutido é usado para pesquisar um elemento em uma matriz.
- O valor de índice do elemento a ser pesquisado é retornado pela função.
- Exemplo: procurando um elemento 250 no array de elementos 100, 250, 300, 200, 500 e 800.
Entrada: matriz de importação
marcas = array.array('I', [100.250.300.200.500.800])
print(marks.index(250))
Saída: 1
Um código para pesquisar um elemento em uma matriz
A saída do código é
Fonte
3. Atualizando elementos em uma matriz
- O processo de atualização de um elemento é semelhante ao método de inserção com a única diferença de que ao atualizar o valor existente será substituído no índice fornecido.
- O novo valor é reatribuído ao índice para atualizar o elemento em uma matriz.
- Exemplo: Atualizando um elemento 250 com 350 na matriz de elementos 100, 250, 300, 200, 500 e 800.
Entrada: matriz de importação
marcas = array.array('i', [100.250.300.200.500.800])
marcas[1] = 350
Saída:
array('i', [100.350.300.200.500.800])
Um código mostrando a atualização de um elemento é mostrado abaixo
A saída do código é
Fonte
Vantagens da matriz
- O armazenamento de vários valores em uma única variável é possível em vez de criar variáveis separadas para cada elemento.
- Vários valores podem ser processados com facilidade e rapidez com o uso de matrizes.
- Os elementos da matriz podem ser classificados e pesquisados de maneira mais rápida.
Conclusão
O artigo discutiu um tipo especial de estrutura de dados, ou seja, o array e suas operações associadas. Com os conceitos básicos, programas mais complexos poderiam ser construídos visando problemas da vida real. Se você deseja fortalecer os fundamentos de seus conceitos de estrutura de dados em python, consulte o seguinte curso do Programa PG Executivo em Ciência de Dados do upGrad. O curso é certificado pelo IIIT-Bangalore e possui mais de 14 ferramentas e linguagens de programação para preparar sua jornada em direção à indústria. Ele é especialmente projetado para profissionais de nível de entrada na faixa etária de 21 a 45 anos de idade. Portanto, não pare seu aprendizado aqui, e apodere-se da linguagem e sua aplicação no mundo do aprendizado de máquina através do curso de upGrad. Caso você tenha alguma dúvida, nossa equipe de assistência estará disponível para ajudá-lo.
Um array é uma estrutura de dados linear poderosa. No entanto, tem algumas vantagens e desvantagens que são mencionadas abaixo: O seguinte ilustra a diferença entre uma matriz e uma lista. A estrutura de dados array tem muitas aplicações na vida real e também é usada como base para a implementação de outras estruturas de dados definidas pelo usuário. Algumas das principais aplicações de arrays são as seguintes:Quais são as vantagens e desvantagens de uma matriz?
Vantagens
1. Em uma matriz, os elementos podem ser acessados facilmente por seus números de índice.
2. Os arrays podem ser usados para armazenar várias entidades semelhantes.
3. A operação de busca é bastante conveniente. Isso pode ser feito em tempo O(n) e O(log n) em uma matriz ordenada, onde n é o número de elementos.
Desvantagens
1. Como a memória é alocada estaticamente em um array, o tamanho do array não pode ser alterado.
2. É homogêneo, ou seja, apenas os elementos com tipo de dados semelhante podem ser armazenados em uma matriz. Diferenciar entre uma matriz e uma lista?
Variedade -
1. A estrutura de dados do array é homogênea, ou seja, apenas os elementos com tipos de dados semelhantes podem ser armazenados em um array.
2. Os módulos precisam ser importados antes de usar o array.
3. As operações aritméticas são diretamente aplicáveis.
4. Preferido para dados maiores.
4. Muito mais compacto e consome menos memória.
Lista -
1. A lista é heterogênea e pode armazenar elementos de vários tipos de dados dentro dela.
2. Não há necessidade de importar módulos, pois está embutido em Python.
3. As operações aritméticas não podem ser operadas diretamente.
4. Preferido para dados menores.
5. O consumo de memória é maior. Descrever as principais aplicações de arrays?
1. Os arrays são usados para implementar e executar operações de matriz. As matrizes são amplamente utilizadas em levantamentos geológicos e experimentos científicos e de pesquisa.
2. Várias estruturas de dados definidas pelo usuário são implementadas usando as estruturas de dados array. Isso inclui pilha, fila, heaps, tabelas de hash e listas.
3. Os programas usam arrays para regular o fluxo de controle em vez de usar as instruções elif tradicionais, que são comparativamente longas.
4. Algoritmos escritos para os processos de escalonamento da CPU também usam a estrutura de dados do array para melhorar o desempenho da CPU.
5. Os gráficos usam as listas de adjacências como uma de suas implementações. Vetores (aplicação de array) são usados para criar essas listas de adjacências.