SlideShare uma empresa Scribd logo
1 de 4
Baixar para ler offline
ALGORITMOS E ESTRUTURAS DE DADOS III
                                     Tutorial 2 (usa o compilador de linguagem C Dev-C++ versão 4.9.9.2)




Parte 2 de 3 sobre o algoritmo de ordenação shell (concha) conhecido como Shellsort.
2 O ALGORITMO DE ORDENAÇÃO
    1 INTRODUÇÃO
                                                        SHELLSORT
    Esta série de tutoriais sobre Algoritmos e
    Estruturas de Dados III foi escrita usando o        O sort por inserção é lento porque troca apenas
    Microsoft Windows 7 Ultimate, Microsoft             elementos adjacentes. Por exemplo, se o menor
    Office 2010, Bloodshed Dev-C++ versão 4.9.9.2       elemento estiver no final do arranjo, são
    (pode ser baixado em http://www.bloodshed.net),     necessários N passos para colocá-lo em seu
    referências na internet e notas de aula do          devido lugar. O Shellsort é uma extensão simples
    professor quando estudante. Ela cobre desde os      do sort por inserção, que ganha velocidade por
    algoritmos de ordenação, passando pela pesquisa     permitir a troca de elementos distantes entre si.
    em memória primária e culminando com a
                                                        A ideia é arranjar os dados de tal forma que,
    pesquisa em memória secundária.
                                                        tomando-se seu h-ésimo elemento (a partir de
    Nós entendemos que você já conhece o                qualquer posição), tem-se um arranjo ordenado,
    compilador Dev-C++. No caso de você ainda não o     dito h-ordenado. Falando de outra forma, um
    conhecer, dê uma olhada nos tutoriais Dev-C++       arranjo h-ordenado é composto de h arranjos
    001 a 017, começando pelo Tutorial Dev-C++ -        ordenados, tomados juntos. Através da h-
    001 - Introdução.                                   ordenação para valores grandes de h, pode-se
                                                        mover elementos dentro do arranjo por grandes
    Se não tem problemas com a linguagem C/C++ e        distâncias, e assim ordenar mais facilmente para
    o compilador Dev-C++, então o próximo passo é       valores menores que h. Usando-se este
    saber ler, criar e alterar arquivos em disco        procedimento para qualquer sequência de valores
    usando linguagem C/C++. Se ainda não sabe           que termine no tamanho 1 produzirá um arranjo
    como fazê-lo, dê uma olhada nos tutoriais Dev-      totalmente ordenado.
    C++ 001 e 002, começando pelo Tutorial Dev-C++
    001 – Criação, Leitura e Alteração de Arquivos.     Uma maneira de implementar o Shellsort é, para
                                                        cada     h,     usar    o   sort   de   inserção
    Se sabe todas as coisas anteriores, então a         independentemente em cada um dos h
    próxima etapa é conhecer os algoritmos mais         subarranjos. A escolha dos valores de h pode ser
    básicos de ordenação. Em minhas notas de aula       feita pelo critério de Knuth [Niemann 97] 1, como
    você encontra um material básico, porém             se segue:
    detalhado e com algoritmos resolvidos, dos
    principais métodos de ordenação existentes.         Faça h1 = 1, hs+1 = 3hs +1, e pare com ht quando
                                                        ht + 2 ≥ N.
    Adotaremos o livro Projeto de Algoritmos com
    Implementação em Pascal e C, Editora Cengage        Assim, os valores de h são computados como se
    Learning, de Nivio Ziviani, como livro-texto da     segue:
    disciplina. Nele você encontrará os métodos de
                                                        h1 = 1
    ordenação que iremos estudar.
                                                        h2 = (3 * 1) + 1 = 4
    Seu próximo passo será estudar os algoritmos de
    ordenação por Inserção e por Seleção. Você pode     h3 = (3 * 4) + 1 = 13
    usar os links anteriores (em inglês) ou fazer uso
    do livro-texto.                                     h4 = (3 * 13) + 1 = 40

    Em seguida, você precisa conhecer o algoritmo       h5 = (3 * 40) + 1 = 121
    Shellsort. Para isto, você pode seguir o Tutorial
                                                        h6 = (3 * 121) + 1 = 364 etc.
    AED 001, desta série, e/ou ler o capítulo
    referente no livro-texto.                           Uma propriedade muito importante [Sedgewick
                                                        86]2 é a seguinte:
    Se você estiver lendo este tutorial tenha certeza
    de ter seguido o Tutorial AED 001. Agora que        Shellsort nunca realiza mais do que N3/2
    você seguiu todos os passos até aqui, está pronto   comparações (para os incrementos 1, 4, 13, ...).
    para prosseguir com este tutorial.
                                                        1 Niemann, Thomas. Sorting and searching algorithms: a
                                                        cookbook. http://www.geocities.com/SoHo/2167/book.html.
                                                        2 Sedgewick, Robert. Algorithms. Addison Wesley, 1986.




1
Uma implementação para o Shellsort é vista na            }
    listagem 1 e na listagem 2:                              vet [j + gap] = value;
                                                             }
    2.1 FUNCIONAMENTO DO ALGORITMO                         } while(gap > 1);
                                                       }
    Acompanhe pela listagem 1. Primeiro ciclo do-
    while gera sequência: 1 4 13 40 121 364 1093       Listagem 2:
    3280 ...                                           void shellSort(int *vetor, int tamanho)
                                                       {
    Segundo ciclo for é executado para os valores de
                                                         int i = (tamanho - 1) / 2;
    h por ordem inversa.
                                                         int chave, k, aux;
     Operação (vetor com tamanho 100):
       Para cada valor de h, 40, 13, 4, 1:                while(i != 0)
          Utilizar ordenação por inserção para            {
            criar subvetores ordenados dentro de             do
            vetor com tamanho 100.                           {
             Vector fica h-ordenado.                            chave = 1;
                                                                for(k = 0; k < MAX - i; ++k)
          Para h = 40 existem 40 subvetores
                                                                {
            ordenados, cada um com 2/3
                                                                  if(vetor[k] > vetor[k + i])
            elementos.
                                                                  {
          Para h = 13 existem 13 subvetores
                                                                     aux = vetor[k];
            ordenados, cada um com 7/8
                                                                     vetor[k] = vetor[k + i];
            elementos.
                                                                     vetor[k + i] = aux;
          ...
                                                                     chave = 0;
          Para h = 1 existe 1 (subvetor
                                                                  }
            ordenado, com 100 elementos.
                                                                }
                                                             } while(chave == 0);
    2.2 COMPLEXIDADE                                         i = i / 2;
    Complexidade depende da sequência de valores           }
    utilizada:                                         }

     Sequência 1, 4, 13, 40, 121, 364, 1093, ...
                                                       2.4 USANDO LISTAS
       O(N3/2) comparações
     Sequência 1, 8, 23, 77, 281, 1073, 4193, ...     Para sequência de dados muito grande, talvez
       O(N4/3) comparações                            seja melhor uma abordagem usando lista e
     Sequência 1, 2, 3, 4, 6, 9, 8, 12, 18, 27, 16,   ordenação por seleção.
      24, ...
       O(N(log N)2) comparações                       Uma sugestão poderia ser:

                                                       Interface:
    2.3 IMPLEMENTAÇÕES                                 typedef struct node *link;
    Listagem 1:                                        struct node {Item item; link next;};
    void shellSort(int *vet, int size) {               link NEW(Item, link);
     int i, j, value;                                  link init(int);
     int gap = 1;                                      void show(link);
     do {                                              link sort(link);
       gap = 3 * gap + 1;
                                                       Seleção:
     } while(gap < size);
                                                       link listselection(link h) {
     do {
                                                         link max, t, out = NULL;
       gap /= 3;
                                                         while(h->next != NULL) {
       for(i = gap; i < size; i++) {
                                                           max = findmax(h);
         value = vet[i];
                                                           t = max->next; max->next = t->next;
         j = i - gap;
                                                           t->next = out; out = t;
         while(j >= 0 && value < vet[j]) {
                                                         }
           vet [j + gap] = vet[j];
                                                         h->next = out;
           j -= gap;


2
return(h);
    }

    A cada passo retira o máximo elemento da lista
    atual, e coloca no topo da nova lista.

    Exercício de fixação
    Implemente um algoritmo usando lista e
    ordenação por seleção para ordenar a lista de
    10000 inteiros, fornecida no meu blog.


    4 TERMINAMOS
    Terminamos por aqui. Clique no menu Arquivo,
    depois clique na opção Sair.

    Corra para o próximo tutorial.




3

Mais conteúdo relacionado

Mais procurados

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
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2Rogerio Oliveira
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Júlio Rocha
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeDelacyr Ferreira
 
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
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
QAP: Metodos construtivos, 2-opt, Busca tabu
QAP: Metodos construtivos, 2-opt, Busca tabuQAP: Metodos construtivos, 2-opt, Busca tabu
QAP: Metodos construtivos, 2-opt, Busca tabuDaniel Gribel
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2michellobo
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmosSandro Arpi
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05thomasdacosta
 

Mais procurados (19)

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
 
Apresentação recursividade rev2
Apresentação recursividade rev2Apresentação recursividade rev2
Apresentação recursividade rev2
 
Recursividade
RecursividadeRecursividade
Recursividade
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
QAP: Metodos construtivos, 2-opt, Busca tabu
QAP: Metodos construtivos, 2-opt, Busca tabuQAP: Metodos construtivos, 2-opt, Busca tabu
QAP: Metodos construtivos, 2-opt, Busca tabu
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
 
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 05
 

Semelhante a Shellsort: algoritmo de ordenação por incrementos

Tutorial aed iii 003 - algoritmo de ordenação shellsort
Tutorial aed iii   003 - algoritmo de ordenação shellsortTutorial aed iii   003 - algoritmo de ordenação shellsort
Tutorial aed iii 003 - algoritmo de ordenação shellsortFlávio Freitas
 
Tutorial aed iii 006 - algoritmo de ordenação quicksort
Tutorial aed iii   006 - algoritmo de ordenação quicksortTutorial aed iii   006 - algoritmo de ordenação quicksort
Tutorial aed iii 006 - algoritmo de ordenação quicksortFlávio Freitas
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Thaci Santos
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao OctavePeslPinguim
 
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
 
Tutorial aed iii 004 - algoritmo de ordenação quicksort
Tutorial aed iii   004 - algoritmo de ordenação quicksortTutorial aed iii   004 - algoritmo de ordenação quicksort
Tutorial aed iii 004 - algoritmo de ordenação quicksortFlávio Freitas
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenaçãoJonas Mendonça
 
Técnicas de Programação Funcional
Técnicas de Programação FuncionalTécnicas de Programação Funcional
Técnicas de Programação FuncionalLambda 3
 
Cartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfCartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfEdkallenn Lima
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorialblogmaxima
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 

Semelhante a Shellsort: algoritmo de ordenação por incrementos (20)

Tutorial aed iii 003 - algoritmo de ordenação shellsort
Tutorial aed iii   003 - algoritmo de ordenação shellsortTutorial aed iii   003 - algoritmo de ordenação shellsort
Tutorial aed iii 003 - algoritmo de ordenação shellsort
 
Tutorial aed iii 006 - algoritmo de ordenação quicksort
Tutorial aed iii   006 - algoritmo de ordenação quicksortTutorial aed iii   006 - algoritmo de ordenação quicksort
Tutorial aed iii 006 - algoritmo de ordenação quicksort
 
Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.Algoritmo de ordenação heapsort.
Algoritmo de ordenação heapsort.
 
Algoritmo0
Algoritmo0Algoritmo0
Algoritmo0
 
shellsort.pdf
shellsort.pdfshellsort.pdf
shellsort.pdf
 
Aula 01
Aula 01Aula 01
Aula 01
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao Octave
 
Aula 21
Aula 21Aula 21
Aula 21
 
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)
 
Tutorial aed iii 004 - algoritmo de ordenação quicksort
Tutorial aed iii   004 - algoritmo de ordenação quicksortTutorial aed iii   004 - algoritmo de ordenação quicksort
Tutorial aed iii 004 - algoritmo de ordenação quicksort
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Técnicas de Programação Funcional
Técnicas de Programação FuncionalTécnicas de Programação Funcional
Técnicas de Programação Funcional
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 
Cartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdfCartilha de Octave para Matematica Computacional.pdf
Cartilha de Octave para Matematica Computacional.pdf
 
SciLab -Tutorial
SciLab -TutorialSciLab -Tutorial
SciLab -Tutorial
 
Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 

Mais de Flávio Freitas

Tutorial aed iii 005 - algoritmo de ordenação quicksort
Tutorial aed iii   005 - algoritmo de ordenação quicksortTutorial aed iii   005 - algoritmo de ordenação quicksort
Tutorial aed iii 005 - algoritmo de ordenação quicksortFlávio Freitas
 
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...Flávio Freitas
 
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...Flávio Freitas
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivosFlávio Freitas
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivosFlávio Freitas
 
Aula 001 histórico dos computadores
Aula 001   histórico dos computadoresAula 001   histórico dos computadores
Aula 001 histórico dos computadoresFlávio Freitas
 
Aula 004 noções de hardware
Aula 004   noções de hardwareAula 004   noções de hardware
Aula 004 noções de hardwareFlávio Freitas
 
Aula 005 noções de hardware
Aula 005   noções de hardwareAula 005   noções de hardware
Aula 005 noções de hardwareFlávio Freitas
 
Aula 001 plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...
Aula 001   plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...Aula 001   plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...
Aula 001 plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...Flávio Freitas
 
Aula 003 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 003   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...Aula 003   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 003 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...Flávio Freitas
 
Aula 004 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 004   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...Aula 004   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 004 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...Flávio Freitas
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Flávio Freitas
 
Algoritmos para estruturas de dados
Algoritmos para estruturas de dadosAlgoritmos para estruturas de dados
Algoritmos para estruturas de dadosFlávio Freitas
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenaçãoFlávio Freitas
 
Matemática computacional aula 002
Matemática computacional   aula 002Matemática computacional   aula 002
Matemática computacional aula 002Flávio Freitas
 
Matemática computacional aula 001
Matemática computacional   aula 001Matemática computacional   aula 001
Matemática computacional aula 001Flávio Freitas
 

Mais de Flávio Freitas (16)

Tutorial aed iii 005 - algoritmo de ordenação quicksort
Tutorial aed iii   005 - algoritmo de ordenação quicksortTutorial aed iii   005 - algoritmo de ordenação quicksort
Tutorial aed iii 005 - algoritmo de ordenação quicksort
 
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...
 
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...5º apl   cursos técnicos - informática básica e aplicada 2012 - br office.org...
5º apl cursos técnicos - informática básica e aplicada 2012 - br office.org...
 
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
Tutorial dev cpp   001 - criação, leitura e alteração de arquivosTutorial dev cpp   001 - criação, leitura e alteração de arquivos
Tutorial dev cpp 001 - criação, leitura e alteração de arquivos
 
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
Tutorial dev cpp   002 - criação, leitura e alteração de arquivosTutorial dev cpp   002 - criação, leitura e alteração de arquivos
Tutorial dev cpp 002 - criação, leitura e alteração de arquivos
 
Aula 001 histórico dos computadores
Aula 001   histórico dos computadoresAula 001   histórico dos computadores
Aula 001 histórico dos computadores
 
Aula 004 noções de hardware
Aula 004   noções de hardwareAula 004   noções de hardware
Aula 004 noções de hardware
 
Aula 005 noções de hardware
Aula 005   noções de hardwareAula 005   noções de hardware
Aula 005 noções de hardware
 
Aula 001 plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...
Aula 001   plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...Aula 001   plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...
Aula 001 plan. e sist. comp. aplic. à adm. - o computador na sociedade, nas...
 
Aula 003 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 003   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...Aula 003   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 003 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
 
Aula 004 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 004   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...Aula 004   plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
Aula 004 plan. e sist. comp. aplic. à adm. - estudos dos principais sistema...
 
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
Solução dos exercícios do livro Algoritmos e Estruturas de Dados dos autores ...
 
Algoritmos para estruturas de dados
Algoritmos para estruturas de dadosAlgoritmos para estruturas de dados
Algoritmos para estruturas de dados
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Matemática computacional aula 002
Matemática computacional   aula 002Matemática computacional   aula 002
Matemática computacional aula 002
 
Matemática computacional aula 001
Matemática computacional   aula 001Matemática computacional   aula 001
Matemática computacional aula 001
 

Último

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxkellyneamaral
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSOLeloIurk1
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 

Último (20)

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Bloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docxBloco de português com artigo de opinião 8º A, B 3.docx
Bloco de português com artigo de opinião 8º A, B 3.docx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
2° ANO - ENSINO FUNDAMENTAL ENSINO RELIGIOSO
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 

Shellsort: algoritmo de ordenação por incrementos

  • 1. ALGORITMOS E ESTRUTURAS DE DADOS III Tutorial 2 (usa o compilador de linguagem C Dev-C++ versão 4.9.9.2) Parte 2 de 3 sobre o algoritmo de ordenação shell (concha) conhecido como Shellsort.
  • 2. 2 O ALGORITMO DE ORDENAÇÃO 1 INTRODUÇÃO SHELLSORT Esta série de tutoriais sobre Algoritmos e Estruturas de Dados III foi escrita usando o O sort por inserção é lento porque troca apenas Microsoft Windows 7 Ultimate, Microsoft elementos adjacentes. Por exemplo, se o menor Office 2010, Bloodshed Dev-C++ versão 4.9.9.2 elemento estiver no final do arranjo, são (pode ser baixado em http://www.bloodshed.net), necessários N passos para colocá-lo em seu referências na internet e notas de aula do devido lugar. O Shellsort é uma extensão simples professor quando estudante. Ela cobre desde os do sort por inserção, que ganha velocidade por algoritmos de ordenação, passando pela pesquisa permitir a troca de elementos distantes entre si. em memória primária e culminando com a A ideia é arranjar os dados de tal forma que, pesquisa em memória secundária. tomando-se seu h-ésimo elemento (a partir de Nós entendemos que você já conhece o qualquer posição), tem-se um arranjo ordenado, compilador Dev-C++. No caso de você ainda não o dito h-ordenado. Falando de outra forma, um conhecer, dê uma olhada nos tutoriais Dev-C++ arranjo h-ordenado é composto de h arranjos 001 a 017, começando pelo Tutorial Dev-C++ - ordenados, tomados juntos. Através da h- 001 - Introdução. ordenação para valores grandes de h, pode-se mover elementos dentro do arranjo por grandes Se não tem problemas com a linguagem C/C++ e distâncias, e assim ordenar mais facilmente para o compilador Dev-C++, então o próximo passo é valores menores que h. Usando-se este saber ler, criar e alterar arquivos em disco procedimento para qualquer sequência de valores usando linguagem C/C++. Se ainda não sabe que termine no tamanho 1 produzirá um arranjo como fazê-lo, dê uma olhada nos tutoriais Dev- totalmente ordenado. C++ 001 e 002, começando pelo Tutorial Dev-C++ 001 – Criação, Leitura e Alteração de Arquivos. Uma maneira de implementar o Shellsort é, para cada h, usar o sort de inserção Se sabe todas as coisas anteriores, então a independentemente em cada um dos h próxima etapa é conhecer os algoritmos mais subarranjos. A escolha dos valores de h pode ser básicos de ordenação. Em minhas notas de aula feita pelo critério de Knuth [Niemann 97] 1, como você encontra um material básico, porém se segue: detalhado e com algoritmos resolvidos, dos principais métodos de ordenação existentes. Faça h1 = 1, hs+1 = 3hs +1, e pare com ht quando ht + 2 ≥ N. Adotaremos o livro Projeto de Algoritmos com Implementação em Pascal e C, Editora Cengage Assim, os valores de h são computados como se Learning, de Nivio Ziviani, como livro-texto da segue: disciplina. Nele você encontrará os métodos de h1 = 1 ordenação que iremos estudar. h2 = (3 * 1) + 1 = 4 Seu próximo passo será estudar os algoritmos de ordenação por Inserção e por Seleção. Você pode h3 = (3 * 4) + 1 = 13 usar os links anteriores (em inglês) ou fazer uso do livro-texto. h4 = (3 * 13) + 1 = 40 Em seguida, você precisa conhecer o algoritmo h5 = (3 * 40) + 1 = 121 Shellsort. Para isto, você pode seguir o Tutorial h6 = (3 * 121) + 1 = 364 etc. AED 001, desta série, e/ou ler o capítulo referente no livro-texto. Uma propriedade muito importante [Sedgewick 86]2 é a seguinte: Se você estiver lendo este tutorial tenha certeza de ter seguido o Tutorial AED 001. Agora que Shellsort nunca realiza mais do que N3/2 você seguiu todos os passos até aqui, está pronto comparações (para os incrementos 1, 4, 13, ...). para prosseguir com este tutorial. 1 Niemann, Thomas. Sorting and searching algorithms: a cookbook. http://www.geocities.com/SoHo/2167/book.html. 2 Sedgewick, Robert. Algorithms. Addison Wesley, 1986. 1
  • 3. Uma implementação para o Shellsort é vista na } listagem 1 e na listagem 2: vet [j + gap] = value; } 2.1 FUNCIONAMENTO DO ALGORITMO } while(gap > 1); } Acompanhe pela listagem 1. Primeiro ciclo do- while gera sequência: 1 4 13 40 121 364 1093 Listagem 2: 3280 ... void shellSort(int *vetor, int tamanho) { Segundo ciclo for é executado para os valores de int i = (tamanho - 1) / 2; h por ordem inversa. int chave, k, aux;  Operação (vetor com tamanho 100):  Para cada valor de h, 40, 13, 4, 1: while(i != 0)  Utilizar ordenação por inserção para { criar subvetores ordenados dentro de do vetor com tamanho 100. {  Vector fica h-ordenado. chave = 1; for(k = 0; k < MAX - i; ++k)  Para h = 40 existem 40 subvetores { ordenados, cada um com 2/3 if(vetor[k] > vetor[k + i]) elementos. {  Para h = 13 existem 13 subvetores aux = vetor[k]; ordenados, cada um com 7/8 vetor[k] = vetor[k + i]; elementos. vetor[k + i] = aux;  ... chave = 0;  Para h = 1 existe 1 (subvetor } ordenado, com 100 elementos. } } while(chave == 0); 2.2 COMPLEXIDADE i = i / 2; Complexidade depende da sequência de valores } utilizada: }  Sequência 1, 4, 13, 40, 121, 364, 1093, ... 2.4 USANDO LISTAS  O(N3/2) comparações  Sequência 1, 8, 23, 77, 281, 1073, 4193, ... Para sequência de dados muito grande, talvez  O(N4/3) comparações seja melhor uma abordagem usando lista e  Sequência 1, 2, 3, 4, 6, 9, 8, 12, 18, 27, 16, ordenação por seleção. 24, ...  O(N(log N)2) comparações Uma sugestão poderia ser: Interface: 2.3 IMPLEMENTAÇÕES typedef struct node *link; Listagem 1: struct node {Item item; link next;}; void shellSort(int *vet, int size) { link NEW(Item, link); int i, j, value; link init(int); int gap = 1; void show(link); do { link sort(link); gap = 3 * gap + 1; Seleção: } while(gap < size); link listselection(link h) { do { link max, t, out = NULL; gap /= 3; while(h->next != NULL) { for(i = gap; i < size; i++) { max = findmax(h); value = vet[i]; t = max->next; max->next = t->next; j = i - gap; t->next = out; out = t; while(j >= 0 && value < vet[j]) { } vet [j + gap] = vet[j]; h->next = out; j -= gap; 2
  • 4. return(h); } A cada passo retira o máximo elemento da lista atual, e coloca no topo da nova lista. Exercício de fixação Implemente um algoritmo usando lista e ordenação por seleção para ordenar a lista de 10000 inteiros, fornecida no meu blog. 4 TERMINAMOS Terminamos por aqui. Clique no menu Arquivo, depois clique na opção Sair. Corra para o próximo tutorial. 3