Kısaca karşımıza çıkan bir argümanın taslağını anlatacağım.
Düşman olarak adlandıracağımız bir rakibe karşı oynarken seçim algoritmanızı göz önünde bulundurun. Düşmanın amacı, algoritmanız için algoritmanız tarafından yapılan karşılaştırma işlemlerinin sayısını en üst düzeye çıkaran bir girişi sağlamaktır . Gerçekten de, algoritmanız bir yolun kısmi bir sıraya karşılık geldiği bir karşılaştırma ağacı olarak görülebilir. Algoritma düşmana bir çift eleman hakkında soru sorduğunda, düşman veya değerini döndürür . Düşman cevaplar asla önceki sonuçlarla çelişemez.X(x,y)x<yy<x
en büyük öğesinin olduğunu varsayalım : karşılaştırma ağacının herhangi bir yaprağına ilişkin kısmi sıra dikkate alındığında , algoritmanın doğru olması için diğer tüm öğelerle karşılaştırılabilir olmalıdır, böylece algoritma sonucu veya olan en az bir karşılaştırma . Böyle bir karşılaştırmayı elemanı için çok önemli olarak adlandırın . Açıkçası, düşman algoritmanız tarafından yapılan önemli olmayan karşılaştırmaların sayısını en üst düzeye çıkarmak istiyor.kx∗x∗(y,z) ∀y≠x∗y<z≤x∗x∗≤z<yyy
, en büyük elementlerin seti olsun ; algoritmanızın deki tüm öğeleri ve ayrıca deki en büyük öğeyi , yani . deki her elemanın en az bir önemli karşılaştırmayı kaybettiğini gözlemleyin . Artık rakip, deki öğelerinin her birini en az karşılaştırmasını sahip için çok önemlidir . için kalan önemli karşılaştırmaları eklemeLk−1LX∖Lx∗X∖Lk−1L⌈lgnk−1⌉X∖Ln−kX∖Lalt sınırı elde edersiniz. Ayrıntılar için lütfen Jeff Erikson'ın notlarını okuyun .
crucial comparison for $y$
karşılaştırma: ya da burada ya da ve hedeftir öğesi. Bu karşılaştırmalar yapıldığında ile arasındaki ilişkiyi bilmiyorsak ne olur ? Burada bir kehanetimiz var mı? Yoksa tam bilgiyle (yapraktaki gelecekteki bilgiler bile) her şeyi biliyoruz mu?