Ortanca hesaplamak için kesin karşılaştırma sayısı


25

Knuth en hacmi III Bilgisayar Programlama Sanatı (3.2 ayet bölüm 5,) listeleme Aşağıdaki tablo içerir kesin karşılaştırmaların asgari sayısını seçmek için gerekli boyutta bir sıralanmamış kümesinden inci en küçük elemanı tümü için, . Bu tablo, iyi bilinen kapalı form ifadeleri ile birlikte ve , 1976’dan bu yana sanatın çoğunu temsil eder . .N 1 t n 10 V 1 ( n ) = n - 1 V 2 ( n ) = n- - 2 + n / 2 tn1tn10V1(n)=n1V2(n)=n2+n/2

Knuth III'ten Tablo: 5.3.2

Son 36 yılda daha kesin bir değeri hesaplandı mı? Ben özellikle medyanı hesaplamak için gereken minimum karşılaştırma sayısı olan in tam değerleri ile ilgileniyorum .M ( n ) = V N / 2 ( n )Vt(n)M(n)=Vn/2(n)


@ MarkusBläser’in işaret ettiği gibi, Knuth’un tablosu zaten Bill Gasarch, Wayne Kelly ve Bill Pugh’dan daha yeni sonuçlar içeriyor gibi görünüyor ( küçük i için n’nin en büyükünü bulmak , n . SIGACT News 27 (2): 88-96, 1996 .)


2
Konuyla ilgili en ünlü makale, sanırım, bu problemi daha düşük sınırlarla kanıtlayan ilk (bazı) teknikler bulan ilk kişi arasında sayılan Pratt ve Yao (1976). Konuyla ilgili son yazıları bulsaydım , bu yazıda yapılan alıntıları izlerdim . En son bildiri, Dor ve Zwick’tir, ancak Paterson tarafından 1996 yılında yapılan bir anket de bulunmaktadır (bununla birlikte kesin sonuçlarla ilgilenip ilgilenmediğini görmek istemedim).
Jérémie

1
Nitpicking: Sorunun son cümlesinde, muhtemelen zemin yerine tavanı kastediyordunuz.
Tsuyoshi Ito

6
Jeff, tam olarak neden cevap verdiğini merak ediyorsun.
Chandra Chekuri,

5
Kenneth Oksanen hesaplamak için etkili bir kod yazdı . Ne yazık ki, sadece bir soyut kullanılabilir bilimdirect.com/science/article/pii/S1571065306001582 İki yıl önce, öğrencilerimden biri ona bir e-posta gönderdi ve kodu ondan aldı. Bazı yeni değerlerin elde edilip edilemeyeceğini hatırlamıyorum. Vi(n)
Markus Bläser

5
@ChandraChekuri: Potansiyel algoritmalar ödev problemi olarak Blum-Floyd-Pratt-Rivest-Tarjan doğrusal zaman seçimi algoritmasının türevleri ile oynuyorum . Her blokta medyanı bulmak için minimum karşılaştırma algoritmasını kullanırsak, hangi blok büyüklüğü bize büyük Oh'da en iyi sabiti verir? 9, 7'den daha iyidir, 5'ten daha iyidir; 11'den ne haber?
Jeffε

Yanıtlar:



3

Acaba bu bilgi sizin için yararlı olabilir mi? Maalesef, bu gönderinin sorusuna ek bilgi sağlamaz, ancak bunun ne için olduğu hakkındaki yorumunuza cevap olarak oldukça fazladır (QuickSelect'in varyantlarını analiz eder).

veya nin beklenen minimum karşılaştırma sayısının hesaplanması elbette oldukça kolaydır (tüm permütasyonlar üzerinde eşit bir şekilde alınan beklentiyle), v t ( n ) v t ( n ) = n + dk ( t , n - t ) + lot .v(n,t)vt(n)

vt(n)=n+min(t,nt)+l.o.t..

Bu sonuç nadiren kullanılmaz ve özellikle Martínez, Panario ve Viola tarafından "QuickSelect için Adaptif Örnekleme" deki algoritmaların temelidir . Makalenin başlangıç ​​noktası QuickSelect üçlü ortancadır ve sonra şunu sormak: Aradığımız öğenin n / 2'den çok daha düşük veya n / 2'den çok daha yüksek bir göreceli derecesine sahip olması durumunda, medyanı sistematik olarak seçmek uygun olur mu? ?

Başka bir deyişle, Listesindeki Elementi aradığınızı ve pivotunuzu elementlerin kümelerinden seçtiğinizi varsayalım . Ortanca ( ) almak yerine, , . Bu algoritmanın, doğru seçim için, üçün ortanca değişkeninden pratik olarak daha verimli olabileceğini gösteriyorlar., n m m / 2 α m α = k / n mknmm/2αmα=k/nm

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.