Saya akan secara singkat menguraikan sketsa argumen musuh.
Pertimbangkan algoritme pilihan Anda yang dimainkan melawan lawan yang kami sebut musuh. Tujuan musuh adalah untuk memberikan input X untuk algoritme Anda yang memaksimalkan jumlah operasi perbandingan yang dilakukan oleh algoritme Anda. Memang, algoritma Anda dapat dilihat sebagai pohon perbandingan, di mana jalur sesuai dengan urutan parsial. Ketika algoritma menanyakan musuh tentang sepasang ( x , y) elemen, musuh mengembalikan x < y atau y< x . Jawaban musuh tidak pernah bisa bertentangan dengan hasil sebelumnya.
Asumsikan bahwa elemen terbesar ke- k adalah x∗ : dengan mempertimbangkan urutan parsial yang terkait dengan daun apa pun dari pohon perbandingan, maka x∗ harus dapat dibandingkan dengan setiap elemen lainnya agar algoritme menjadi benar, sehingga algoritme harus memiliki membuat setidaknya satu perbandingan ( y, z) ∀ y≠ x∗ yang hasilnya adalah y< z≤ x∗ atau x∗≤ z< y . Sebut perbandingan yang sangat penting untuk elemen y. Jelas, musuh ingin memaksimalkan jumlah perbandingan tidak penting yang dilakukan oleh algoritma Anda.
Biarkan L. menjadi himpunan elemen k - 1 terbesar; algoritme Anda perlu mengidentifikasi dengan benar semua elemen dalam L. dan juga elemen terbesar di X∖ L , yaitu x∗ . Perhatikan bahwa setiap elemen dalam X∖ L telah kehilangan setidaknya satu perbandingan penting. Sekarang, musuh memiliki strategi yang memaksa setiap elemen k - 1 dalam L. untuk memenangkan setidaknya ⌈ lgnk - 1⌉perbandingan, tidak ada yang sangat penting untukX∖ L. Menambahkanperbandingan pentingn - ktersisauntukX∖ LAnda mendapatkan batas bawah. Untuk detailnya, silakan bacacatatanJeff Erikson yang luar biasa ini.
crucial comparison for $y$