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