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.
Dla danej nieskończonej sekwencji bramek wyciągniętych z tego rozkładu, możemy przybliżać liczbę bramek wymaganych do uzyskania sieci sortującej, sortując wiele losowych sekwencji bitów. Oto szacunek dla biorąc pod uwagę średnią ponad 100 sekwencji bramkowych z 6400 sekwencjami bitowymi użytymi do przybliżenia liczby:
Wygląda na to, że odpowiada Θ ( n log 2 n ) , takiej samej złożoności jak sortowanie bitoniczne. Jeśli tak, nie jemy dodatkowego współczynnika log n ze względu na problem kolektora kuponów napotykający każdą bramę.n<2001006400Θ(nlog2n)logn
Dla podkreślenia: używam tylko sekwencji bitowych do przybliżenia oczekiwanej liczby bramek, a nie 2 n . Średnia wymagana liczba bramek rośnie wraz z tą liczbą: dla n = 199, jeśli użyję sekwencji 6400 , 64000 i 640000 , szacunki wynoszą 14270 ± 1069 , 14353 ± 1013 i 14539 ± 965 . Zatem możliwe jest uzyskanie ostatnich kilku sekwencji zwiększa asymptotyczną złożoność, choć intuicyjnie wydaje się to mało prawdopodobne.64002nn=19964006400064000014270±106914353±101314539±965
Edit: Here's a similar plot up to n=80, but using the exact number of gates (computed via a combination of sampling and Z3). I've switched from power of two d=j−i to arbitrary d∈[1,n2] with probability proportional to logn−logdd. Θ(nlog2n) still looks plausible.