এখানে উইকিপিডিয়া প্রবেশ রয়েছে is
যদি আপনি সাধারণ পুনরাবৃত্তি পদ্ধতির দিকে লক্ষ্য করেন। আপনার প্রয়োজনীয় উপাদান না পাওয়া পর্যন্ত আপনি অনুসন্ধান করার জন্য অর্ধেক উপাদান সরিয়ে ফেলছেন।
আমরা কীভাবে সূত্রটি নিয়ে আসছি তার ব্যাখ্যা এখানে।
প্রাথমিকভাবে বলুন আপনার কাছে N সংখ্যাগুলির সংখ্যা রয়েছে এবং তারপরে আপনি যা করেন তা প্রথম প্রচেষ্টা হিসাবে ⌊N / 2⌋। যেখানে এন হ'ল নিম্ন সীমা এবং উপরের গণ্ডির সমষ্টি। এন এর প্রথম বারের মানটি (এল + এইচ) সমান হবে, যেখানে এল প্রথম সূচক (0) এবং আপনি যে তালিকার সন্ধান করছেন তার তালিকার শেষ সূচক হ'ল। আপনি যদি ভাগ্যবান হন তবে আপনি যে উপাদানটি অনুসন্ধান করার চেষ্টা করছেন সেটি মাঝখানে থাকবে [যেমন। আপনি তালিকায় 18 টি অনুসন্ধান করছেন {16, 17, 18, 19, 20} তারপরে আপনি গণনা করুন ⌊ (0 + 4) / 2⌋ = 2 যেখানে 0 নিম্ন সীমাবদ্ধ (এল - অ্যারের প্রথম উপাদানটির সূচক) এবং 4 হ'ল উচ্চতর বাউন্ড (H - অ্যারের শেষ উপাদানটির সূচক)। উপরের ক্ষেত্রে এল = 0 এবং এইচ = 4 এখন 2 টি হল 18 টি উপাদানটির সূচক যা আপনি সন্ধান করছেন। বিঙ্গো! তুমি কি দেখেছো এটাকে.
যদি কেসটি অন্যরকম {15,16,17,18,19} ছিল তবে আপনি এখনও 18 টি অনুসন্ধান করে যাচ্ছেন তবে আপনি ভাগ্যবান হবেন না এবং আপনি প্রথম এন / 2 করছেন (যা ⌊ (0 + 4) / 2⌋ = 2 এবং তারপরে সূচক 2 এ 17 টি উপাদানটি বুঝতে পারছেন যে সংখ্যাটি আপনি খুঁজছেন তা নয় Now এখন আপনি জানেন যে পুনরাবৃত্ত পদ্ধতিতে অনুসন্ধানের জন্য আপনার পরবর্তী প্রয়াসে আপনাকে কমপক্ষে অর্ধেক অ্যারের সন্ধান করতে হবে না Your অনুসন্ধানের প্রচেষ্টা অর্ধেক হয়ে গেছে। সুতরাং মূলত, আপনি আগের যে উপাদানগুলির অনুসন্ধান করেছিলেন তার অর্ধেক তালিকাগুলি অনুসন্ধান করবেন না, প্রতিবার আপনি যখন আগের উপাদানটিতে অনুসন্ধান করতে সক্ষম নন এমন উপাদানটি সন্ধান করার চেষ্টা করবেন।
তাই সবচেয়ে খারাপ অবস্থা হবে
[এন] / ২ + [(এন / ২)] / ২ + [((এন / ২) / ২)] / ২ .....
অর্থাৎ:
এন / ২ 1 + এন / 2 2 + এন / 2 3 + ..... + এন / 2 এক্স … ..
অবধি ... আপনি অনুসন্ধান শেষ করেছেন, আপনি যে উপাদানটিতে সন্ধান করার চেষ্টা করছেন তা তালিকার শেষের দিকে।
এটি সবচেয়ে খারাপ অবস্থাটি দেখায় যখন আপনি N / 2 x পৌঁছে যান যেখানে x এরকম 2 x = N থাকে
অন্যান্য ক্ষেত্রে N / 2 x যেখানে x এরকম 2 x <N এক্স এর ন্যূনতম মান 1 হতে পারে, এটি সর্বোত্তম ক্ষেত্রে।
এখন থেকে গাণিতিকভাবে সবচেয়ে খারাপ ক্ষেত্রে যখন
2 x = N
=> লগ 2 (2 এক্স ) = লগ 2 (এন)
=> এক্স * লগ 2 (2) = লগ 2 (এন)
=> এক্স * 1 = লগ 2 (এন)
=> আরও আনুষ্ঠানিকভাবে অলগ 2 (এন) + 1⌋