Escolar Documentos
Profissional Documentos
Cultura Documentos
1.INTRODUÇÃO .........................................................................................................4
2.OBJETIVO ................................................................................................................6
2.1 Objetivos específicos ................................................................................................................. 6
3.REFERENCIAL TEORICO .......................................................................................7
3.1 Bubble Sort ................................................................................................................................... 7
4.DESENVOLVIMENTO ............................................................................................10
5.RESULTADOS E DISCUSSÃO ..............................................................................16
5.1 Bubble Sort ................................................................................................................................. 16
1. INTRODUÇÃO.
Quanto mais a tecnologia vai sendo melhorada, mais espaço ela ganha dentro
do mercado, um grande exemplo de área dominada pela tecnologia são os controles
de estoque de grandes e pequenas empresas, que vem utilizando cada vez mais os
computadores, e dentre as tecnologias mais utilizadas estão os programas que fazem
o armazenamento de dados, porem estes programas precisam armazenar cada vez
mais dados, e quando se está armazenando quantidades muito grandes de dados,
manter a organização dos dados manualmente acaba se tornando uma tarefa muito
difícil e até mesmo inviável. Assim surgiu a necessidade de desenvolver métodos que
realizem a organização destes dados de forma automática, e é exatamente para isso
que servem os algoritmos de ordenação.
O Bubble Sort percorre o vetor de dois em dois itens e faz a comparação entre
eles, e troca eles de lugar quando necessário realizando dessa forma ordenação.
Segundo Robson (2012) “O algoritmo Bubble Sort percorre todo o vetor diversas
vezes, por isso, não é recomendado o uso dele para aplicações que requerem
velocidade ou trabalhem com uma grande quantidade de dados”.
Segundo Farias (2014) “A ideia básica do Merge Sort é criar uma sequência
ordenada a partir de duas outras também ordenadas. Para isso, o algoritmo 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 de quatro elementos, e assim por diante, até ter toda a
sequência ordenada”.
6
2. OBJETIVO
3.REFERENCIAL TEÓRICO.
3.1.Bubble Sort.
Para ordenar uma lista, o Bubble Sort precisa percorrer o vetor várias vezes,
oque acaba sendo muito ruim com quantidades de dados muito grandes.
3.2.Merge Sort
3.3.Selection Sort.
Segundo Ronaldo (2015) " No Insertion Sort, é possível perceber uma ordenação
muito simples, já no Selection Sort, a implementação se torna ainda mais simples,
entretanto se perde muito a respeito do desempenho do algoritmo".
Segundo Ronaldo (2015)" O Selection Sort é um algoritmo que tem como principal
objetivo, passar o menor valor para a primeira posição, (dependendo da ordenação
desejada, pode ser o maior valor). Para que possa ocorrer, o algoritmo percorra todos
os elementos procurando um menor valor, só aí ele é direcionado para a primeira
posição, repetindo essa tarefa para todos os elementos".
4.DESENVOLVIMENTO.
Com o uso do MySQL foi criado um banco de dados com 3 colunas, uma para
o id, uma para o nome da imagem e uma para armazenar a imagem em si, foram
utilizadas 1000 imagens aleatórias obtidas a partir do google imagens, as imagens
utilizadas foram convertidas em Blob para que pudessem ser inseridas dentro do
banco de dados.
O programa possui uma única janela, e dentro dela temos uma tabela que
recebe e mostra os dados, um botão para que seja realizada a consulta dos dados,
três botões que acionam os algoritmos de ordenação e um JLabel que recebe o tempo.
Figura 5 : janela.
O tempo é contado pela classe de tempo, essa classe é ativada toda vez que
se realiza uma ordenação, por um método que está dentro dos botões de ordenação
.
mais rápido a lista, com o tempo de ordenação sendo de 15ms, em seguida vem o
Bubble Sort que levou 46ms e por ultimo temos o Selection Sort que levou 58ms para
realizar a ordenação.
16
5.RESULTADOS E DISCUSSÃO.
5.1.Bubble Sort.
return Bubble(listBolha);
imgb x = listBolha.get(j);
imgb y = listBolha.get(j+1);
imgb z = listBolha.get(j);
17
listBolha.set(j,listBolha.get(j+1));
listBolha.set(j+1,z);
return listBolha;
BubbleSort
Elementos Média do tempo (ms) Menor tempo (ms)
100 7,7ms 3ms
200 8,2ms 4ms
1000 22,1ms 15ms
Tabela1 : Resultados obtidos com BubbleSort.
5.2.Merge Sort
Segundo Farias (2014) “A ideia básica do Merge Sort é criar uma sequência
ordenada a partir de duas outras também ordenadas. Para isso, o algoritmo 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 de quatro elementos, e assim por diante, até ter toda a
sequência ordenada”.
18
Merge(listMerge, me + 1, f);
int i = in;
int j = me + 1;
imgb x = listMerge.get(i);
imgb y = listMerge.get(j);
if (x.getNome().compareToIgnoreCase(y.getNome()) <= 0) {
lst.add(x);
i++;
19
}else{
lst.add(y);
j++;
lst.add(listMerge.get(i));
i++;
while (j <= f) {
lst.add(listMerge.get(j));
j++;
return listMerge;
MergeSort
Elementos Média do tempo (ms) Menor tempo (ms)
100 4,7ms 0ms
200 5,6ms 0ms
1000 10,2ms 0ms
Tabela2 : Resultados obtidos com MergeSort.
5.3.SelectionSort.
int im=i;
imgb x = listSelection.get(j);
if (x.getNome().compareToIgnoreCase(indiceMinimo.getNome()) <= 0) {
im = j;
imgb y = listSelection.get(im);
listSelection.set(im,listSelection.get(i));
21
listSelection.set(i,y);
return listSelection;
SelectionSort
Elementos Média do tempo (ms) Menor tempo (ms)
100 6,6ms 2ms
200 7,2ms 4ms
1000 30,4ms 15ms
Tabela3 : Resultados obtidos com SelectionSort.
Por meio da analise dos resultados dos testes feitos podemos observar que o
método MergeSort foi o que teve um melhor desempenho em todos os 3 casos, pois
obteve os menores valores de tempo, O BubbleSort perdeu para o MergeSort em
todos os casos, porem ganhou do SelectionSort somente na ordenação de 1000
imagens nos casos de 100 e 200 imagens o método selection se saiu melhor que o
Bubble. Outra coisa que pode ser observada é que o BubbleSort e O SelectionSort
possuem o mesmo tempo mínimo de ordenação com as 1000 imagens.
6.CONSIDERAÇÕES FINAIS.
Com este trabalho foi possível ver o que são os algoritmos em si, e que eles
são uma parte essencial da programação, e são também muito importantes para o
desenvolvimento da mesma, vimos também sobre os algoritmos de ordenação, pra
que eles servem e o quanto eles são importantes para a programação atual, pois
graças a eles fica muito mais fácil de se organizar uma tabela que possui grandes
quantidades de itens, e isso facilita muito a realização de buscas e outras coisas.
7.REFERENCIAS BIBLIOGRÁFICAS.
8.CODIGO FONTE.
8.1.BubbleSort.
package DAO;
import BEAN.imgb;
import java.util.ArrayList;
return selection(listSelection);
int im=i;
imgb x = listSelection.get(j);
if (x.getNome().compareToIgnoreCase(indiceMinimo.getNome()) <= 0) {
im = j;
imgb y = listSelection.get(im);
listSelection.set(im,listSelection.get(i));
listSelection.set(i,y);
return listSelection;
25
8.2.MergeSort.
package DAO;
import BEAN.imgb;
import java.util.ArrayList;
Merge(listMerge, me + 1, f);
int i = in;
int j = me + 1;
imgb x = listMerge.get(i);
imgb y = listMerge.get(j);
26
if (x.getNome().compareToIgnoreCase(y.getNome()) <= 0) {
lst.add(x);
i++;
}else{
lst.add(y);
j++;
lst.add(listMerge.get(i));
i++;
while (j <= f) {
lst.add(listMerge.get(j));
j++;
return listMerge;
}
27
8.3.SelectionSort.
package DAO;
import BEAN.imgb;
import java.util.ArrayList;
return selection(listSelection);
int im=i;
imgb x = listSelection.get(j);
if (x.getNome().compareToIgnoreCase(indiceMinimo.getNome()) <= 0) {
im = j;
imgb y = listSelection.get(im);
listSelection.set(im,listSelection.get(i));
listSelection.set(i,y);
return listSelection;
} }