Buscar

Aula16_Metodos_Ordenacao_novo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 35 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Me´todos de Ordenac¸a˜o: Ordenac¸a˜o por Bolha,
Selec¸a˜o Direta e Inserc¸a˜o
Professor:
Silvio Luiz Bragatto Boss
e-mail:
silvioboss@utfpr.edu.br
Universidade Tecnolo´gica Federal do Parana´ - UTFPR
Coordenac¸a˜o de Informa´tica - COINF
Curso de Engenharia de Computac¸a˜o
Disciplina de Estrutura de Dados I
Me´todos de Ordenac¸a˜o
Suma´rio
1 Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Bolhas
Ordenac¸a˜o por Selec¸a˜o Direta
Ordenac¸a˜o por Inserc¸a˜o
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Me´todo de ordenac¸a˜o simples e de entendimento e
implementac¸a˜o fa´ceis;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Me´todo de ordenac¸a˜o simples e de entendimento e
implementac¸a˜o fa´ceis;
Bubblesort esta´ entre os mais conhecidos e difundidos
me´todos de ordenac¸a˜o de arranjos;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Me´todo de ordenac¸a˜o simples e de entendimento e
implementac¸a˜o fa´ceis;
Bubblesort esta´ entre os mais conhecidos e difundidos
me´todos de ordenac¸a˜o de arranjos;
Pore´m na˜o e´ um algoritmo eficiente, e´ estudado para fins de
desenvolvimento de racioc´ınio.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O Princ´ıpio do Bubblesort e´ a troca entre posic¸o˜es
consecutivas, fazendo com que os valores mais altos (ou mais
baixos) “borbulhem” para o final do arranjo (da´ı o nome
Bubblesort);
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O Princ´ıpio do Bubblesort e´ a troca entre posic¸o˜es
consecutivas, fazendo com que os valores mais altos (ou mais
baixos) “borbulhem” para o final do arranjo (da´ı o nome
Bubblesort);
Neste exemplo, vamos ordenar o arranjo em ordem crescente
de valores, consideremos inicialmente um arranjo qualquer
desordenado
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O primeiro passo e´ se fazer a comparac¸a˜o entre os dois
elementos das primeiras posic¸o˜es :
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O primeiro passo e´ se fazer a comparac¸a˜o entre os dois
elementos das primeiras posic¸o˜es :
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O primeiro passo e´ se fazer a comparac¸a˜o entre os dois
elementos das primeiras posic¸o˜es :
Assim verificamos que neste caso os dois primeiros elementos
esta˜o desordenados entre si, logo devemos troca´-los de
posic¸a˜o. E assim continuamos com as comparac¸o˜es dos
elementos subsequentes:
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O primeiro passo e´ se fazer a comparac¸a˜o entre os dois
elementos das primeiras posic¸o˜es :
Assim verificamos que neste caso os dois primeiros elementos
esta˜o desordenados entre si, logo devemos troca´-los de
posic¸a˜o. E assim continuamos com as comparac¸o˜es dos
elementos subsequentes:
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Aqui, mais uma vez, verificamos que os elementos esta˜o
desordenados entre si. Devemos fazer a troca e continuar
nossas comparac¸o˜es ate´ o final do arranjo:
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Aqui, mais uma vez, verificamos que os elementos esta˜o
desordenados entre si. Devemos fazer a troca e continuar
nossas comparac¸o˜es ate´ o final do arranjo:
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Apo´s este primeiro passo, que compreende a primeira
passagem pelo arranjo fazendo as comparac¸o˜es e as trocas
necessa´rias, verificamos que o maior elemento, o nu´mero 5, foi
parar na u´ltima posic¸a˜o, seu lugar correto no arranjo
ordenado. Pode-se dizer que o nu´mero 5 ”borbulhou”3 para a
sua posic¸a˜o correta, la´ no final do arranjo.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
O pro´ximo passo agora sera´ repetir nosso processo de
comparac¸o˜es e trocas desde o in´ıcio do arranjo. So´ que dessa
vez o processo na˜o precisara´ comparar o penu´ltimo com o
u´ltimo elemento, pois o u´ltimo nu´mero, o nu´mero 5, esta´ em
sua posic¸a˜o correta no arranjo. Vamos ao processo :
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Novamente se compara os dois primeiros elementos do
arranjo. Neste caso, verificamos que sera´ necessa´ria a troca
de lugares entre os elementos. Em seguida vamos
continuando as comparac¸o˜es ate´ o final
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Agora precisaremos repetir o processo novamente, mas desta
vez, ale´m de na˜o precisarmos levar em considerac¸a˜o o u´ltimo
elemento do arranjo (no caso o nu´mero 5 ) que ja´ esta´
ordenado, tambe´m na˜o precisaremos levar em considerac¸a˜o o
penu´ltimo elemento do arranjo (no caso o nu´mero 4) pois ele
tambe´m esta´ em sua posic¸a˜o correta. Vamos enta˜o continuar
o processo :
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
Mais uma vez o elemento de maior valor, o nu´mero 3,
”borbulhou”para sua posic¸a˜o correta. Basta agora mais um
processo para que todo o arranjo fique ordenado.
Neste caso o arranjo ja´ esta´ ordenado devido as disposic¸o˜es
iniciais de nosso arranjo, mas na˜o e´ poss´ıvel nosso algoritmo
saber se todo o arranjo esta´ ordenado ou na˜o, e e´ exatamente
por isso que precisaremos realizar mais um processo.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
BubbleSort - Ordenac¸a˜o por Bolhas
programa ordena;
var
vetor1 : vetor [1..5] de inteiros;
i, j, aux: inteiro;
inı´cio
para i de 1 ate´ 5 passo 1 fac¸a
para j de 1 ate´ 5-i passo 1 fac¸a
se vetor1[j] > vetor1[j+1] ent~ao
aux <-- vetor1[j];
vetor1[j] <-- vetor1[j+1];
vetor1[j+1] <-- aux;
fim_se;
fim_para;
fim_para;
fim.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
O meto´do de ordenac¸a˜o por Selec¸a˜o Direta e´ levemente mais
eficiente que o me´todo Bubblesort, ainda que se trate de um
algoritmo apenas para estudo e ordenac¸a˜o de pequenos
arranjos;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
O meto´do de ordenac¸a˜o por Selec¸a˜o Direta e´ levemente mais
eficiente que o me´todo Bubblesort, ainda que se trate de um
algoritmo apenas para estudo e ordenac¸a˜o de pequenos
arranjos;
A lo´gica consiste em se varrer o arranjo comparando todos os
seus elementos com o primeiro;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
O meto´do de ordenac¸a˜o por Selec¸a˜o Direta e´ levemente mais
eficiente que o me´todo Bubblesort, ainda que se trate de um
algoritmo apenas para estudo e ordenac¸a˜o de pequenos
arranjos;
A lo´gica consiste em se varrer o arranjo comparando todos os
seus elementos com o primeiro;
Caso o primeiro elemento esteja desordenado em relac¸a˜o ao
elemento que esta´ sendo comparado com ele no momento, e´
feita a troca;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos deOrdenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
O meto´do de ordenac¸a˜o por Selec¸a˜o Direta e´ levemente mais
eficiente que o me´todo Bubblesort, ainda que se trate de um
algoritmo apenas para estudo e ordenac¸a˜o de pequenos
arranjos;
A lo´gica consiste em se varrer o arranjo comparando todos os
seus elementos com o primeiro;
Caso o primeiro elemento esteja desordenado em relac¸a˜o ao
elemento que esta´ sendo comparado com ele no momento, e´
feita a troca;
Ao se chegar ao final do arranjo, teremos o menor valor ou o
maior, conforme a comparac¸a˜o na primeira posic¸a˜o do arranjo.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Embora o nu´mero de comparac¸o˜es para o me´todo da bolha e
para o me´todo de selec¸a˜o direta seja o mesmo, o nu´mero de
trocas, no caso me´dio, e´ menor para a ordenac¸a˜o por selec¸a˜o.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Neste exemplo vamos ordenar o arranjo em ordem crescente
de valores. Consideremos inicialmente um arranjo qualquer
desordenado:
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
O passo inicial a se dar e´ comparar o primeiro elemento com
todos os outros elementos do arranjo. Comec¸amos
comparando os dois primeiros elementos :
Verifica-se que os dois primeiros elementos esta˜o
desordenados entre si;
Logo devemos troca´-los de posic¸a˜o;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Em seguida continuamos a comparar os outros elementos com
o elemento da primeira posic¸a˜o.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Aqui, mais uma vez, verificamos que os elementos esta˜o
desordenados entre si;
A troca e´ feita e as comparac¸o˜es continuam.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Neste caso percebemos que os elementos ja´ esta˜o ordenados
entre si;
Na˜o e´ feita a troca e se continua as comparac¸o˜es.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Apo´s essa primeira etapa, fizemos com que o menor elemento
do arranjo fosse deslocado para primeira posic¸a˜o;
O pro´ximo passo sera´ repetir este mesmo procedimento, so´
que desta vez comparando os elementos do arranjo com o
elemento que esta´ na segunda posic¸a˜o, ja´ que a primeira
posic¸a˜o ja´ foi ordenada.
Neste caso e´ feita a troca pois os elementos esta˜o
desordenados entre si;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
O procedimento segue.
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Perceba que desta vez o segundo menor elemento do arranjo
foi deslocado para a segunda posic¸a˜o;
O processo continua com a mesma lo´gica, sem comparar
agora o primeiro e o segundo elementos do arranjo, pois eles
ja´ esta˜o em suas posic¸o˜es corretas;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
Nestes passos o elemento de menor valor, o nu´mero 3, foi
deslocado para sua posic¸a˜o correta. Mais um processo agora e
todo o arranjo ficara´ ordenado:
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Selec¸a˜o Direta
programa ordena;
var
vetA : vetor [1..5] de inteiros;
i, j, aux: inteiro;
inı´cio
para i de 1 ate´ 4 passo 1 fac¸a
para j de i + 1 ate´ 5 passo 1 fac¸a
se vetA[j] < vetA[i] ent~ao
aux <-- vetA[j];
vetA[j]; <-- vetA[i];
vetA[i]; <-- aux;
fim_se;
fim_para;
fim_para;
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX
Me´todos de Ordenac¸a˜o
Ordenac¸a˜o por Inserc¸a˜o
para j de 2 ate´ n fac¸a
elemento <-- vetor[j];
i<-- j-1;
enquanto i>0 AND vetor[i]>elemento, fac¸a
vetor[i+1] <-- vetor[i];
i<-- i-1;
fim_enquanto
vetor[i+1] <- elemento;
fim_para
Silvio Luiz Bragatto Boss UTFPR
Me´todos de Ordenac¸a˜o LATEX

Outros materiais