Ordenação de Dados
Um problema muito importante em Computação é a ordenação de dados.
Exemplos...
O Algoritmo da Bolha
int n = 3;
int i, j, aux;
int[] numeros = new int[TAM];
// inicialização de dados
for (i=0; i < TAM; i++)
for (j=i; j < TAM; j++)
if (numeros[i]>numeros[j])
{
aux = numeros[i];
numeros[i] = numeros[j];
numeros[j] = aux;
}
Exercício (parte I)
Defina uma classe, chamada amigo, com os seguintes atributos:
Nome (String)
Telefone (String)
Endereço (String)
Aniversário (String)
CONCEITO DE ID (Identificador Único)
Exercício (parte II)
Crie um vetor de amigos e um programa que leia dados para este
vetor.
Para saber quando parar, o leitor deve escrever um nome invalido (por
exemplo: noname)
Exercício (parte III)
Após terminar a leitura, o programa deverá ordenar automaticamente a
lista de amigos, por ordem alfabética.(o ID é o nome)
Busca Ordenada
Qual a razão de querermos ordenar os dados?...
Busca Binária
Exatamente o mesmo algoritmo que usamos para buscar dados numa
lista telefonica
Busca Binária
private static int busca (int lista [], int numero)
{
int menor = 0;
int maior = lista.length - 1;
int meio;
while( menor <= maior )
{
meio = ( menor + maior ) / 2;
if( lista[ meio ] < numero )
menor = meio + 1;
else if( lista [meio] > numero)
maior = meio - 1;
else
return meio;
}
return -1;
}
Exercicio (parte IV)
Completar o programa da agenda de amigos, fazendo uma leitura de um nome e
em seguida imprimindo os dados desta pessoa. Caso ela não exista na lista,
avisar ao usuário que o nome não consta....
Exercicio (parte V)
Implementar a Busca Binária numa versão recursiva
Download

Parte IV