Here's some empirical data for question 2, based on D.W.'s idea applied to bitonic sort. For n variables, choose j−i=2k with probability proportional to lgn−k, then select i uniformly at random to get a comparator (i,j). This matches the distribution of comparators in bitonic sort if n is a power of 2, and approximates it otherwise.
Untuk urutan gerbang tanpa batas tertentu yang ditarik dari distribusi ini, kami dapat memperkirakan jumlah gerbang yang diperlukan untuk mendapatkan jaringan sortir dengan mengurutkan banyak urutan bit acak. Inilah perkiraan untuk mengambil rata-rata lebih dari 100 urutan gerbang dengan urutan 6400 bit yang digunakan untuk mendekati penghitungan:
Tampaknya cocok dengan Θ ( n log 2 n ) , kompleksitas yang sama dengan jenis bitonic. Jika demikian, kita tidak makan tambahan log n faktor karena masalah kolektor kupon datang di setiap gerbang.n<2001006400Θ(nlog2n)logn
Untuk menekankan: Saya hanya menggunakan urutan bit untuk memperkirakan jumlah gerbang yang diharapkan, bukan 2 n . Gerbang yang diperlukan rata-rata naik dengan angka itu: untuk n = 199 jika saya menggunakan urutan 6400 , 64000 , dan 640000 perkiraannya adalah 14270 ± 1069 , 14353 ± 1013 , dan 14539 ± 965 . Dengan demikian, mungkin mendapatkan beberapa urutan terakhir akan meningkatkan kompleksitas asimptotik, meskipun secara intuitif rasanya tidak mungkin.64002nn=19964006400064000014270±106914353±101314539±965
Sunting : Berikut plot yang sama hingga , tetapi menggunakan jumlah gerbang yang tepat (dihitung melalui kombinasi sampling dan Z3). Saya telah beralih dari kekuatan dua d = j - i ke sembarang d ∈ [ 1 , nn=80d=j−idengan probabilitas sebanding denganlogn-logdd∈[1,n2] . Θ(nlog2n)masih terlihat masuk akal.logn−logddΘ(nlog2n)