Repositório dedicado a implementações e anotações sobre a disciplina de Algoritmos e Estruturas de Dados II - DCA0209 - UFRN - DCA (Departamento de Computação e Automação)
Na primeira unidade do curso, revisamos conceitos importantes como Árvores de Busca Binária (BST) e Árvores AVL, que foi assunto do curso anterior Algoritmos e Estruturas de Dados I. Também desenvolvemos um trabalho sobre Processamento de Linguagem Natural (PNL) usando AVL, o que foi muito interessante. Além disso, aprendemos a estudar a complexidade de algoritmos, uma habilidade fundamental para avaliar o desempenho e a eficiência deles.
Na Unidade II, exploramos em profundidade a estrutura de dados grafo, essencial para representar e resolver problemas que envolvem relações complexas entre objetos. Estudamos os diversos tipos de grafos, como grafos direcionados e não direcionados, e as principais operações e algoritmos associados, como busca em largura (BFS) e busca em profundidade (DFS). Além disso, mergulhamos na teoria do mundo pequeno, que descreve como, em muitas redes reais, a maioria dos nós pode ser alcançada a partir de qualquer outro nó em um pequeno número de passos. Esta teoria tem implicações significativas em áreas como redes sociais, biologia e ciência da computação, ilustrando a ubiquidade e importância dos grafos no mundo moderno.
Na Unidade 3, aprofundamos nosso estudo sobre o conceito de "Small World" com foco em diversos aspectos como caminhos (paths), distâncias (distances), componentes conectados (connected components), coeficiente de agrupamento (clustering coefficient), distância social (social distance) e os famosos "Seis Graus de Separação". Exploramos como esses conceitos se manifestam em diferentes redes e a importância deles para a análise de grafos. Estudamos também os "Hubs", que são métricas essenciais e analisamos estudos de caso relevantes. Exploramos métricas importantes como excentricidade (Eccentricity), diâmetro (Diameter), periferia (Periphery), raio (Radius) e centro (Center) de um grafo. Também abordamos centralidades como grau (Degree), proximidade (Closeness), intermediação (Betweenness) e centralidade de vetor próprio (Eigenvector Centrality), além de discutir as distribuições de centralidade (Centrality Distributions) e o conceito de decomposição em camadas (Core Decomposition).
Essa unidade proporcionou uma compreensão aprofundada das métricas e métodos de análise de redes, essenciais para a interpretação e utilização prática de grandes conjuntos de dados interconectados.