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.
For a given infinite sequence of gates pulled from this distribution, we can approximate the number of gates required to get a sorting network by sorting many random bit sequences. Here's that estimate for n<200 taking the mean over 100 gate sequences with 6400 bit sequences used to approximate the count:
It appears to match Θ(nlog2n), the same complexity as bitonic sort. If so, we don't eat an extra logn factor due to the coupon collector problem of coming across each gate.
To emphasize: I'm using only 6400 bit sequences to approximate the expected number of gates, not 2n. The mean required gates does rise with that number: for n=199 if I use 6400, 64000, and 640000 sequences the estimates are 14270±1069, 14353±1013, and 14539±965. Thus, it's possible getting the last few sequences increases the asymptotic complexity, though intuitively it feels unlikely.
แก้ไข : นี่คือพล็อตที่คล้ายกันมากถึงแต่ใช้จำนวนประตูที่แน่นอน (คำนวณจากการรวมกันของการสุ่มตัวอย่างและ Z3) ฉันได้เปลี่ยนจากอำนาจของสองd = J - ฉันไปโดยพลการd ∈ [ 1 , nn=80d=j−iมีความน่าจะเป็นเป็นสัดส่วนกับlogn-logdd∈[1,n2]d Θ(nบันทึก2n)ยังดูน่าเชื่อถือlogn−logddΘ(nlog2n)