Complexidade assintótica da classificação usando comparações k


8

A classificação usando comparações de dois elementos tem uma complexidade assintótica de pior caso de (alcançada por mergesort, heapsort, inserção binária, ford-johnson, pelo menos), o que é ideal.nlog2(n)

Se classificarmos usando comparações que classificam k elementos como blocos de construção, o limite inferior da teoria da informação é . Podemos facilmente alcançar com a inserção do k-ário.n log k ( n )nlogk!(n)nlogk(n)

Pergunta: Onde está a complexidade ideal entre e ?n log k ! ( N )nlogk(n)nlogk!(n)

Refs apropriados também seriam apreciados.

Edit: porque não estava claro:

Estou interessado na complexidade em , com . Possui o comportamento assintótico de com Ei gostaria de mais precisão sobre .k = O ( 1 ) α n log 2 ( n ) α [ 1nk=O(1)αnlog2(n)αα[1log2(k),1log2(k!)]α

Respostas:



2

Primeiro, vamos trazer aqueles para o que eu acho que é a forma correta de se olhar.


Θ(nlogk(n))=Θ(nlog2(n)log2(k))=Θ(nlog2(n)log2(k))

e

Θ(nlogk!(n))=Θ(nlog2(n)log2(k!))=Θ(nlog2(n)klog2(k))



Observe que uma comparação -ary é suficiente para comparações simultâneas (binárias).kk2

Para ,.2k k2Θ(k)

Pela rede AKS , para , comparações são suficientes para -ary ordenar.2kO(n) kO(nlog2(n)k) k

Quando , comparação -ary é suficiente para classificar. nk 1k 1O(nlog2(n)k)

Portanto, para , comparações -ary são suficientes para classificar.2k kO(nlog2(n)k) k


k5 k comparações -ary são suficientes para um -ary comparação.(4k2)

Para , comparações -ary são suficientes para uma4k 5k-arycomparação.(32k)

Para , .2kn log32(nk)=log2(nk)log2(32)

Para , comparações ar são suficientes para classificar.2kn k5log2(nk)log2(32) k

Para , pelo menos um comparação -ary é necessário para classificar.2nk

Portanto, para e , triagem leva exactamente comparações -ary.2knnkO(1)kΘ(1) k


Suspeito que alguém possa refinar a segunda das minhas duas
conclusões para mostrar que seu limite inferior é alcançado.


Não é o que eu tinha em mente, mas ainda assim agradável. Estou interessado na complexidade em , com . Possui o comportamento assintótico de com E eu gostaria de mais precisão sobre . Sobre o seu ponto de vista, acho que você não alcançará o limite inferior dessa maneira, porque que não fará isso. k = O ( 1 ) α n l o g 2 ( n ) α [ 1nk=O(1)αnlog2(n)α5 log 2 ( nα[1log2(k),1log2(k!)]α5log2(nk)log2(32)=O((nk)log2(5)log2(32))
slan_21

Eu estava indo para interpretá-lo dessa forma antes de eu percebi que, tanto quanto eu posso encontrar, constante ideal não é conhecido até mesmo para . k=2

Agora percebo que o uso da base no primeiro logaritmo que você escreve pode abordar o meu ponto. O número ideal de comparações binárias é dividido por conhecido por convergir para ? 2nlog2(n)1

Sim, para o número ideal de comparações dividido por converge para 1. Muitos algoritmos conseguem isso, sendo o mais fácil provavelmente a inserção binária (que precisa de comparações). n log 2 ( n ) Σ n i = 2log 2 ( i )~ n log 2 ( n )k=2nlog2(n)i=2nlog2(i)nlog2(n)
21133 Slan_21
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.