दूसरा कोड काटा करते समय (जो आपको द्विआधारी खोज एल्गोरिथ्म को पांच बार लागू करने के लिए कहता है, प्रत्येक बार एक अलग विधि के साथ), मैं थोड़ा अलग समाधान के साथ आया हूं जो निम्नानुसार काम करता है:
अगर मेरे पास 100 की क्रमबद्ध सरणी है और मुझे लगता है कि इसके शुरुआती क्षेत्र में 200 नंबर है और इसके अंतिम क्षेत्र में 400 नंबर है, मुझे, मानव का अध्ययन करने वाले गणित के रूप में, यदि मैं खोज कर रहा था तो मुझे 35 के आसपास खोज शुरू करने की संभावना होगी। संख्या 270, और सामान्य बाइनरी खोज एल्गोरिदम की तरह क्षेत्र 50 नहीं।
फिर, यदि सरणी के क्षेत्र 35 पर संख्या 270 है, तो 35 वह सूचकांक है जिसे मैं खोज रहा था।
यदि ऐसा नहीं है, तो मुझे मिली संख्या की तुलना कर सकते हैं (280 कहते हैं) और सरणी के निचले हिस्से को लेते हुए ऑपरेशन को दोहराएं (इसलिए मेरे पास 35 फ़ील्ड हैं जिसमें शुरुआती फ़ील्ड 200 और समाप्ति फ़ील्ड युक्त 280 है) यदि संख्या जो मुझे मिली है उससे अधिक है जो मैं खोज रहा हूं, या सरणी का ऊपरी भाग (कहो कि मुझे 260 मिला: अब मेरे पास 65 इंडेक्स हैं, पहला 260 है और अंतिम एक 400 है। ओरिएंटेटिवली, मैं प्रमुख होगा इस उप सरणी का सूचकांक 4, जो पूरे सरणी का सूचकांक 39 है) यदि मुझे मिली संख्या उस संख्या से छोटी है जिसे मैं खोज रहा हूं।
सवाल यह है: क्या इस एल्गोरिथ्म को एक द्विआधारी खोज एल्गोरिदम माना जा सकता है? यदि नहीं, तो क्या इसका अपना नाम है?