### **Algoritmos de Ordenação**
1. **Bubble Sort** - **Uso**: Ordenar pequenos conjuntos de dados, principalmente para ensino por ser simples. - **Descrição**: Compara pares adjacentes e os troca se estiverem fora de ordem.
2. **Merge Sort** - **Uso**: Ordenação eficiente de grandes conjuntos de dados. - **Descrição**: Divide o conjunto em partes menores, ordena e mescla. Complexidade \(O(n \log n)\).
3. **Quick Sort** - **Uso**: Ordenação rápida e eficiente, usado em muitas bibliotecas padrão. - **Descrição**: Escolhe um "pivô" e particiona o conjunto em menores e maiores.
4. **Heap Sort** - **Uso**: Ordenação em sistemas com memória limitada. - **Descrição**: Baseado em estruturas de heap (árvores binárias). --- ### **Algoritmos de Busca**
1. **Busca Binária** - **Uso**: Localizar elementos em listas ordenadas. - **Descrição**: Divide a lista ao meio repetidamente para encontrar o valor.
2. **Busca em Profundidade (DFS)** - **Uso**: Explorar grafos ou árvores. Encontrar conexões profundas. - **Descrição**: Visita um nó, vai para o próximo profundidade e retrocede.
3. **Busca em Largura (BFS)** - **Uso**: Encontrar caminhos mais curtos em grafos ou redes sociais. - **Descrição**: Explora todos os nós vizinhos antes de avançar. ---
### **Algoritmos de Grafos**
1. **Dijkstra** - **Uso**: Encontrar o caminho mais curto em grafos ponderados (ex.: rotas de GPS). - **Descrição**: Explora todos os caminhos partindo do nó inicial.
2. **A\*** - **Uso**: Encontrar o caminho mais curto com heurística (ex.: jogos e navegação). - **Descrição**: Usa uma combinação de custo real e heurístico.
3. **Kruskal** - **Uso**: Construir árvores geradoras mínimas (ex.: redes elétricas). - **Descrição**: Conecta nós do grafo com as menores arestas sem formar ciclos.
4. **Prim** - **Uso**: Outra abordagem para árvores geradoras mínimas. - **Descrição**: Conecta progressivamente nós começando de um ponto.
--- ### **Algoritmos de Criptografia**
1. **RSA** - **Uso**: Criptografia de chave pública (ex.: segurança na internet). - **Descrição**: Baseado em fatores primos de números grandes.
2. **SHA-256** - **Uso**: Hashing seguro (ex.: blockchain, senhas). - **Descrição**: Gera uma assinatura única de comprimento fixo.
3. **AES (Advanced Encryption Standard)** - **Uso**: Criptografia de dados (ex.: Wi-Fi, bancos de dados). - **Descrição**: Algoritmo simétrico para segurança de alto desempenho.
--- ### **Algoritmos de Aprendizado de Máquina**
1. **Gradient Descent** - **Uso**: Treinamento de modelos de IA (ex.: regressão, redes neurais). - **Descrição**: Minimiza erros ajustando parâmetros gradualmente.
2. **K-Means** - **Uso**: Agrupamento de dados em clusters semelhantes. - **Descrição**: Divide o espaço de dados em \(k\) grupos baseados em centroides.
3. **Árvore de Decisão** - **Uso**: Classificação e regressão em dados estruturados. - **Descrição**: Cria uma estrutura hierárquica de decisão baseada em atributos.
--- ### **Outros Algoritmos**
1. **Monte Carlo** - **Uso**: Simulação de sistemas complexos (ex.: física, finanças). - **Descrição**: Usa amostragem aleatória para resolver problemas probabilísticos.
2. **Algoritmo de Euclides** - **Uso**: Encontrar o maior divisor comum (MDC) entre dois números. - **Descrição**: Subtrações sucessivas ou divisões para encontrar o MDC.
3. **Fourier Transform (FFT)** - **Uso**: Processamento de sinais (ex.: som, imagem). - **Descrição**: Converte sinais do domínio do tempo para o domínio da frequência.
4. **PageRank** - **Uso**: Classificação de páginas na web (ex.: Google Search). - **Descrição**: Mede a relevância de páginas com base em links recebidos. ---