Pesquisa e Ordenação

OBJETIVOS
Analisar e selecionar estruturas de dados, suas representações na memória secundária e implementar algoritmos de manipulação. 

Divisão da Área:
  
MÉTODOS DE CLASSIFICAÇÃO DE DADOS

1.1 – Introdução à classificação de dados.
1.1.1 – Formas de apresentação do resultado.
1.2 – Famílias de métodos de classificação de dados: análise do desempenho.
1.2.1 – Métodos de inserção direta.
1.2.2 – Método dos incrementos decrescentes (“shell sort”).
1.2.3 – Método da bolha (“bubble sort”).
1.2.4 – Método da partição e troca (“quick sort”).
1.2.5 – Método da seleção direta.
1.2.6 – Método da seleção em árvore (“heap sort”).
1.2.7 – Métodos de seleção em árvore modificados.
1.2.8 – Método de distribuição de chave.
1.2.9 – Método da intercalação (“merge sort”).
1.2.10- Método do cálculo de endereços (“hash sort”).

COMPRESSÃO DE ARQUIVOS

2.1 – Introdução a compressão de arquivos.
2.2 – Racionalização do projeto dos arquivos.
2.3 – Supressão de caracteres repetidos.
2.4 – Codificação de itens.
2.5 – Compressão de seqüência.
2.6 – Código de Huffman.
2.7 – Código de Pike.

ORGANIZAÇÃO DE ARQUIVOS

3.1 – Dispositivos.
3.2 – Organização seqüencial.
3.3 – Organização seqüencial indexada.
3.4 – Organização indexada.
3.5 – Organização aleatória (“random file”).
3.6 – Tipos mistos de organizações.



Métodos de ordenação e pesquisa

Este artigo apresenta alguns métodos básicos de ordenação e pesquisa de listas que podem ser aplicados a qualquer microcontrolador. Aprenda a criar tais recursos e gerar suas próprias bibliotecas.

Quem trabalha com microcontroladores sabe que, muitas vezes, temos que utilizar algumas listas (matrizes, tabelas, arquivos, etc) presentes em sua memória para realizar determinadas tarefas. Para isso é necessário ordená-las para posterior pesquisa. Este artigo descreverá alguns métodos de ordenação e pesquisa de listas considerados básicos, mas que poderão ser aplicados com qualquer microcontrolador presente no mercado atualmente.

Métodos de ordenação

Quando trabalhamos com listas (arquivos), existem ocasiões em que necessitamos ordená-las para facilitar as pesquisas. Podemos ordenar os valores de uma matriz do mais baixo para o mais alto (ordem crescente) ou ainda do mais alto para o mais baixo (ordem decrescente).

Existem alguns métodos (algoritmos) muito utilizados para ordenar matrizes (listas e/ou matrizes). São eles: Bubble Sort (ordenação tipo bolha), Select Sort (ordenação por seleção), Shell Sort (ordenação por divisão e inserção) e Quick Sort (ordenação por divisão e conquista). A seguir descreveremos os mesmos.

Ordenação tipo Bubble Sort


O algoritmo Bubble Sort consome tempo e processamento. Apesar de simples, não deve ser utilizado com matrizes ou listas muito extensas para evitar lentidão no processamento.

Seu funcionamento é muito simples. O algoritmo faz um loop (laço) pelos valores da matriz, comparando-os e movendo o maior para a posição anterior. Este método cria uma ordenação decrescente. Para criar uma ordenação crescente, o algoritmo deverá mover o maior valor para a posição posterior, após o elemento testado.