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

Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Susana Stoffel
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfManuais Formação
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniCassio Meira Jr.
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfHenrique Pontes
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxIsabelaRafael2
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 

Último (20)

Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.Família de palavras.ppt com exemplos e exercícios interativos.
Família de palavras.ppt com exemplos e exercícios interativos.
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
UFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdfUFCD_10392_Intervenção em populações de risco_índice .pdf
UFCD_10392_Intervenção em populações de risco_índice .pdf
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e TaniModelos de Desenvolvimento Motor - Gallahue, Newell e Tani
Modelos de Desenvolvimento Motor - Gallahue, Newell e Tani
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdfBRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
BRASIL - DOMÍNIOS MORFOCLIMÁTICOS - Fund 2.pdf
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptxApostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
Apostila da CONQUISTA_ para o 6ANO_LP_UNI1.pptx
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 

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