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.


Θ(n⋅logk⁡(n))=Θ(n⋅log2⁡(n)log2⁡(k))=Θ(n⋅log2⁡(n)log2⁡(k))

e

Θ(n⋅logk!⁡(n))=Θ(n⋅log2⁡(n)log2⁡(k!))=Θ(n⋅log2⁡(n)k⋅log2⁡(k))



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

Para ,.2≤k ⌊k2⌋∈Θ(k)

Pela rede AKS , para , comparações são suficientes para -ary ordenar.2≤k≤O(n) kO(n⋅log2⁡(n)k) k

Quando , comparação -ary é suficiente para classificar. n≤k 1k 1∈O(n⋅log2⁡(n)k)

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


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

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

Para , .2≤k≤n log32⁡(nk)=log2⁡(nk)log2⁡(32)

Para , comparações ar são suficientes para classificar.2≤k≤n k5⌈log2⁡(nk)log2⁡(32)⌉ k

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

Portanto, para e , triagem leva exactamente comparações -ary.2≤k≤nnk∈O(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 ? 2n⋅log2⁡(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 = 2 ⌈ log 2 ( i ) ⌉ ~ n log 2 ( n )k=2nlog2⁡(n)∑i=2n⌈log2⁡(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.