Kompleksitas asimptotik dari pengurutan menggunakan perbandingan k

8

Penyortiran menggunakan perbandingan 2-elemen memiliki kompleksitas kasus terburuk asimptotik dari (dicapai oleh mergesort, heapsort, penyisipan biner, setidaknya ford-johnson), yang optimal.nlog2(n)

Jika kita mengurutkan menggunakan perbandingan yang mengurutkan elemen k sebagai blok bangunan, teori informasi batas bawah adalah . Kita dapat dengan mudah mencapai dengan penyisipan k-ary.nlogk!(n)nlogk(n)

Pertanyaan: Di mana kompleksitas optimal antara dan ?nlogk(n)nlogk!(n)

Referensi yang tepat juga akan dihargai.

Sunting: karena tidak jelas:

Saya tertarik dengan kompleksitas dalam , dengan . Ini memiliki perilaku asimptotik dari dengan , Dan saya ingin lebih presisi tentang .nk=O(1)αnlog2(n)α[1log2(k),1log2(k!)]α

slan_21
sumber

Jawaban:

2

Pertama, mari kita bawa mereka ke dalam apa yang saya pikir merupakan bentuk yang tepat untuk dilihat.


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

dan

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



Perhatikan bahwa perbandingan -ary sudah mencukupi untuk perbandingan simultan (biner).kk2

Untuk ,.2k k2Θ(k)

Oleh jaringan AKS , untuk , perbandingan -ary cukup untuk menyortir.2kO(n) O(nlog2(n)k) k

Ketika , perbandingan -ary cukup untuk mengurutkan. nk 1k 1O(nlog2(n)k)

Oleh karena itu, untuk , perbandingan -ary yang cukup untuk menyortir.2k O(nlog2(n)k) k


5 kPerbandingan -ary cukup untuk perbandingan -ary perbandingan.(4k2)

Untuk , perbandingan -ary mencukupi untuk -ary perbandingan.4k 5k(32k)

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

Untuk , perbandingan perbandingan cukup untuk disortir.2kn 5log2(nk)log2(32) k

Untuk , setidaknya satu perbandingan -ary diperlukan untuk memilah.2nk

Oleh karena itu, untuk dan , menyortir mengambil persis perbandingan -ary.2knnkO(1)Θ(1) k


Saya menduga seseorang dapat memperbaiki yang kedua dari dua
kesimpulan saya untuk menunjukkan bahwa batas bawah Anda tercapai.


sumber
Tidak apa yang ada dalam pikiran saya, tetapi masih bagus. Saya tertarik dengan kompleksitas dalam , dengan . Ini memiliki perilaku asimptotik dengan , Dan saya ingin lebih presisi tentang . Tentang sudut pandang Anda, saya tidak berpikir Anda akan mencapai batas bawah seperti itu, karena yang tidak akan melakukannya. nk=O(1)αnlog2(n)α[1log2(k),1log2(k!)]α5log2(nk)log2(32)=O((nk)log2(5)log2(32))
slan_21
Saya akan menafsirkan seperti itu sebelum saya menyadari bahwa, sejauh yang saya dapat menemukan, optimal konstan tidak diketahui bahkan untuk . k=2
Saya sekarang menyadari bahwa penggunaan basis di logaritma pertama yang Anda tulis mungkin membahas poin saya. Apakah jumlah optimal perbandingan biner dibagi dengan diketahui konvergen ke ? 2nlog2(n)1
Ya, untuk jumlah optimal perbandingan dibagi dengan konvergen ke 1. Banyak algoritma mencapai ini, kemungkinan yang paling mudah adalah penyisipan biner (yang membutuhkan perbandingan). n log 2 ( n ) n i = 2log 2 ( i )n log 2 ( n )k=2nlog2(n)i=2nlog2(i)nlog2(n)
slan_21