Estrutura de dados parte 1: Vetores e Matrizes.
Tags: javascript, algorithms, estruturadedado, programming
Published: 2022-09-06 20:41:39

Essa serie de textos faz parte dos meus estudos da faculdade referentes à matéria de pesquisa, orientação e técnicas de armazenamento de dados. Uma boa maneira de por em prática o que se foi aprendido é compartilhar esse conhecimento com mais pessoas. 

Esse primeiro texto abordará as estruturas de dados simples como vetores e matrizes.

Quando falamos de computação, principalmente sobre armazenamento, basicamente estamos falando de dois tipos: o armazenamento interno e o armazenamento externo. De maneira bem simples: Armazenamento externo pode se caracterizar como o tipo de armazenamento que diz respeito aos dados que são guardados em aplicações ou dispositivos fora da aplicação, como um banco de dados ou HD. Já o armazenamento interno diz respeito aos dados que são armazenados dentro da própria aplicação, podendo ser acessados através de instruções diretas do programa e de acordo com a lógica necessária. O armazenamento interno tem como estrutura elementar uma variável. 

![Imagem mostrando uma variável](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8uvjj25d3q9i9nzdiysi.png)

A variável é um espaço em memória responsável por alocar uma informação dentro da aplicação, seja ela um inteiro, uma string ou um booleano, sendo possível recuperá-la através de seu nome identificador. Por ser capaz de guardar somente uma informação dentro de si, a variável acaba sendo uma estrutura inviável para se trabalhar com uma grande quantidade da dados. Por exemplo: imagine que você tenha seis pessoas e precise armazenar o nome delas, seria inviável em uma aplicação criar seis variáveis para armazenar cada um desses seis nomes, além de dar muito mais trabalho para tratar esses dados futuramente.

Por conta disso nós utilizamos vetores. Vetores são uma forma eficiente e indexável de armazenamento de dados em uma aplicação, permitindo o armazenamento de mais de um dado em uma mesma estrutura, podendo assim economizar código atribuindo à uma única variável diversos dados.


![Imagem explicando um vetor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8tg2s5urgqcvcq72dygd.png)

Cada um dos nomes armazenados dentro desse vetor possuem um respectivo índice de identificação que começa do 0 e vai até N, sendo N o número total de elementos presentes no vetor.

Normalmente vetores apenas armazenam dados do mesmo tipo, ou seja, um vetor de inteiros só armazena números inteiros. Entretanto, no JavaScript é possível armazenar dados de diferentes tipos em um mesmo vetor:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7fu30enie9zx8uosgxs0.png)

Além do vetor, nós também trabalhamos com as matrizes. Uma matriz é uma estrutura computacional bidimensional, capaz de armazenar dados de maneira em que os mesmos sejam guardados como uma tabela. Assim como nos vetores o acesso aos elementos presentes nas matrizes se da através de índices, mas nesse caso, utilizando as coordenadas da linha e coluna para indicar exatamente onde esse elemento se encontra.


![Image mostrando uma matriz de dados e como acessar os dados presentes nessamatriz](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5ml5k3wb5yrsop37uu5u.png)

Dentro da memória, os vetores são armazenados de maneira similar à uma variável, tendo de diferente apenas que sua referência indexada aponta para mais de um espaço em memória.


![Imagem explicando a alocação de memória de uma variável e um vetor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8qs8iv8pd6h2za6ch6ww.png)