Algoritmo de Ordenação

2 respostas
Onixx2

Gostaria de um algoritmo semelhante ao de ordenação só que ao invés de organizar ele procurasse por itens repetidos e alterasse para um não existente nesta tabela.
Estou querndo fazer isso com horas e datas, criei um tipo hora e um tipo data, tenho uma tabela com todas as horas e datas e os métodos para trata-los, mas gostaria do algoritmo.

Exmplo:

tenho o array que suporta números de 1 a 40;
[10; 12; 34; 15; 12; 35; 2; 21; 14; 12; 15; 1;]

observe que neste array o numero 15 está repetido e o número 12 está repetido 2 vezes, então preciso de um algoritmo para identifica-los e altera-los para os proximos valores válidos. neste caso, um dos números 15 passaria a ser 3(jah que o número 1 e 2 já existem) um dos números 12 passaria a ser 4 e o outro passaria a ser 5 (jah que o 4 acabou de ser ocupado) dessa forma este array ao ser processado pelo algoritmo passaria a ser

[10; 12; 34; 3; 4; 35; 2; 21; 14; 5; 15; 1;]

observer que a ordenação é descessária.

O maior problema que vejo aqui, é que tenho um arrayList contendo a hora e a data, eu tenho que ordenar as datas e horas de forma que os registros não se choquem…

considere o seguinte arrayList (um array que contem arrays):

[ [ 05/07/2009; 8:00 ]; [ 04/07/2009; 8:00 ];[ 05/07/2009; 8:00 ]; [ 05/07/2009; 8:20 ]]

neste caso o primeiro elemento do array, choca com o terceiro, pois as datas e as horas são iguais.então devo setar um dos valores para a proxima hora válida.

ps.:não se preocupem com a manipulação dos dados, podem apresentar o algoritmo em portugol mesmo.

2 Respostas

aeciovc

ja viu alguns algoritmos de ordenação como SelectSort, BubbleSort, QuickSort, InsertSort??

Onixx2

sim conheço esses algoritmos, aprendi eles na Faculdade, contudo eles são apenas de ordenação, o que eu preciso é um pouco diferente.
Como sempre eu estou dando um jeito, mas, o código está um mangue!!! tenho até vergonha de postar aqui… é um verdadeiro assassinato à linguagem Java, se vocês puderem me ajudar, agradeço.

Criado 18 de junho de 2009
Ultima resposta 19 de jun. de 2009
Respostas 2
Participantes 2