ALGORITMOS
-
A pilha (stack) é um dos mais simples tipos abstratos de dados. Esse artigo tem como objetivo apresentar os fundamentos dessa estrutura de dados e mostrar uma implementação básica em C++. -
Quando você digita uma url no seu navegador ele traduz o nome do domínio em um endereço IP para requisitar uma página Web. Esse artigo irá te mostrar como, através de sockets, é feito essa tradução.Resolvendo DNS com sockets
-
A fila (queue) é um dos mais simples tipos abstratos de dados. Esse artigo tem o objetivo de apresentar os fundamentos dessa estrutura de dados e mostrar uma implementação feita na linguagem C++.Tipos abstratos de dados - Fila (Queue)
-
As listas encadeadas (linked lists) são estruturas de dados organizadas em uma ordem linear baseadas em ponteiros e não por índices. Esse artigo tem o objetivo de apresentar os fundamentos das listas encadeadas e como implementá-las em C++.Tipos abstratos de dados - Lista encadeada (Linked list)
-
As árvores de busca binária são estruturas de dados encadeadas e organizadas de forma binária. Cada item da estrutura possui referências para seus filhos à esquerda, direita e também para o seu parente. Esse artigo irá mostrar esses fundamentos e uma implementação em C++.Tipos abstratos de dados - Árvore de busca binária (Binary search tree)
-
Para analisar um loop em um algoritmo ou verificar sua corretude utiliza-se técnicas como Invariantes de loop. Esse artigo tem o objetivo de explicar os fundamentos e como aplica-los para fazer essas verificações.Invariante de Laço - Loop invariants
-
Esse artigo apresenta soluções algorítmicas para o problema de inverter strings sem inverter as palavras. Serão mostradas soluções que permite resolver o problema sem utilizar nenhuma variável temporária, ou seja, sem nenhum storage.Como inverter uma frase sem inverter as palavras
-
Esse artigo tem como objetivo apresentar o algoritmo de Busca em largura em uma solução prática escrita em C++. Serão discutidos sua complexidade de tempo e espaço assim como as características básicas do algoritmoBusca em largura
-
Esse artigo tem como objetivo apresentar o algoritmo de Busca em profundidade em uma solução prática escrita em C++. Serão discutidos sua complexidade de tempo e espaço assim como as características básicas do algoritmoBusca em profundidade
-
Nesse artigo iremos analisar e implementar a estrutura de dados Tabela Hash utilizando a linguagem C++. Iremos abordar uma função hash básica e porquê ela é importante. Além disso veremos alguns casos de uso dessa estrutura de dados.Tipos abstratos de dados - Tabela Hash
-
Esse artigo tem o objetivo de explicar os fundamentos e técnicas por trás do algoritmo de ordenação Quicksort. Serão apresentadas uma análise de complexidade de tempo e espaço assim como uma implementação completa em C++ do algoritmo.O Algoritmo de ordenação Quicksort
-
Esse artigo tem como objetivo explicar a intuição por trás do algoritmo Busca Binária ou Binary Search. Iremos ver como caso base a busca sequencial e, à partir disso, entender as motivações para a Busca Binária. Serão apresentadas implementações em linguagem C de forma recursiva e iterativa.Busca Binária
-
Resumo do artigo RSS++ publicado em 2019 na conferência CONEXT da ACM apresentando uma política de balanceamento de carga entre núcleos de processamento.RSS++: load and state-aware receive side scaling
-
Artigo apresentado na conferência SIGCOMM no ano de 1988 discutindo um algoritmo de controle de congestão para o protocolo TCP. A pesquisa foi desenvolvida pela universidade de Berkeley.Congestion Avoidance and Control
-
Esse artigo descreve a estrutura de dados Ring Buffer ou Buffer circular. São discutidos as características, as aplicações, a versatilidade e as complexidades de tempo de espaço que envolvem essa tão importante estrutura de dados.Ring Buffer ou Buffer circular
-
Este artigo apresenta diferentes latências inerentes aos programas de computadores que nem sempre estão bem esclarecidos para um programador. Essas diferenças lhe darão uma visão global e impacto que cada uma delas tem em um algoritmo, programa ou sistema.Latências que todo programador deveria saber
-
Este artigo detalha os fundamentos por trás da notação O e os motivos pelos quais ela é tão essencial para a análise e complexidade de algoritmos. Exemplos de algoritmos, comportamento assintótico de funções, limites e análises serão detalhados ao longo deste artigo. Ao final você deverá compreender a importância e como aplicar este fundamento em seu dia à dia como cientista da computação.A notação O
-
Este artigo detalha os fundamentos por trás da notação Θ (letra greta Theta) e os motivos pelos quais ela é tão essencial para a análise e complexidade de algoritmos. Exemplos de algoritmos e comportamento assintótico de funções serão detalhados ao longo deste artigo. Ao final você deverá compreender a importância e como aplicar este fundamento em seu dia à dia como cientista da computação.A notação Theta
-
Este artigo explica os fundamentos da notação Ω (letra grega ômega) e os motivos pelos quais ela é tão essencial para a análise e complexidade de algoritmos. Exemplos de algoritmos e comportamento assintótico de funções serão mostrados ao longo deste artigo. Ao final você deverá compreender a importância e como aplicar este fundamento em seu dia à dia como cientista da computação.A notação Ômega
-
Essa teoria vem da matemática do século 19 e é hoje aplicada como método formal de avaliação de algoritmos dentro da Ciência da Computação. Neste artigo você irá entender a história, a intuição e como adotamos este fundamento na análise de complexidade de algoritmos.Comportamento assintótico de funções
-
Esse artigo tem como objetivo explicar o que é o princípio filosófico conhecido como a Navalha de Ockham e como ele é utilizado dentro da Ciência da Computação. Exemplos e discussões sobre o tema também são apresentados neste texto.A navalha de Ockham na Ciência da Computação
-
Esse artigo tem o objetivo de explicar os fundamentos e técnicas por trás do algoritmo de ordenação Insertion Sort. Serão apresentadas uma análise de complexidade de tempo e espaço assim como uma implementação completa em C++ do algoritmo.O algoritmo de ordenação Insertion sort