1 00:00:00,000 --> 00:00:09,560 2 00:00:09,560 --> 00:00:13,120 >> ZAMYLA Chan: আপনি প্রতাপ প্রথম জিনিস খুঁজে বিষয়ে নোটিশ যে ইতিমধ্যে আমরা 3 00:00:13,120 --> 00:00:14,520 কোড আমাদের জন্য লিখিত আছে. 4 00:00:14,520 --> 00:00:16,219 এই ডিস্ট্রিবিউশন কোড বলা হয়. 5 00:00:16,219 --> 00:00:19,060 তাই আমরা শুধু আমাদের নিজের লেখা করছি না আর স্ক্র্যাচ থেকে কোড. 6 00:00:19,060 --> 00:00:23,870 বরং, আমরা voids পূরণ করছি কিছু পূর্বে উপস্থিত কোডের. 7 00:00:23,870 --> 00:00:28,860 >> find.c প্রোগ্রাম সংখ্যার জন্য অনুরোধ জানানো হবে খড়ের গাদা ভরাট, অনুসন্ধান 8 00:00:28,860 --> 00:00:33,260 ব্যবহারকারীর জমা সুই জন্য খড়ের গাদা, এবং এটি সাজানোর আহ্বান এবং দ্বারা এই আছে 9 00:00:33,260 --> 00:00:36,660 অনুসন্ধান, ফাংশন নির্ধারণ helpers.c মধ্যে. 10 00:00:36,660 --> 00:00:38,740 সুতরাং find.c ইতিমধ্যে করা হবে না. 11 00:00:38,740 --> 00:00:41,840 আপনার কাজ সাহায্যকারী লিখতে হয়. 12 00:00:41,840 --> 00:00:42,940 >> সুতরাং আমরা কি করছেন? 13 00:00:42,940 --> 00:00:45,270 আমরা দুটি ফাংশন রূপায়ণকারী করছি. 14 00:00:45,270 --> 00:00:50,110 সত্য ফেরৎ যা অনুসন্ধান, যদি একটি মান ফিরে, খড়ের গাদা পাওয়া যায় 15 00:00:50,110 --> 00:00:52,430 মিথ্যা মূল্য যদি না খড়ের গাদা মধ্যে. 16 00:00:52,430 --> 00:00:59,060 এবং তারপর আমরা সাজানোর প্রয়োগ করছি, যা মান বলা অ্যারে অসুস্থ. 17 00:00:59,060 --> 00:01:01,120 তাই এর সন্ধান মোকাবেলা যাক. 18 00:01:01,120 --> 00:01:04,550 >> অনুসন্ধান বর্তমানে বাস্তবায়িত হয় একটি রৈখিক অনুসন্ধান হিসাবে. 19 00:01:04,550 --> 00:01:06,620 কিন্তু আপনি যে তুলনায় অনেক ভালো কিছু করতে পারি. 20 00:01:06,620 --> 00:01:11,610 লিনিয়ার সার্চ n হে প্রয়োগ করা হয় বেশ ধীর যা সময়,, এটা, যদিও 21 00:01:11,610 --> 00:01:14,920 এটি দেওয়া কোনো তালিকা অনুসন্ধান করতে পারেন. 22 00:01:14,920 --> 00:01:21,190 আপনার কাজ বাইনারি অনুসন্ধান বাস্তবায়ন হয়, লগ n সময় হে চালানো হয়েছে. 23 00:01:21,190 --> 00:01:22,200 যে বেশ দ্রুত. 24 00:01:22,200 --> 00:01:24,240 >> কিন্তু একটি কড়ার আছে. 25 00:01:24,240 --> 00:01:28,910 বাইনারি অনুসন্ধান শুধুমাত্র অনুসন্ধান করতে পারেন প্রাক সাজানো তালিকার মধ্যে. 26 00:01:28,910 --> 00:01:31,450 কেন হল? 27 00:01:31,450 --> 00:01:33,690 ভাল, এর একটি উদাহরণ তাকান. 28 00:01:33,690 --> 00:01:37,350 মান একটি অ্যারের দেওয়া, খড়ের গাদা, আমরা খুঁজছেন করা চলুন 29 00:01:37,350 --> 00:01:41,510 একটি সুই জন্য, এবং এই ইন উদাহরণস্বরূপ, পূর্ণসংখ্যা 3. 30 00:01:41,510 --> 00:01:45,220 >> বাইনারি অনুসন্ধান কাজ করে যে ভাবে যে আমরা মাঝখানে মূল্য তুলনা 31 00:01:45,220 --> 00:01:49,430 অনেক ভালো সুই যাও অ্যারে, কিভাবে আমরা মাঝখানে একটি টেলিফোন বইয়ের খোলা 32 00:01:49,430 --> 00:01:51,720 সপ্তাহ 0 সালে পাতা. 33 00:01:51,720 --> 00:01:55,710 তাই থেকে মধ্যম মূল্য তুলনা পরে সুই, আপনি হয় বাতিল পারেন 34 00:01:55,710 --> 00:01:59,620 বাম বা অ্যারের ডান অর্ধেক আপনার সীমার কষাকষি দ্বারা. 35 00:01:59,620 --> 00:02:04,450 এই ক্ষেত্রে, 3, যেহেতু আমাদের সুই, হয় কম 10, মধ্যম মান, 36 00:02:04,450 --> 00:02:07,060 ডান বাউন্ড হ্রাস করতে পারেন. 37 00:02:07,060 --> 00:02:09,470 >> কিন্তু আপনার কোট করতে চেষ্টা করুন যতটা সম্ভব টাইট. 38 00:02:09,470 --> 00:02:12,690 মধ্যম মান সুই নয়, তাহলে আপনি আপনি করতে হবে না জানি 39 00:02:12,690 --> 00:02:14,070 আপনার অনুসন্ধানের মধ্যে এটি অন্তর্ভুক্ত. 40 00:02:14,070 --> 00:02:18,390 সুতরাং আবদ্ধ আপনার অধিকার আঁট পারেন শুধু একটি অতি ক্ষুদ্র অংশ আরো অনুসন্ধান কোট, 41 00:02:18,390 --> 00:02:22,840 এবং তাই এবং তাই ঘোষণা, যতক্ষণ আপনি আপনার সুই খুঁজে. 42 00:02:22,840 --> 00:02:24,580 >> তাই ছদ্ম কি কোড অনুরূপ? 43 00:02:24,580 --> 00:02:28,980 ভাল, আমরা এখনও মাধ্যমে খুঁজছেন, যখন তালিকা এবং এখনও আছে 44 00:02:28,980 --> 00:02:33,540 সন্ধান করার উপাদান, আমরা মধ্যম নিতে তালিকার এবং যে তুলনা 45 00:02:33,540 --> 00:02:36,020 আমাদের সুই থেকে মধ্যম মান. 46 00:02:36,020 --> 00:02:38,380 তারা সমান হন, তাহলে যে আমরা করেছি মানে সুই পাওয়া গেছে, এবং আমরা করতে পারেন 47 00:02:38,380 --> 00:02:40,160 সত্য ফিরে. 48 00:02:40,160 --> 00:02:43,940 >> অন্যথা, সুই কম হলে মধ্যম মান, তাহলে যে আমরা মানে 49 00:02:43,940 --> 00:02:48,350 সঠিক অর্ধেক বাতিল করতে পারেন অ্যারে বামদিকে অনুসন্ধান. 50 00:02:48,350 --> 00:02:51,860 অন্যথা, আমরা অনুসন্ধান করব অ্যারের ডান দিকে. 51 00:02:51,860 --> 00:02:55,470 এবং শেষে, যদি আপনি কোনো না থাকে আরো অনুসন্ধান বাম উপাদান কিন্তু আপনি 52 00:02:55,470 --> 00:02:58,030 এখনো আপনার সুই পাওয়া যায় না, তাহলে আপনি মিথ্যা ফিরে. 53 00:02:58,030 --> 00:03:02,960 সুই স্পষ্টভাবে কারণ খড়ের গাদা হয় না. 54 00:03:02,960 --> 00:03:06,200 >> এখন, এই ছদ্ম প্রায় এক ঝরঝরে জিনিস বাইনারি অনুসন্ধান করার কোড হল এটা করতে পারেন যে 55 00:03:06,200 --> 00:03:11,000 একটি পুনরাবৃত্ত হয় হিসেবে ব্যাখ্যা করা বা recursive বাস্তবায়ন. 56 00:03:11,000 --> 00:03:14,900 আপনি বলা হলে সুতরাং recursive হবে সার্চ মধ্যে অনুসন্ধান ফাংশন 57 00:03:14,900 --> 00:03:18,400 অ্যারের হয় অর্ধেক উপর কাজ. 58 00:03:18,400 --> 00:03:20,750 আমরা recursion একটু আবরণ করব পরে কোর্সে. 59 00:03:20,750 --> 00:03:23,210 কিন্তু এটি একটি বিকল্প যে জানেন আপনি চেষ্টা করতে চান না. 60 00:03:23,210 --> 00:03:24,460