O Desenvolvimento de sistema para análise de performance de algoritmos de ordenação de dados
Por: Sara • 24/12/2018 • 6.291 Palavras (26 Páginas) • 503 Visualizações
...
escolhida nesse projeto, o Java. Sua compreensão manual é muito complexo e seria necessário muita pesquisa para ser feita a mão, após muita pesquisa de implementação e como o Buuble Sort funciona, tivemos muita dificuldade em implementa-la na linguagem Java, pois a preenchemos com dados de um banco de dados, através de um vetor. Para uma visão mais ampla desse algoritmo de ordenação, está seguinte forma em linguagem:
public Vector<Vector> bubbleSort(Vector<Vector> Orde) {
(Aqui é o nome e o parametro do método, como observação passamos como parametro um Vector, aonde estão os dados a serem passados, assim também como seu retorno)
for (int i = Orde.size(); i >= 1; i--) {
( Aqui começa o primeiro laço para dar apoio ao decorrer do vetor, Controlando o índice)
for (int j = 1; j < i; j++) {
if (Integer.parseInt(Orde.get(j - 1).get(0).toString()) > Integer.parseInt(Orde.get(j).get(0).toString())) {
(Nesse ’If’ ele faz a comparação do elemento maior para o menor para a ordenação necessária, alterando e mudando valores de respectivas posições)
Vector aux = Orde.get(j);
(Nessa linha ele criar uma variável auxiliar para guardar o elemento proposto no índice do ’If’)
Orde.set(j,Orde.get(j-1));
Orde.set(j-1,aux);
( E aqui ele termina a ordenação e pula para o próximo elemento do ’for’)
}
}
}
return Orde;
( No codigo ’Return Orde’, ele retorna todos os dados ordenados em um vetor)
}
Assim como no BubbleSort, o MergeSort teve uma grande necessidade de pesquisa e esforço para sua implementação, como sendo um dos algoritmos de ordenação mais complexos e elaborado, suas desvantagens faz jus ao esforço dado para ser usado, Merge Sort divide a sequência original em pares de dados, agrupa estes pares na ordem desejada; depois as agrupa as sequências de pares já ordenados, formando uma nova sequência ordenada.Para uma visão mais ampla desse algoritmo de ordenação, está seguinte forma em linguagem :
public void merge(Vector<Vector> Orde, int l, int m, int r)
( Nesta Linha está a chamada do método assim como seus parâmetros e retorno, percebe-se que passamos um vector e 3 variáveis de inteiro para que fosse utilizadas na operação de ordenação)
{
int n1 = m - l + 1;
int n2 = r - m;
Vector L[] = new Vector [n1];
Vector R[] = new Vector [n2];
for (int i=0; i<n1; ++i)
L[i] = Orde.get(l + i);
for (int j=0; j<n2; ++j)
R[j] = Orde.get(m + 1 + j);
int i = 0, j = 0;
int k = l;
while (i < n1 && j < n2)
{
if (Integer.parseInt(L[i].get(0).toString()) <= Integer.parseInt(R[j].get(0).toString()))
{
Orde.set(k, L[i]);
i++;
}
else
{
Orde.set(k, R[j]);
j++;
}
k++;
}
while (i < n1)
{
Orde.set(k, L[i]);
i++;
k++;
}
while (j < n2){
j++;
k++;
}
}
( Na chamado Método Merge que faz parte do algoritmo de ordenação MergeSort, como um princípio chamativo e com destaque diferencias dentre outros é o "Dividir e Conquistar", por esse motivo temos dois métodos diferentes, no Merge seria a parte de dividir, ou seja, aqui ele dividido a sub conjuntos dos elementos do vetor e ordena)
public Vector<Vector> sort (Vector<Vector> Orde){
Orde = sort(Orde, 0, Orde.size()-1);
return Orde;
}
Vector<Vector> sort(Vector<Vector> Orde, int l, int r){
if (l < r)
{
int m = (l+r)/2;
sort(Orde, l, m);
sort(Orde , m+1, r);
merge(Orde, l, m, r);
}
return Orde;
}
( No Método Sort é onde ele recebe os dados e combina com os outros dados, através da recursividade para ser efetuada a ordenação passando os dados para o MergeSort)
E ao último algoritmo de ordenação implementado foi o SelectionSort, que se baseia em passar sempre o menor valor dos elementos obtidos para a primeira posição, e depois o segundo valor, repetindo isso sucessivamente até o fim dos elementos que percorre pelo algoritmo. Para esse processo ocorra ele compara com os elementos a partir da sua direita, quando encontrado
...