मैं एक प्रतिकूल तर्क के एक संक्षिप्त वर्णन को संक्षिप्त रूप से बताने जा रहा हूं।
एक प्रतिद्वंद्वी के खिलाफ खेलने वाले अपने चयन एल्गोरिदम पर विचार करें जिसे हम विरोधी कहेंगे। विरोधी का उद्देश्य आपके एल्गोरिथ्म के लिए एक इनपुट X प्रदान करना है जो आपके एल्गोरिथ्म द्वारा किए गए तुलना संचालन की संख्या को अधिकतम करता है। दरअसल, आपके एल्गोरिथ्म को एक तुलनात्मक पेड़ के रूप में देखा जा सकता है, जिसमें एक पथ आंशिक क्रम से मेल खाता है। जब एल्गोरिथ्म तत्वों की एक जोड़ी (x,y) के बारे में विपक्षी से पूछता है , तो प्रतिवर्ती या तो x<y या y </ x > रिटर्न करता हैy<x । प्रतिकूल उत्तर कभी भी पिछले परिणामों का खंडन नहीं कर सकते हैं।
मान लें कि k वें सबसे बड़ा तत्व है x∗ : आंशिक तुलना पेड़ के किसी भी पत्ते को संबद्ध आदेश पर विचार करें, तो x∗ क्रम में हर दूसरे तत्व के साथ तुलनीय होना चाहिए के लिए एल्गोरिथ्म सही होने के लिए, ताकि एल्गोरिथ्म होना आवश्यक है बनाया कम से कम एक तुलना (y,z) ∀y≠x∗ जिसका परिणाम या तो है y<z≤x∗ या x∗≤z<y । एक तत्व y के लिए इस तरह की तुलना को महत्वपूर्ण y। जाहिर है, विरोधी अपने एल्गोरिथ्म द्वारा की गई गैर महत्वपूर्ण तुलनाओं की संख्या को अधिकतम करना चाहता है।
चलो L के सेट हो k−1 बड़ा तत्व; अपने एल्गोरिथ्म की जरूरत है सही ढंग से में सभी तत्त्व की पहचान के लिए L सबसे बड़ा तत्व है और यह भी में X∖L , यानी x∗ । निरीक्षण करें कि X∖L में प्रत्येक तत्व कम से कम एक महत्वपूर्ण तुलना खो चुका है। अब, विरोधी एक रणनीति है कि सेना के प्रत्येक है k−1 में तत्वों L कम से कम जीतने के लिए ⌈lgnk−1⌉X∖Ln−kX∖L
crucial comparison for $y$
: the comparisons