Độ phức tạp tiệm cận của phân loại sử dụng so sánh k


8

Sắp xếp bằng cách sử dụng so sánh 2 yếu tố có độ phức tạp trong trường hợp xấu nhất không có triệu chứng là (đạt được bằng cách sáp nhập, heapsort, chèn nhị phân, ít nhất là ford-johnson), là tối ưu.nlog2(n)

Nếu chúng ta sắp xếp bằng cách sử dụng các phép so sánh sắp xếp các phần tử k làm các khối xây dựng, thì giới hạn dưới lý thuyết thông tin là . Chúng ta có thể dễ dàng tiếp cận bằng cách chèn k-ary.n đăng nhập k ( n )nlogk!(n)nlogk(n)

Câu hỏi: Độ phức tạp tối ưu giữa và đâu?n log k ! ( n )nlogk(n)nlogk!(n)

Giới thiệu phù hợp sẽ được đánh giá cao quá.

Chỉnh sửa: vì nó không rõ ràng:

Tôi quan tâm đến sự phức tạp trong , với . Nó có hành vi tiệm cận của với Và i 'muốn chính xác hơn về .k = O ( 1 ) α n log 2 ( n ) α [ 1nk=O(1)αnlog2(n)αα[1log2(k),1log2(k!)]α

Câu trả lời:



2

Đầu tiên, hãy đưa những điều đó vào những gì tôi nghĩ là hình thức phù hợp để xem xét.


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

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



Quan sát rằng so sánh -ary đủ cho các so sánh đồng thời (nhị phân).kk2

Đối với ,.2k k2Θ(k)

Theo mạng AKS , với , phép so sánh -ary là đủ để sắp xếp2kO(n) kO(nlog2(n)k) k

Khi , -ary so sánh là đủ để sắp xếp. nk 1k 1O(nlog2(n)k)

Do đó, đối với , so sánh -ary là đủ để sắp xếp.2k kO(nlog2(n)k) k


k5 k so sánh -ary đủ cho một so sánh -ary .(4k2)

Đối với , -ary so sánh đủ cho một -ary so sánh.4k 5k(32k)

Đối với , .2kn log32(nk)=log2(nk)log2(32)

Đối với , so sánh -ary là đủ để sắp xếp.2kn k5log2(nk)log2(32) k

Đối với , ít nhất một so sánh -ary là cần thiết để sắp xếp.2nk

Do đó, với và , việc sắp xếp sẽ thực hiện chính xác các so sánh -ary của .2knnkO(1)kΘ(1) k


Tôi nghi ngờ người ta có thể tinh chỉnh
kết luận thứ hai trong hai kết luận của tôi để cho thấy rằng giới hạn dưới của bạn đã đạt được.


Không phải những gì tôi đã nghĩ, nhưng vẫn tốt đẹp. Tôi quan tâm đến sự phức tạp trong , với . Nó có hành vi tiệm cận của với , Và tôi muốn nhiều hơn nữa độ chính xác về . Về quan điểm của bạn, tôi không nghĩ bạn sẽ đạt đến giới hạn dưới theo cách đó, bởi vì sẽ không làm điều đó. 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

Tôi sẽ diễn giải theo cách đó trước khi tôi nhận ra rằng, theo như tôi có thể tìm thấy, hằng số tối ưu không được biết ngay cả đối với . k=2

Bây giờ tôi nhận ra rằng việc bạn sử dụng cơ sở trong logarit đầu tiên bạn viết có thể giải quyết quan điểm của tôi. Số so sánh nhị phân tối ưu có được chia cho được biết là hội tụ đến không? 2nlog2(n)1

Có, với , số so sánh tối ưu chia cho hội tụ đến 1. Nhiều thuật toán đạt được điều này, dễ nhất có thể là chèn nhị phân (cần so sánh). n log 2 ( n ) n i = 2log 2 ( i )n log 2 ( n )k=2nlog2(n)i=2nlog2(i)nlog2(n)
slan_21
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.