métodos ordenação C, bolha, selection sort e insertion sort
Upcoming SlideShare
Loading in...5
×
 

métodos ordenação C, bolha, selection sort e insertion sort

on

  • 2,653 views

Métodos de ordenação, aula.

Métodos de ordenação, aula.

Statistics

Views

Total Views
2,653
Views on SlideShare
2,653
Embed Views
0

Actions

Likes
0
Downloads
48
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

métodos ordenação C, bolha, selection sort e insertion sort métodos ordenação C, bolha, selection sort e insertion sort Presentation Transcript

  • M´etodos de Ordena¸c˜ao: Ordena¸c˜ao por Bolha, Sele¸c˜ao Direta e Inser¸c˜ao Professor: Silvio Luiz Bragatto Boss e-mail: silvioboss@utfpr.edu.br Universidade Tecnol´ogica Federal do Paran´a - UTFPR Coordenac¸˜ao de Inform´atica - COINF Curso de Engenharia de Computac¸˜ao Disciplina de Estrutura de Dados I
  • M´etodos de Ordena¸c˜ao Sum´ario 1 M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Bolhas Ordena¸c˜ao por Sele¸c˜ao Direta Ordena¸c˜ao por Inser¸c˜ao Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas M´etodo de ordena¸c˜ao simples e de entendimento e implementa¸c˜ao f´aceis; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas M´etodo de ordena¸c˜ao simples e de entendimento e implementa¸c˜ao f´aceis; Bubblesort est´a entre os mais conhecidos e difundidos m´etodos de ordena¸c˜ao de arranjos; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas M´etodo de ordena¸c˜ao simples e de entendimento e implementa¸c˜ao f´aceis; Bubblesort est´a entre os mais conhecidos e difundidos m´etodos de ordena¸c˜ao de arranjos; Por´em n˜ao ´e um algoritmo eficiente, ´e estudado para fins de desenvolvimento de racioc´ınio. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O Princ´ıpio do Bubblesort ´e a troca entre posi¸c˜oes 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 M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O Princ´ıpio do Bubblesort ´e a troca entre posi¸c˜oes 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 M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O primeiro passo ´e se fazer a compara¸c˜ao entre os dois elementos das primeiras posi¸c˜oes : Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O primeiro passo ´e se fazer a compara¸c˜ao entre os dois elementos das primeiras posi¸c˜oes : Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O primeiro passo ´e se fazer a compara¸c˜ao entre os dois elementos das primeiras posi¸c˜oes : Assim verificamos que neste caso os dois primeiros elementos est˜ao desordenados entre si, logo devemos troc´a-los de posi¸c˜ao. E assim continuamos com as compara¸c˜oes dos elementos subsequentes: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O primeiro passo ´e se fazer a compara¸c˜ao entre os dois elementos das primeiras posi¸c˜oes : Assim verificamos que neste caso os dois primeiros elementos est˜ao desordenados entre si, logo devemos troc´a-los de posi¸c˜ao. E assim continuamos com as compara¸c˜oes dos elementos subsequentes: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas Aqui, mais uma vez, verificamos que os elementos est˜ao desordenados entre si. Devemos fazer a troca e continuar nossas compara¸c˜oes at´e o final do arranjo: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas Aqui, mais uma vez, verificamos que os elementos est˜ao desordenados entre si. Devemos fazer a troca e continuar nossas compara¸c˜oes at´e o final do arranjo: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas Ap´os este primeiro passo, que compreende a primeira passagem pelo arranjo fazendo as compara¸c˜oes e as trocas necess´arias, verificamos que o maior elemento, o n´umero 5, foi parar na ´ultima posi¸c˜ao, seu lugar correto no arranjo ordenado. Pode-se dizer que o n´umero 5 ”borbulhou”3 para a sua posi¸c˜ao correta, l´a no final do arranjo. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas O pr´oximo passo agora ser´a repetir nosso processo de compara¸c˜oes e trocas desde o in´ıcio do arranjo. S´o que dessa vez o processo n˜ao precisar´a comparar o pen´ultimo com o ´ultimo elemento, pois o ´ultimo n´umero, o n´umero 5, est´a em sua posi¸c˜ao correta no arranjo. Vamos ao processo : Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas Novamente se compara os dois primeiros elementos do arranjo. Neste caso, verificamos que ser´a necess´aria a troca de lugares entre os elementos. Em seguida vamos continuando as compara¸c˜oes at´e o final Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas Agora precisaremos repetir o processo novamente, mas desta vez, al´em de n˜ao precisarmos levar em considera¸c˜ao o ´ultimo elemento do arranjo (no caso o n´umero 5 ) que j´a est´a ordenado, tamb´em n˜ao precisaremos levar em considera¸c˜ao o pen´ultimo elemento do arranjo (no caso o n´umero 4) pois ele tamb´em est´a em sua posi¸c˜ao correta. Vamos ent˜ao continuar o processo : Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas Mais uma vez o elemento de maior valor, o n´umero 3, ”borbulhou”para sua posi¸c˜ao correta. Basta agora mais um processo para que todo o arranjo fique ordenado. Neste caso o arranjo j´a est´a ordenado devido as disposi¸c˜oes iniciais de nosso arranjo, mas n˜ao ´e poss´ıvel nosso algoritmo saber se todo o arranjo est´a ordenado ou n˜ao, e ´e exatamente por isso que precisaremos realizar mais um processo. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao BubbleSort - Ordena¸c˜ao por Bolhas programa ordena; var vetor1 : vetor [1..5] de inteiros; i, j, aux: inteiro; in´ıcio para i de 1 at´e 5 passo 1 fa¸ca para j de 1 at´e 5-i passo 1 fa¸ca 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 M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta O met´odo de ordena¸c˜ao por Sele¸c˜ao Direta ´e levemente mais eficiente que o m´etodo Bubblesort, ainda que se trate de um algoritmo apenas para estudo e ordena¸c˜ao de pequenos arranjos; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta O met´odo de ordena¸c˜ao por Sele¸c˜ao Direta ´e levemente mais eficiente que o m´etodo Bubblesort, ainda que se trate de um algoritmo apenas para estudo e ordena¸c˜ao de pequenos arranjos; A l´ogica consiste em se varrer o arranjo comparando todos os seus elementos com o primeiro; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta O met´odo de ordena¸c˜ao por Sele¸c˜ao Direta ´e levemente mais eficiente que o m´etodo Bubblesort, ainda que se trate de um algoritmo apenas para estudo e ordena¸c˜ao de pequenos arranjos; A l´ogica consiste em se varrer o arranjo comparando todos os seus elementos com o primeiro; Caso o primeiro elemento esteja desordenado em rela¸c˜ao ao elemento que est´a sendo comparado com ele no momento, ´e feita a troca; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta O met´odo de ordena¸c˜ao por Sele¸c˜ao Direta ´e levemente mais eficiente que o m´etodo Bubblesort, ainda que se trate de um algoritmo apenas para estudo e ordena¸c˜ao de pequenos arranjos; A l´ogica consiste em se varrer o arranjo comparando todos os seus elementos com o primeiro; Caso o primeiro elemento esteja desordenado em rela¸c˜ao ao elemento que est´a 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 compara¸c˜ao na primeira posi¸c˜ao do arranjo. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Embora o n´umero de compara¸c˜oes para o m´etodo da bolha e para o m´etodo de sele¸c˜ao direta seja o mesmo, o n´umero de trocas, no caso m´edio, ´e menor para a ordena¸c˜ao por sele¸c˜ao. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Neste exemplo vamos ordenar o arranjo em ordem crescente de valores. Consideremos inicialmente um arranjo qualquer desordenado: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta O passo inicial a se dar ´e comparar o primeiro elemento com todos os outros elementos do arranjo. Come¸camos comparando os dois primeiros elementos : Verifica-se que os dois primeiros elementos est˜ao desordenados entre si; Logo devemos troc´a-los de posi¸c˜ao; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Em seguida continuamos a comparar os outros elementos com o elemento da primeira posi¸c˜ao. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Aqui, mais uma vez, verificamos que os elementos est˜ao desordenados entre si; A troca ´e feita e as compara¸c˜oes continuam. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Neste caso percebemos que os elementos j´a est˜ao ordenados entre si; N˜ao ´e feita a troca e se continua as compara¸c˜oes. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Ap´os essa primeira etapa, fizemos com que o menor elemento do arranjo fosse deslocado para primeira posi¸c˜ao; O pr´oximo passo ser´a repetir este mesmo procedimento, s´o que desta vez comparando os elementos do arranjo com o elemento que est´a na segunda posi¸c˜ao, j´a que a primeira posi¸c˜ao j´a foi ordenada. Neste caso ´e feita a troca pois os elementos est˜ao desordenados entre si; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta O procedimento segue. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Perceba que desta vez o segundo menor elemento do arranjo foi deslocado para a segunda posi¸c˜ao; O processo continua com a mesma l´ogica, sem comparar agora o primeiro e o segundo elementos do arranjo, pois eles j´a est˜ao em suas posi¸c˜oes corretas; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta Nestes passos o elemento de menor valor, o n´umero 3, foi deslocado para sua posi¸c˜ao correta. Mais um processo agora e todo o arranjo ficar´a ordenado: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Sele¸c˜ao Direta programa ordena; var vetA : vetor [1..5] de inteiros; i, j, aux: inteiro; in´ıcio para i de 1 at´e 4 passo 1 fa¸ca para j de i + 1 at´e 5 passo 1 fa¸ca 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 M´etodos de Ordena¸c˜ao LATEX
  • M´etodos de Ordena¸c˜ao Ordena¸c˜ao por Inser¸c˜ao para j de 2 at´e n fa¸ca elemento <-- vetor[j]; i<-- j-1; enquanto i>0 AND vetor[i]>elemento, fa¸ca vetor[i+1] <-- vetor[i]; i<-- i-1; fim_enquanto vetor[i+1] <- elemento; fim_para Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX