Uma Nova Proposta para a Obtenção da Complexidade de Pior Caso do ShellSort
DOI:
https://doi.org/10.5540/tema.2019.020.03.457Palavras-chave:
Complexidade de Algoritmos, Método Empírico, ShellSort.Resumo
A complexidade de pior caso do ShellSort, um algoritmo de ordenação por comparação, depende de uma sequência de passos dada de entrada. Cada passo consiste de um inteiro representando a diferença de índices dos pares de elementos que devem ser comparados durante a ordenação de um vetor de entrada. Tal complexidade é conhecida somente para algumas sequências específicas. Neste trabalho, usamos uma relação entre ShellSort e o número de Frobenius para apresentar um novo algoritmo que provê um limite superior no número de comparações que o \mbox{ShellSort} perfaz, para dados vetor e sequência de passos. Aplicamos este algoritmo, em conjunto com uma análise de complexidade empírica, para estudar sequências cujas complexidades de pior caso são conhecidas através do método analítico. Mostramos que a abordagem empírica foi bem sucedida em determinar tais complexidades. Baseado nestes resultados positivos, estendemos o estudo para sequências para as quais as complexidades de pior caso estão em aberto.Referências
T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to algorithms. Editora MIT, 2009.
D. L. Shell, “A high-speed sorting procedure,” Communications of the ACM, vol. 2, no. 7, pp. 30–32, 1959.
R. M. Frank and R. B. Lazarus, “A high-speed sorting procedure,” Communications of the ACM, vol. 3, no. 1, pp. 20–22, 1960.
V. R. Pratt, Shellsort and sorting networks. PhD thesis, Universidade de Stanford, 1972.
R. Sedgewick, “A new upper bound for shellsort,” Journal of Algorithms, vol. 7, no. 2, pp. 159–173, 1986.
G. H. Gonnet and R. A. Baeza-Yates, Handbook of Algorithms and Data Structures: in Pascal and C. EUA: Addison-Wesley, 1991.
M. Ciura, “Best increments for the average case of shellsort,” in Fundamentals of Computation Theory, pp. 106–117, Springer, 2001.
M. T. Goodrich, “Randomized shellsort: A simple data-oblivious sorting algorithm,” Journal of the ACM (JACM), vol. 58, no. 6, p. 27, 2011.
P. Vitányi, “On the average-case complexity of shellsort,” Random Structures & Algorithms, vol. 52, no. 2, pp. 354–363, 2018.
R. M. Souza, F. S. Oliveira and P. E. D. Pinto, "Um Limite Superior para a Complexidade do ShellSort", Anais do III Encontro de Teoria da Computação, pp. 49–52, 2018, SBC.
R. M. Souza, F. S. Oliveira and P. E. D. Pinto, "O Algoritmo ShellSort e o Número de Frobenius", XXXVIII Congresso Nacional de Matemática Aplicada e Computacional, 2018, SBMAC.
T. N. Hibbard, “An empirical study of minimal storage sorting,” Communications of the ACM, vol. 6, no. 5, pp. 206–213, 1963.
A. A. Papernov and G. V. Stasevich, “A method of information sorting in computer memories,” Problemy Peredachi Informatsii, vol. 1, no. 3, pp. 81–98, 1965.
D. E. Knuth, The Art of Computer Programming 3: Sorting and Searching. EUA: Addison-Wesley, 1998.
J. Incerpi and R. Sedgewick, “Improved upper bounds on shellsort,” in Anais do 24o Annual Symposium on Foundations of Computer Science, 1983, pp. 48–55, IEEE, 1983.
N. Tokuda, “An improved shellsort,” Anais do 12o IFIP World Computer Congress on Algorithms, Software, Architecture-Information Processing, vol. 1, pp. 449–457, 1992.
R. Cypher, “A lower bound on the size of shellsort sorting networks,” SIAM Journal on Computing, vol. 22, no. 1, pp. 62–71, 1993.
F. S. Oliveira, "EMA - WebPage", http://fabianooliveira.ime.uerj.br/ema, 2016. [Última vez acessado: 10 de Dezembro de 2018]
B. Poonen, “The worst case in shellsort and related algorithms,” Journal of Algorithms, vol. 15, no. 1, pp. 101–124, 1993.
J. L. R. Alfonsín, The diophantine Frobenius problem, vol. 30. Oxford University Press on Demand, 2005.
M. A. Weiss and R. Sedgewick, “More on shellsort increment sequences,” Information Processing Letters, vol. 34, no. 5, pp. 267–270, 1990.
Downloads
Arquivos adicionais
- Dados utilizados nos experimentos do artigo
- Arquivo fonte do artigo
- Arquivo fonte da bibliografia do artigo
- Gráfico representando o número de comparações realizadas pelo algoritmo ShellSort para as sequências de Shell, Hibbard, Papernov e Stasevich, Knuth e Sedgewick
- Gráfico representando o número de comparações realizadas pelo algoritmo ShellSort para as sequências de Pratt, Incerpi e Sedgewick, Gonnet e Baeza-Yates, Tokuda e Ciura
- Grafo representando a árvore de possibilidades para a sequência de Frank e Lazarus
- Grafo representando a árvore de possibilidades para a sequência de Gonnet e Baeza-Yates
- Grafo representando a árvore de possibilidades para a sequência de Shell
- Source files for compilation
Publicado
Como Citar
Edição
Seção
Licença
Política para Periódicos de Acesso Livre
Autores que publicam nesta revista concordam com os seguintes termos:
- Autores mantém os direitos autorais e concedem à revista o direito de primeira publicação, com o trabalho simultaneamente licenciado sob a Licença Creative Commons Attribution que permite o compartilhamento do trabalho com reconhecimento da autoria e publicação inicial nesta revista.
- Autores têm autorização para assumir contratos adicionais separadamente, para distribuição não-exclusiva da versão do trabalho publicada nesta revista (ex.: publicar em repositório institucional ou como capítulo de livro), com reconhecimento de autoria e publicação inicial nesta revista.
- Autores têm permissão e são estimulados a publicar e distribuir seu trabalho online (ex.: em repositórios institucionais ou na sua página pessoal) a qualquer ponto antes ou durante o processo editorial, já que isso pode gerar alterações produtivas, bem como aumentar o impacto e a citação do trabalho publicado (Veja O Efeito do Acesso Livre).
- Esta é uma revista de acesso aberto, o que significa que todo o conteúdo é livremente disponível gratuitamente para o usuário ou sua instituição. Os usuários estão autorizados a ler, baixar, copiar, distribuir, imprimir, pesquisar ou vincular os textos completos dos artigos, ou usá-los para qualquer outro propósito legal, sem pedir permissão prévia do editor ou do autor. Isso está de acordo com a definição de acesso aberto do BOAI.
Todo o conteúdo do periódico está licenciado sob uma Licença Creative Commons do tipo atribuição BY.