Introdução
Seja bem-vindo a esta primeira publicação de uma série que pretendo fazer sobre estrutura de dados. Sou um estudante, em transição de carreira, que está estudando esta disciplina no tecnólogo em análise e desenvolvimento de sistemas, e gostaria de compartilhar tudo aquilo que estou aprendendo e estudando mais sobre o assunto.
Nesta série vamos explorar os blocos fundamentais no que diz respeito ao desenvolvimento de software e solução de problemas. Vamos começar!
Definição
Podemos pensar que Estrutura de Dados são conjuntos que armazenam dados de forma eficiente, fornecendo ao usuário operações que o auxiliam a trabalhar com estas estruturas (ordenar, buscar e outros).
Um conjunto de dados é um tipo abstrato de dados, estabelecendo uma relação, as funções e as operações que podem ser aplicados a estes dados. Assim, uma estrutura de dados é uma implementação de um tipo abstrato de dados.
Deste modo, temos alguns tipos de Estrutura de Dados como Vetores, Matrizes, Pilhas, Filas, Árvores, Hashtables e Grafos.
Básico
Complexidade Big O
Big O é uma forma de categorizarmos algoritmos em tempo de execução e consumo de memória com base no tamanho da entrada de dados fornecida. Big O não tenta ser uma medida exata, e sim uma ideia generalizada para compreender a ordem de grandeza do algoritmo.
E é importante entender isto pois é uma ferramenta que nos ajuda na tomada de decisões sobre qual estrutura de dados será implementada para determinado algoritmo pretendido. Sabendo como o algoritmo vai performar, nos dá uma segurança maior sobre a qualidade do programa que será desenvolvido.
Estrutura de Vetores e Matrizes
Essas estruturas de dados são homogêneas pois todos os elementos tem o mesmo tipo associado.
Desta maneira, temos os Vetores que é:
- Variável composta homogênea unidimensional;
- Formada por uma sequência de valores, todos do mesmo tipo, com o mesmo identificador e alocadas em sequência na memória.
- Uma vez que todos os valores possuem o mesmo identificador, o que distingue um valor do outro é a sua posição nesta sequência (estrutura), aqui chamaremos esta posição de índice.
Todos os Vetores são Matrizes, a diferença é que a Matriz possui mais de uma dimensão, ou seja, Matriz é:
- Variável composta homogênea multidimensional;
- Formada por uma sequência de valores, todos do mesmo tipo, com o mesmo identificador e alocadas em sequência na memória.
- Uma vez que todos os valores possuem o mesmo identificador, o que distingue um valor do outro é a sua posição nesta sequência (estrutura), aqui chamaremos esta posição de índice.
Pseudocódigo
// Declarando vetor
Declarar
notas[3] real;
// Atribuindo em Vetor
notas[0] <- 9,0;
notas[1] <- 8,0;
notas[2] <- 9,5;
// Declarando matriz
Declarar
notas[2][2] real;
// Atribuindo em Matriz
notas[0][0] <- 9,5;
notas[0][1] <- 9,0;
notas[1][0] <- 7,0;
notas[1][1] <- 5.6;
// Mostrando Valores
Algoritmo MostrarVetor
inicio_algoritmo
Declarar
vet[25],i inteiro;
para i de 0 até 24 passo + 1 faça
escrever("Digite um valor inteiro");
ler(vet[i]);
escrever(vet[i]);
fimpara;
fim_algoritmo
Java
import javax.swing.JOptionPane;
public class SomaDeValores {
public static void main(String[] args) {
int tamanhoVetor = 10;
int[] valores = new int[tamanhoVetor];
for (int i = 0; i < tamanhoVetor; i++) {
String entrada = JOptionPane.showInputDialog("Digite o valor " + (i + 1) + ":");
valores[i] = Integer.parseInt(entrada);
}
int soma = 0;
for (int valor : valores) {
soma += valor;
}
JOptionPane.showMessageDialog(null, "A soma dos valores é: " + soma);
}
}
Typescript
- Em Typescript não há um tipo específico chamado "vetor", mas os vetores são utilizados por meio de arrays.
- Assim, pode-se trabalhar com arrays para representar estruturas de dados semelhantes aos vetores.
- Arrays em Typescript é uma coleção ordenada de elementos do mesmo tipo (ou de tipos compatíveis) e é definido pela sintaxe dos colchetes
[]
ouArray<> = []
.
function somarValores(array: number[]): number {
let soma = 0;
for (let i = 0; i < array.length; i++) {
soma += array[i];
}
return soma;
}
// Array com 10 valores
const numeros: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// Chama a função para somar os valores da array
const resultado = somarValores(numeros);
console.log(`A soma dos valores é: ${resultado}`);
Praticando
Gosto de praticar o que foi estudado resolvendo problemas na plataforma Codewars. Desta forma consigo aplicar conceitos teóricos para a resolução de problemas e desafios. Vamos praticar!
8 kyu - Add Length
Descrição do problema:
E se precisarmos que o comprimento das palavras, separadas por um espaço, seja adicionado ao final da própria palavra e que seja retornado como um array?
Exemplo(Entrada --> Saída)
"apple ban" --> ["apple 5", "ban 3"]
"you will win" --> ["you 3", "will 4", "win 3"]
Sua tarefa é escrever uma função que receba uma String e retorne um Array com o comprimento de cada palavra adicionado a cada elemento.
Solução:
export function addLength(str: string): string[] {
//Transformando a string em uma array
let strArray = str.split(' ');
//Criando uma array vazia de Strings para a resposta
let strReturnArray: string[] = [];
//Loop para iterar sobre todos os elementos desta array de strings
for (let i = 0; i < strArray.length; i++) {
//Template: "String StringLength"
let str = `${strArray[i]} ${strArray[i].length}`;
//Utilizando uma operação de Arrays para adicionar essa string na Array.
strReturnArray.push(str);
}
return strReturnArray;
}
Conclusão
Chegamos ao final desta publicação sobre Estrutura de Dados. Este será a primeira publicação de uma série que quero fazer utilizando minhas anotações de estudo, e para que possa compartilhar aquilo que estou aprendendo e como estudo.
Até a próxima!
Top comments (0)