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
Direitos Autorais
Autores de artigos publicados no periódico Trends in Computational and Applied Mathematics mantêm os direitos autorais de seus trabalhos. O periódico utiliza a Atribuição Creative Commons (CC-BY) nos artigos publicados. Os autores concedem ao periódico o direito de primeira publicação.
Propriedade Intelectual e Termos de uso
O conteúdo dos artigos é de responsabilidade exclusiva dos autores. O periódico utiliza a Atribuição Creative Commons (CC-BY) nos artigos publicados. Esta licença permite que os artigos publicados sejam reutilizados sem permissão para qualquer finalidade, desde que o trabalho original seja corretamente citado.
O periódico encoraja os Autores a autoarquivar seus manuscritos aceitos, publicando-os em blogs pessoais, repositórios institucionais e mídias sociais acadêmicas, bem como postando-os em suas mídias sociais pessoais, desde que seja incluída a citação completa à versão do website da revista.