⾕

Computação  |  

Introdução

Em programação, é comum lidarmos com coleções de dados, como listas, vetores ou matrizes.

Para manipular essas estruturas com eficiência, precisamos de algoritmos de busca, que localizam valores específicos, e algoritmos de ordenação, que reorganizam os elementos com base em uma ordem estabelecida (crescente ou decrescente).

Conhecer esses algoritmos é essencial para o desenvolvimento de soluções rápidas, organizadas e eficientes.

Algoritmos de Busca

Busca Linear: A busca linear (ou sequencial) percorre todos os elementos de uma lista até encontrar o valor desejado. É simples, mas pode ser lenta em listas grandes. Exemplo em pseudocódigo:

funcao buscaLinear(lista, valor) {
        para i de 0 até tamanho(lista) - 1 {
                se lista[i] == valor então
                                retornar i // índice encontrado
        }
        retornar -1 // valor não encontrado
}
Complexidade: O melhor caso é O(1) e o pior caso é O(n).

Busca Binária: Só funciona em listas ordenadas. Ela divide a lista ao meio repetidamente até encontrar o valor. Ex.:

funcao buscaBinaria(lista, valor) {
        inicio = 0
        fim = tamanho(lista) - 1
        enquanto inicio <= fim {
                meio = (inicio + fim) / 2
                se lista[meio] == valor então
                                retornar meio
                senao se valor < lista[meio] então
                                fim = meio - 1
                senao
                                inicio = meio + 1
        }
        retornar -1 // valor não encontrado
}

Next