Algoritmos de Busca e Ordenação em Estruturas de Dados

Classificado em Computação

Escrito em em português com um tamanho de 3,61 KB

Algoritmos de Busca

Busca Sequencial

  • Percorre cada item do vetor até encontrar a informação solicitada.
  • Apresenta baixo desempenho quando se tem uma grande quantidade de registros.
  • Melhor desempenho quando os dados estão ordenados.

Busca Binária

  • Divide o vetor ao meio e compara o elemento central com o procurado.
  • Se o elemento procurado for menor, repete o processo no lado esquerdo; se for maior, repete no lado direito.
  • Os elementos devem estar ordenados.
  • Desempenho melhor que a busca sequencial.

Busca por Interpolação

  • É uma variação da busca binária.
  • Escolhe a próxima posição pesquisada com base em uma estimativa sobre a posição do elemento procurado em relação ao restante do vetor.
  • Pode ser mais eficiente do que a pesquisa binária, se os dados estiverem uniformemente distribuídos.

Gerenciamento de Memória

Alocação Estática

  • Quantidade de memória utilizada é previamente definida, no próprio código.
  • Cada dado tem sua área reservada, e não há variação ao longo da execução do programa.
  • O Sistema Operacional garante que o espaço de memória utilizado por uma variável estática jamais poderá ser utilizado por outra.

Desvantagens

  • Desperdício de espaço na memória em caso de superdimensionamento.
  • Não funcionamento do programa caso haja subdimensionamento.

Alocação Dinâmica

  • Na alocação dinâmica, os espaços são alocados durante a execução do programa.
  • Isto significa que conforme o programa necessitar de memória, alocará os espaços.
  • Não há reserva antecipada de espaços, pelo contrário, o espaço é solicitado sob demanda.
  • O programa é capaz de criar novas variáveis enquanto é executado.

Algoritmos de Ordenação

Insertion Sort

  • Ordena um vetor pela inserção de cada elemento em sua posição correta.
  • Implementação simples.
  • Fácil compreensão.
  • Divide o vetor em duas partições.
  • Baixa eficiência para ordenar muitos elementos.

Bubble Sort

  • Efetua sucessivas comparações de elementos dois a dois, com a consequente troca desses elementos.
  • Mais conhecida dentre as técnicas.
  • Fácil de compreender e de implementar.
  • Baixo desempenho em comparação às outras.

Selection Sort

  • Percorre o vetor e em cada iteração descobre o menor elemento, colocando-o em sua posição definitiva.
  • Simples e de fácil entendimento.
  • Baixo desempenho para ordenar grandes quantidades de informações.

Merge Sort

  • Divide o vetor ao meio, recursivamente, até que o vetor fique com um elemento e estes sejam ordenados e intercalados.
  • Utiliza a técnica da divisão e conquista.
  • O vetor é dividido em duas partes que são ordenadas recursivamente pelo mesmo método.

Quick Sort

  • Assim como o Merge Sort, se baseia no paradigma de dividir e conquistar.
  • Escolhe-se um pivô e separam-se os elementos em 2 partes: os elementos menores que o pivô ficam à esquerda e os maiores à direita.
  • O processo é repetido recursivamente.

Shell Sort

  • As comparações e trocas são feitas baseadas em uma distância determinada (incremento).
  • A distância é reduzida a cada iteração (5, 3, 1).
  • O processo se repete até que a distância seja 1 e as últimas comparações e trocas sejam efetuadas.

Entradas relacionadas: