SlideShare uma empresa Scribd logo
1 de 21
Baixar para ler offline
M´etodos de Ordena¸c˜ao: ShellSort e QuickSort
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
Shell Sort
Quick Sort
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Proposto por Shell em 1959;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Proposto por Shell em 1959;
´E uma extens˜ao do algoritmo de 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
Shell Sort
Proposto por Shell em 1959;
´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao;
Problema com o algoritmo de 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
Shell Sort
Proposto por Shell em 1959;
´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao;
Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao:
Troca itens adjacentes para determinar o ponto de inser¸c˜ao;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Proposto por Shell em 1959;
´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao;
Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao:
Troca itens adjacentes para determinar o ponto de inser¸c˜ao;
S˜ao efetuadas n-1 compara¸c˜oes e movimenta¸c˜oes quando o
menor item est´a na posi¸c˜ao mais `a direita no vetor.
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Proposto por Shell em 1959;
´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao;
Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao:
Troca itens adjacentes para determinar o ponto de inser¸c˜ao;
S˜ao efetuadas n-1 compara¸c˜oes e movimenta¸c˜oes quando o
menor item est´a na posi¸c˜ao mais `a direita no vetor.
O m´etodo de Shell contorna este problema permitindo trocas
de registros distantes um do outro.
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Ao inv´es de possuir apenas uma lista, no shellsort existem
v´arias listas;
Assumindo que existe uma sequencia de n´umeros 12 43 1 6
56 23 52 9.
Esta sequencia (lista) ser´a quebrada em v´arias listas baseada
num “pulo” de um n´umero para outro.
Por exemplo: com pulo valendo 4, teremos os n´umeros
selecionados de 4 em quatro posi¸c˜oes.
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Como escolher o pulo ?
O valor escolhido para o “pulo” muda os valores obtidos na
sequencia e tamb´em ir´a impactar na quantidade de testes de o
algoritmo precisa fazer para encontrar a solu¸c˜ao final;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Como escolher o pulo ?
O valor escolhido para o “pulo” muda os valores obtidos na
sequencia e tamb´em ir´a impactar na quantidade de testes de o
algoritmo precisa fazer para encontrar a solu¸c˜ao final;
Existem alguns estudos na literatura para obter uma solu¸c˜ao
´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Como escolher o pulo ?
O valor escolhido para o “pulo” muda os valores obtidos na
sequencia e tamb´em ir´a impactar na quantidade de testes de o
algoritmo precisa fazer para encontrar a solu¸c˜ao final;
Existem alguns estudos na literatura para obter uma solu¸c˜ao
´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”;
No nosso estudo, utilizaremos uma forma f´acil de escolher o
valor de pulo e que ´e claro, n˜ao ser a melhor solu¸c˜ao poss´ıvel;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Como escolher o pulo ?
O valor escolhido para o “pulo” muda os valores obtidos na
sequencia e tamb´em ir´a impactar na quantidade de testes de o
algoritmo precisa fazer para encontrar a solu¸c˜ao final;
Existem alguns estudos na literatura para obter uma solu¸c˜ao
´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”;
No nosso estudo, utilizaremos uma forma f´acil de escolher o
valor de pulo e que ´e claro, n˜ao ser a melhor solu¸c˜ao poss´ıvel;
Em virtude da quantidade de compara¸c˜oes e trocas de
elementos ser uma fun¸c˜ao da escolha deste n´umero, a
complexidade deste m´etodo ´e dif´ıcil de representar;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
Como escolher o pulo ?
O valor escolhido para o “pulo” muda os valores obtidos na
sequencia e tamb´em ir´a impactar na quantidade de testes de o
algoritmo precisa fazer para encontrar a solu¸c˜ao final;
Existem alguns estudos na literatura para obter uma solu¸c˜ao
´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”;
No nosso estudo, utilizaremos uma forma f´acil de escolher o
valor de pulo e que ´e claro, n˜ao ser a melhor solu¸c˜ao poss´ıvel;
Em virtude da quantidade de compara¸c˜oes e trocas de
elementos ser uma fun¸c˜ao da escolha deste n´umero, a
complexidade deste m´etodo ´e dif´ıcil de representar;
Sabe-se que a complexidade, no pior caso, para a pior escolha
de valor de “pulo” ser´a O(n2).
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Shell Sort
void shellsort (int a[], int n) {
int i, j, k, h, v;
h=1;
do {
h = 3*h+1;
} while(h < n);
do {
h =h / 3;
for (i=h; i<n; i++) {
v=a[i];
j=i;
while (j>=h && a[j-h]>v){
a[j]=a[j-h];
j=j-h; }
a[j]=v; }
}while (h >1);
}
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Quicksort – Ordena¸c˜ao R´apida
M´etodo proposto por C. A. Hoare, em 1962, na Universidade
de Moscou;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Quicksort – Ordena¸c˜ao R´apida
M´etodo proposto por C. A. Hoare, em 1962, na Universidade
de Moscou;
´E considerado o m´etodo de ordena¸c˜ao mais eficiente at´e hoje;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Quicksort – Ordena¸c˜ao R´apida
M´etodo proposto por C. A. Hoare, em 1962, na Universidade
de Moscou;
´E considerado o m´etodo de ordena¸c˜ao mais eficiente at´e hoje;
Utiliza a estrat´egia “dividir para conquistar”;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Quicksort – Ordena¸c˜ao R´apida
M´etodo proposto por C. A. Hoare, em 1962, na Universidade
de Moscou;
´E considerado o m´etodo de ordena¸c˜ao mais eficiente at´e hoje;
Utiliza a estrat´egia “dividir para conquistar”;
Dividir um problema em subproblemas menores e combinar as
solu¸c˜oes a fim de se obter a solu¸c˜ao do problema original;
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Quicksort – Ordena¸c˜ao R´apida
O m´etodo consiste em:
Escolher um pivˆo inicial x;
Colocar todos itens com chave menor que a de x `a esquerda
de x, formando uma sequˆencia S1;
Colocar todos itens com chave maior que a de x `a direita de x,
formando uma sequˆencia S2;
Isto feito, o mesmo processo ´e aplicado `as sequˆencias S1 e S2,
que por sua vez produzir˜ao novos segmentos;
O processo deve ser aplicado sucessivamente `as sequˆencias
enquanto elas tiverem tamanho 1.
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX
M´etodos de Ordena¸c˜ao
Quicksort – Ordena¸c˜ao R´apida
void quickSort(int vet[], int min, int max){
if(min >= max) //array ordenado
return;
int i = min; j = max;
int pivo = vet[(i+j)/2]; // valor do elemento central
do{ //Dividir em duas partes
while(vet[i] < pivo) i++;
while(vet[j] > pivo) j--;
if(i<=j){
if(vet[i] != vet[j])
troca(&vet[i],&vet[j]);
i++;
j--
}
}while(i<=j);
quickSort(vet,min,j); //ordenar parte esquerda
quickSort(vet,i,max); //ordenar parte direita
}
Silvio Luiz Bragatto Boss UTFPR
M´etodos de Ordena¸c˜ao LATEX

Mais conteúdo relacionado

Mais procurados

Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01Gabriel Demétrio
 
Introdução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e PrologIntrodução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e Prologelliando dias
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoAdriano Teixeira de Souza
 
Interpolação - Parte I - @professorenan
Interpolação - Parte I - @professorenanInterpolação - Parte I - @professorenan
Interpolação - Parte I - @professorenanRenan Gustavo
 
Java script para adultos
Java script para adultosJava script para adultos
Java script para adultosDiego Honorio
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dadosThalita Chaves
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsortFlávio Freitas
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2Rodrigo Paes
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 

Mais procurados (11)

Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01
 
Introdução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e PrologIntrodução a Programação em Lógica e Prolog
Introdução a Programação em Lógica e Prolog
 
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmicoParadigmas de Linguagens de Programação - Escopo estático/dinâmico
Paradigmas de Linguagens de Programação - Escopo estático/dinâmico
 
Interpolação - Parte I - @professorenan
Interpolação - Parte I - @professorenanInterpolação - Parte I - @professorenan
Interpolação - Parte I - @professorenan
 
Java script para adultos
Java script para adultosJava script para adultos
Java script para adultos
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dados
 
Tutorial aed iii 008 - algoritmo de ordenação heapsort
Tutorial aed iii   008 - algoritmo de ordenação heapsortTutorial aed iii   008 - algoritmo de ordenação heapsort
Tutorial aed iii 008 - algoritmo de ordenação heapsort
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Testes de Software - Módulo 2
Testes de Software - Módulo 2Testes de Software - Módulo 2
Testes de Software - Módulo 2
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Aula2
Aula2Aula2
Aula2
 

Destaque (6)

Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Shell sort
Shell sortShell sort
Shell sort
 
Selection Sort
Selection SortSelection Sort
Selection Sort
 
Shell sort[1]
Shell sort[1]Shell sort[1]
Shell sort[1]
 
métodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sortmétodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sort
 

Semelhante a ordenacao shellsort quicksort em C

Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)
Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)
Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)Leinylson Fontinele
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
Algoritmos_de_Ordenacao.ppt
Algoritmos_de_Ordenacao.pptAlgoritmos_de_Ordenacao.ppt
Algoritmos_de_Ordenacao.pptjoaquinaCouve
 
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)Charles Fortes
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and QuickSorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and QuickMichel Alves
 
Curso de Delphi - Lógica de Programação 2
Curso de Delphi - Lógica de Programação 2Curso de Delphi - Lógica de Programação 2
Curso de Delphi - Lógica de Programação 2José Araújo
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoGustavo Carvalho
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Thaci Santos
 
Apresentação análise e simulação de um "Job Shop"
Apresentação análise e simulação de um "Job Shop"Apresentação análise e simulação de um "Job Shop"
Apresentação análise e simulação de um "Job Shop"Paulo Henrique Santini
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009starley lobo
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 

Semelhante a ordenacao shellsort quicksort em C (20)

Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)
Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)
Pesquisa e Ordenação - Aula 08 - Métodos de Ordenação (Shell sort)
 
01
0101
01
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Algoritmos_de_Ordenacao.ppt
Algoritmos_de_Ordenacao.pptAlgoritmos_de_Ordenacao.ppt
Algoritmos_de_Ordenacao.ppt
 
Lógica de programação e algoritmos
Lógica de programação e algoritmosLógica de programação e algoritmos
Lógica de programação e algoritmos
 
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
PE1 - Revisão e Matéria sobre Laços (FOR, WHILE, DO-WHILE)
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
Sorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and QuickSorting Algorithms - Merge and Quick
Sorting Algorithms - Merge and Quick
 
Curso de Delphi - Lógica de Programação 2
Curso de Delphi - Lógica de Programação 2Curso de Delphi - Lógica de Programação 2
Curso de Delphi - Lógica de Programação 2
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenação
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.
 
Algoritmo0
Algoritmo0Algoritmo0
Algoritmo0
 
Apresentação análise e simulação de um "Job Shop"
Apresentação análise e simulação de um "Job Shop"Apresentação análise e simulação de um "Job Shop"
Apresentação análise e simulação de um "Job Shop"
 
53392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-200953392229 apostila-de-algoritmo-2009
53392229 apostila-de-algoritmo-2009
 
000
000000
000
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 

Último

Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*Viviane Moreiras
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPaulaYaraDaasPedro
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptRogrioGonalves41
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfKarinaSouzaCorreiaAl
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptNathaliaFreitas32
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfgerathird
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRafaelaMartins72608
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...AnaAugustaLagesZuqui
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxSilvana Silva
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVlenapinto
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralAntonioVieira539017
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptxMarlene Cunhada
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxFlviaGomes64
 

Último (20)

Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdfAula prática JOGO-Regencia-Verbal-e-Nominal.pdf
Aula prática JOGO-Regencia-Verbal-e-Nominal.pdf
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdfAPRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
APRESENTAÇÃO - BEHAVIORISMO - TEORIA DA APRENDIZAGEM.pdf
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Renascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDFRenascimento Cultural na Idade Moderna PDF
Renascimento Cultural na Idade Moderna PDF
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptxCópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
Cópia de AULA 2- ENSINO FUNDAMENTAL ANOS INICIAIS - LÍNGUA PORTUGUESA.pptx
 
Expansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XVExpansão Marítima- Descobrimentos Portugueses século XV
Expansão Marítima- Descobrimentos Portugueses século XV
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx3 2 - termos-integrantes-da-oracao-.pptx
3 2 - termos-integrantes-da-oracao-.pptx
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 

ordenacao shellsort quicksort em C

  • 1. M´etodos de Ordena¸c˜ao: ShellSort e QuickSort 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
  • 2. M´etodos de Ordena¸c˜ao Sum´ario 1 M´etodos de Ordena¸c˜ao Shell Sort Quick Sort Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 3. M´etodos de Ordena¸c˜ao Shell Sort Proposto por Shell em 1959; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 4. M´etodos de Ordena¸c˜ao Shell Sort Proposto por Shell em 1959; ´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 5. M´etodos de Ordena¸c˜ao Shell Sort Proposto por Shell em 1959; ´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao; Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao: Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 6. M´etodos de Ordena¸c˜ao Shell Sort Proposto por Shell em 1959; ´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao; Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao: Troca itens adjacentes para determinar o ponto de inser¸c˜ao; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 7. M´etodos de Ordena¸c˜ao Shell Sort Proposto por Shell em 1959; ´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao; Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao: Troca itens adjacentes para determinar o ponto de inser¸c˜ao; S˜ao efetuadas n-1 compara¸c˜oes e movimenta¸c˜oes quando o menor item est´a na posi¸c˜ao mais `a direita no vetor. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 8. M´etodos de Ordena¸c˜ao Shell Sort Proposto por Shell em 1959; ´E uma extens˜ao do algoritmo de ordena¸c˜ao por inser¸c˜ao; Problema com o algoritmo de ordena¸c˜ao por inser¸c˜ao: Troca itens adjacentes para determinar o ponto de inser¸c˜ao; S˜ao efetuadas n-1 compara¸c˜oes e movimenta¸c˜oes quando o menor item est´a na posi¸c˜ao mais `a direita no vetor. O m´etodo de Shell contorna este problema permitindo trocas de registros distantes um do outro. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 9. M´etodos de Ordena¸c˜ao Shell Sort Ao inv´es de possuir apenas uma lista, no shellsort existem v´arias listas; Assumindo que existe uma sequencia de n´umeros 12 43 1 6 56 23 52 9. Esta sequencia (lista) ser´a quebrada em v´arias listas baseada num “pulo” de um n´umero para outro. Por exemplo: com pulo valendo 4, teremos os n´umeros selecionados de 4 em quatro posi¸c˜oes. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 10. M´etodos de Ordena¸c˜ao Shell Sort Como escolher o pulo ? O valor escolhido para o “pulo” muda os valores obtidos na sequencia e tamb´em ir´a impactar na quantidade de testes de o algoritmo precisa fazer para encontrar a solu¸c˜ao final; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 11. M´etodos de Ordena¸c˜ao Shell Sort Como escolher o pulo ? O valor escolhido para o “pulo” muda os valores obtidos na sequencia e tamb´em ir´a impactar na quantidade de testes de o algoritmo precisa fazer para encontrar a solu¸c˜ao final; Existem alguns estudos na literatura para obter uma solu¸c˜ao ´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 12. M´etodos de Ordena¸c˜ao Shell Sort Como escolher o pulo ? O valor escolhido para o “pulo” muda os valores obtidos na sequencia e tamb´em ir´a impactar na quantidade de testes de o algoritmo precisa fazer para encontrar a solu¸c˜ao final; Existem alguns estudos na literatura para obter uma solu¸c˜ao ´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”; No nosso estudo, utilizaremos uma forma f´acil de escolher o valor de pulo e que ´e claro, n˜ao ser a melhor solu¸c˜ao poss´ıvel; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 13. M´etodos de Ordena¸c˜ao Shell Sort Como escolher o pulo ? O valor escolhido para o “pulo” muda os valores obtidos na sequencia e tamb´em ir´a impactar na quantidade de testes de o algoritmo precisa fazer para encontrar a solu¸c˜ao final; Existem alguns estudos na literatura para obter uma solu¸c˜ao ´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”; No nosso estudo, utilizaremos uma forma f´acil de escolher o valor de pulo e que ´e claro, n˜ao ser a melhor solu¸c˜ao poss´ıvel; Em virtude da quantidade de compara¸c˜oes e trocas de elementos ser uma fun¸c˜ao da escolha deste n´umero, a complexidade deste m´etodo ´e dif´ıcil de representar; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 14. M´etodos de Ordena¸c˜ao Shell Sort Como escolher o pulo ? O valor escolhido para o “pulo” muda os valores obtidos na sequencia e tamb´em ir´a impactar na quantidade de testes de o algoritmo precisa fazer para encontrar a solu¸c˜ao final; Existem alguns estudos na literatura para obter uma solu¸c˜ao ´otima do algoritmo em fun¸c˜ao da escolha do valor de “pulo”; No nosso estudo, utilizaremos uma forma f´acil de escolher o valor de pulo e que ´e claro, n˜ao ser a melhor solu¸c˜ao poss´ıvel; Em virtude da quantidade de compara¸c˜oes e trocas de elementos ser uma fun¸c˜ao da escolha deste n´umero, a complexidade deste m´etodo ´e dif´ıcil de representar; Sabe-se que a complexidade, no pior caso, para a pior escolha de valor de “pulo” ser´a O(n2). Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 15. M´etodos de Ordena¸c˜ao Shell Sort void shellsort (int a[], int n) { int i, j, k, h, v; h=1; do { h = 3*h+1; } while(h < n); do { h =h / 3; for (i=h; i<n; i++) { v=a[i]; j=i; while (j>=h && a[j-h]>v){ a[j]=a[j-h]; j=j-h; } a[j]=v; } }while (h >1); } Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 16. M´etodos de Ordena¸c˜ao Quicksort – Ordena¸c˜ao R´apida M´etodo proposto por C. A. Hoare, em 1962, na Universidade de Moscou; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 17. M´etodos de Ordena¸c˜ao Quicksort – Ordena¸c˜ao R´apida M´etodo proposto por C. A. Hoare, em 1962, na Universidade de Moscou; ´E considerado o m´etodo de ordena¸c˜ao mais eficiente at´e hoje; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 18. M´etodos de Ordena¸c˜ao Quicksort – Ordena¸c˜ao R´apida M´etodo proposto por C. A. Hoare, em 1962, na Universidade de Moscou; ´E considerado o m´etodo de ordena¸c˜ao mais eficiente at´e hoje; Utiliza a estrat´egia “dividir para conquistar”; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 19. M´etodos de Ordena¸c˜ao Quicksort – Ordena¸c˜ao R´apida M´etodo proposto por C. A. Hoare, em 1962, na Universidade de Moscou; ´E considerado o m´etodo de ordena¸c˜ao mais eficiente at´e hoje; Utiliza a estrat´egia “dividir para conquistar”; Dividir um problema em subproblemas menores e combinar as solu¸c˜oes a fim de se obter a solu¸c˜ao do problema original; Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 20. M´etodos de Ordena¸c˜ao Quicksort – Ordena¸c˜ao R´apida O m´etodo consiste em: Escolher um pivˆo inicial x; Colocar todos itens com chave menor que a de x `a esquerda de x, formando uma sequˆencia S1; Colocar todos itens com chave maior que a de x `a direita de x, formando uma sequˆencia S2; Isto feito, o mesmo processo ´e aplicado `as sequˆencias S1 e S2, que por sua vez produzir˜ao novos segmentos; O processo deve ser aplicado sucessivamente `as sequˆencias enquanto elas tiverem tamanho 1. Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX
  • 21. M´etodos de Ordena¸c˜ao Quicksort – Ordena¸c˜ao R´apida void quickSort(int vet[], int min, int max){ if(min >= max) //array ordenado return; int i = min; j = max; int pivo = vet[(i+j)/2]; // valor do elemento central do{ //Dividir em duas partes while(vet[i] < pivo) i++; while(vet[j] > pivo) j--; if(i<=j){ if(vet[i] != vet[j]) troca(&vet[i],&vet[j]); i++; j-- } }while(i<=j); quickSort(vet,min,j); //ordenar parte esquerda quickSort(vet,i,max); //ordenar parte direita } Silvio Luiz Bragatto Boss UTFPR M´etodos de Ordena¸c˜ao LATEX