>> ZAMYLA Chan: আপনি প্রতাপ প্রথম জিনিস খুঁজে বিষয়ে নোটিশ যে ইতিমধ্যে আমরা
কোড আমাদের জন্য লিখিত আছে.
এই ডিস্ট্রিবিউশন কোড বলা হয়.
তাই আমরা শুধু আমাদের নিজের লেখা করছি না আর স্ক্র্যাচ থেকে কোড.
বরং, আমরা voids পূরণ করছি কিছু পূর্বে উপস্থিত কোডের.
>> find.c প্রোগ্রাম সংখ্যার জন্য অনুরোধ জানানো হবে খড়ের গাদা ভরাট, অনুসন্ধান
ব্যবহারকারীর জমা সুই জন্য খড়ের গাদা, এবং এটি সাজানোর আহ্বান এবং দ্বারা এই আছে
অনুসন্ধান, ফাংশন নির্ধারণ helpers.c মধ্যে.
সুতরাং find.c ইতিমধ্যে করা হবে না.
আপনার কাজ সাহায্যকারী লিখতে হয়.
>> সুতরাং আমরা কি করছেন?
আমরা দুটি ফাংশন রূপায়ণকারী করছি.
সত্য ফেরৎ যা অনুসন্ধান, যদি একটি মান ফিরে, খড়ের গাদা পাওয়া যায়
মিথ্যা মূল্য যদি না খড়ের গাদা মধ্যে.
এবং তারপর আমরা সাজানোর প্রয়োগ করছি, যা মান বলা অ্যারে অসুস্থ.
তাই এর সন্ধান মোকাবেলা যাক.
>> অনুসন্ধান বর্তমানে বাস্তবায়িত হয় একটি রৈখিক অনুসন্ধান হিসাবে.
কিন্তু আপনি যে তুলনায় অনেক ভালো কিছু করতে পারি.
লিনিয়ার সার্চ n হে প্রয়োগ করা হয় বেশ ধীর যা সময়,, এটা, যদিও
এটি দেওয়া কোনো তালিকা অনুসন্ধান করতে পারেন.
আপনার কাজ বাইনারি অনুসন্ধান বাস্তবায়ন হয়, লগ n সময় হে চালানো হয়েছে.
যে বেশ দ্রুত.
>> কিন্তু একটি কড়ার আছে.
বাইনারি অনুসন্ধান শুধুমাত্র অনুসন্ধান করতে পারেন প্রাক সাজানো তালিকার মধ্যে.
কেন হল?
ভাল, এর একটি উদাহরণ তাকান.
মান একটি অ্যারের দেওয়া, খড়ের গাদা, আমরা খুঁজছেন করা চলুন
একটি সুই জন্য, এবং এই ইন উদাহরণস্বরূপ, পূর্ণসংখ্যা 3.
>> বাইনারি অনুসন্ধান কাজ করে যে ভাবে যে আমরা মাঝখানে মূল্য তুলনা
অনেক ভালো সুই যাও অ্যারে, কিভাবে আমরা মাঝখানে একটি টেলিফোন বইয়ের খোলা
সপ্তাহ 0 সালে পাতা.
তাই থেকে মধ্যম মূল্য তুলনা পরে সুই, আপনি হয় বাতিল পারেন
বাম বা অ্যারের ডান অর্ধেক আপনার সীমার কষাকষি দ্বারা.
এই ক্ষেত্রে, 3, যেহেতু আমাদের সুই, হয় কম 10, মধ্যম মান,
ডান বাউন্ড হ্রাস করতে পারেন.
>> কিন্তু আপনার কোট করতে চেষ্টা করুন যতটা সম্ভব টাইট.
মধ্যম মান সুই নয়, তাহলে আপনি আপনি করতে হবে না জানি
আপনার অনুসন্ধানের মধ্যে এটি অন্তর্ভুক্ত.
সুতরাং আবদ্ধ আপনার অধিকার আঁট পারেন শুধু একটি অতি ক্ষুদ্র অংশ আরো অনুসন্ধান কোট,
এবং তাই এবং তাই ঘোষণা, যতক্ষণ আপনি আপনার সুই খুঁজে.
>> তাই ছদ্ম কি কোড অনুরূপ?
ভাল, আমরা এখনও মাধ্যমে খুঁজছেন, যখন তালিকা এবং এখনও আছে
সন্ধান করার উপাদান, আমরা মধ্যম নিতে তালিকার এবং যে তুলনা
আমাদের সুই থেকে মধ্যম মান.
তারা সমান হন, তাহলে যে আমরা করেছি মানে সুই পাওয়া গেছে, এবং আমরা করতে পারেন
সত্য ফিরে.
>> অন্যথা, সুই কম হলে মধ্যম মান, তাহলে যে আমরা মানে
সঠিক অর্ধেক বাতিল করতে পারেন অ্যারে বামদিকে অনুসন্ধান.
অন্যথা, আমরা অনুসন্ধান করব অ্যারের ডান দিকে.
এবং শেষে, যদি আপনি কোনো না থাকে আরো অনুসন্ধান বাম উপাদান কিন্তু আপনি
এখনো আপনার সুই পাওয়া যায় না, তাহলে আপনি মিথ্যা ফিরে.
সুই স্পষ্টভাবে কারণ খড়ের গাদা হয় না.
>> এখন, এই ছদ্ম প্রায় এক ঝরঝরে জিনিস বাইনারি অনুসন্ধান করার কোড হল এটা করতে পারেন যে
একটি পুনরাবৃত্ত হয় হিসেবে ব্যাখ্যা করা বা recursive বাস্তবায়ন.
আপনি বলা হলে সুতরাং recursive হবে সার্চ মধ্যে অনুসন্ধান ফাংশন
অ্যারের হয় অর্ধেক উপর কাজ.
আমরা recursion একটু আবরণ করব পরে কোর্সে.
কিন্তু এটি একটি বিকল্প যে জানেন আপনি চেষ্টা করতে চান না.