Rasgele seçim algoritması şu şekildedir:
Girdi: (basitlik için ayrı) sayılardan oluşan bir dizisi ve bir sayık ∈ [ n ]
Çıktı: "rütbe unsuru" (yani, pozisyon bir ise sıralama)A k A
Yöntem:
- bir öğe varsa , onu döndürün
- Rastgele olarak eşit bir öğesi ("pivot") seçin
- Setleri hesaplamak veR = { a ∈ A : a > p }
- Eğer , nin sıra öğesini .k L
- Aksi takdirde, rütbe elemanıR,
Bana şu soru soruldu:
Diyelim ki , böylece medyanı arıyorsunuz ve sabit olsun. İlk özyinelemeli çağrıda, medyanı içeren kümenin en fazla boyutuna sahip olma olasılığı nedir ?α ∈ ( 1 / 2 , 1 ) α n
Bana "Seçilen pivot array ve çarpı orijinal dizi arasında olmalıdır" gerekçesiyle , olduğu söylendi1 - α α
Neden? Şöyle , her türlü eleman eksen olarak seçilir yarısından fazlasını orijinal elemanların daha büyük veya daha küçüktür. Medyan her zaman daha büyük alt dizide bulunur, çünkü bölümlenmiş alt dizideki elemanlar her zaman pivottan daha azdır.
Pivot orijinal dizinin ilk yarısında (yarısından daha az) yer alıyorsa, medyan kesinlikle ikinci büyük yarıda olacaktır, çünkü medyan bulunduğunda, dizinin orta konumunda olmalıdır ve pivottan önceki her şey yukarıda belirtildiği gibi daha küçüktür.
Pivot orijinal dizinin ikinci yarısındaysa (elemanların yarısından fazlası), medyan kesinlikle ilk büyük yarıyı alacaktır, aynı nedenle pivottan önceki her şey daha küçük olarak kabul edilir.
Misal:
3 4 5 8 7 9 2 1 6 10
Ortanca 5'tir.
Seçilen pivotun 2 olduğu varsayılır. Böylece ilk yinelemeden sonra, olur:
1 2 .... büyük kısım ....
Sadece 1
ve 2
ilk yinelemeden sonra değiştirilir. 5 sayısı (ortanca) hala ilk büyük yarıda (pivot 2'ye göre). Mesele şu ki, medyan her zaman daha büyük yarıda yatar, nasıl daha küçük bir alt dizide kalma şansı olabilir?