1 00:00:00,000 --> 00:00:13,300 2 00:00:13,300 --> 00:00:15,010 >> Rob Bowden: হাই, আমি রব নই. 3 00:00:15,010 --> 00:00:16,790 কিভাবে আমরা একটি বাইনারি অনুসন্ধান চাকরী করেন? 4 00:00:16,790 --> 00:00:18,770 এর বাইরে খুঁজতে দিন. 5 00:00:18,770 --> 00:00:23,400 সুতরাং, এই সার্চ আমরা চলুন করে নোট recursively বাস্তবায়ন. 6 00:00:23,400 --> 00:00:27,470 আপনি বাইনারি অনুসন্ধান বাস্তবায়ন হতে পারে iteratively, তাই আপনি যে না হলে, 7 00:00:27,470 --> 00:00:29,280 যে পুরোপুরি সূক্ষ্ম. 8 00:00:29,280 --> 00:00:32,820 >> এখন প্রথম, এর স্মরণ করা যাক কি সার্চ করার পরামিতি হতে বোঝানো হয়. 9 00:00:32,820 --> 00:00:36,120 এখানে, আমরা যা int মান, দেখতে ব্যবহারকারী মান হতে অনুমিত 10 00:00:36,120 --> 00:00:37,320 জন্য অনুসন্ধান. 11 00:00:37,320 --> 00:00:40,800 আমরা int-মান অ্যারে, দেখতে যা আমরা করছি যা অ্যারে 12 00:00:40,800 --> 00:00:42,520 মূল্য জন্য অনুসন্ধান. 13 00:00:42,520 --> 00:00:45,602 এবং আমরা যা, int-এন দেখুন আমাদের অ্যারের দ্বারা. 14 00:00:45,602 --> 00:00:47,410 >> এখন, প্রথম জিনিস প্রথম. 15 00:00:47,410 --> 00:00:51,350 আমরা এন মধ্যে, 0 সমান দেখুন আমরা মিথ্যা ফিরে যে ক্ষেত্রে. 16 00:00:51,350 --> 00:00:54,770 আমরা একটি খালি আছে যে শুধু বলছে অ্যারে, মূল্য একটি ইন পরিষ্কারভাবে নয় 17 00:00:54,770 --> 00:00:57,860 খালি অ্যারের, তাই আমরা মিথ্যা ফিরে আসতে পারেন. 18 00:00:57,860 --> 00:01:01,250 >> এখন, আমরা আসলে বাইনারি করে যেতে চাই বাইনারি অনুসন্ধান সন্ধানে অংশ. 19 00:01:01,250 --> 00:01:04,780 সুতরাং, আমরা মধ্যম খুঁজতে চান এই অ্যারের উপাদান. 20 00:01:04,780 --> 00:01:09,130 এখানে, আমরা মধ্যম বিভক্ত এন সমান বলে 2 দ্বারা, মধ্যম উপাদান থেকে 21 00:01:09,130 --> 00:01:12,240 এর দৈর্ঘ্য হবে আমাদের অ্যারের 2 দ্বারা বিভক্ত. 22 00:01:12,240 --> 00:01:15,040 এখন আমরা দেখতে পরীক্ষা চলুন যদি মধ্যম উপাদান আমরা এসেছি মূল্য সমান 23 00:01:15,040 --> 00:01:16,160 জন্য অনুসন্ধান. 24 00:01:16,160 --> 00:01:21,030 মান মধ্যম মান সমান সুতরাং, আমরা আমরা খুঁজে পাওয়া যায়, যেহেতু সত্য ফিরে আসতে পারেন 25 00:01:21,030 --> 00:01:22,810 আমাদের অ্যারের মধ্যে মান. 26 00:01:22,810 --> 00:01:26,380 >> কিন্তু যে সত্য ছিল না যদি, এখন আমরা recursive যা করতে হবে 27 00:01:26,380 --> 00:01:27,840 বাইনারি অনুসন্ধান এর পদক্ষেপ. 28 00:01:27,840 --> 00:01:30,450 আমরা করতে হয় অনুসন্ধান করা প্রয়োজন অ্যারের বা বামে 29 00:01:30,450 --> 00:01:32,320 অ্যারের মাঝখানে. 30 00:01:32,320 --> 00:01:39,280 মাঝখানে এ মান যদি তাই এখানে, আমরা বলতে মান কম, যে যে মান মানে 31 00:01:39,280 --> 00:01:41,350 মাঝখানে তার চেয়ে অনেক বেশী ছিল অ্যারের. 32 00:01:41,350 --> 00:01:45,790 তাই মান ডান হতে হবে আমরা শুধু দিকে তাকিয়ে যে উপাদান. 33 00:01:45,790 --> 00:01:48,090 >> তাই এখানে, আমরা চলুন recursively অনুসন্ধান. 34 00:01:48,090 --> 00:01:50,320 এবং আমরা আমরা পার করছি তাকান করব এক সেকেন্ডের মধ্যে এই করতে. 35 00:01:50,320 --> 00:01:53,440 কিন্তু আমরা করতে অনুসন্ধান করতে যাচ্ছেন মধ্যম উপাদান ডান. 36 00:01:53,440 --> 00:01:57,710 এবং অন্যান্য ক্ষেত্রে, এর মানে হল যে মান মাঝখানে কম ছিল 37 00:01:57,710 --> 00:02:00,660 অ্যারে, এবং তাই আমরা চলুন বাঁদিকে অনুসন্ধান করতে. 38 00:02:00,660 --> 00:02:03,520 এখন, বাম হতে যাচ্ছে একটু সহজ তাকান. 39 00:02:03,520 --> 00:02:07,770 সুতরাং, আমরা আমরা recursively যে এখানে দেখুন যেখানে প্রথম অনুসন্ধানের আহ্বান 40 00:02:07,770 --> 00:02:10,120 যুক্তি, আবার, মান আমরা ধরে খুঁজছেন. 41 00:02:10,120 --> 00:02:14,970 দ্বিতীয় যুক্তি হতে যাচ্ছে আমরা উপর অনুসন্ধান করা হয় যে অ্যারে. 42 00:02:14,970 --> 00:02:17,090 আর শেষ উপাদান এখন মাঝখানে হয়. 43 00:02:17,090 --> 00:02:21,650 গত পরামিতি আমাদের int-হয় মনে রাখুন এন, যে আমাদের অ্যারের দ্বারা, তাই. 44 00:02:21,650 --> 00:02:25,310 >> অনুসন্ধান recursive কল, আমরা করছি এখন বলছে যে দৈর্ঘ্য 45 00:02:25,310 --> 00:02:27,230 অ্যারের মাঝখানে হয়. 46 00:02:27,230 --> 00:02:32,900 সুতরাং, আমাদের অ্যারের আকার 20 এবং আমরা এর ছিল মাঝখানে যেহেতু, সূচক 10 এ অনুসন্ধান 47 00:02:32,900 --> 00:02:36,930 20 2 দ্বারা বিভক্ত, যা আমরা করছি মানে নতুন রূপে 10 পার 48 00:02:36,930 --> 00:02:38,300 আমাদের অ্যারের দ্বারা. 49 00:02:38,300 --> 00:02:41,910 মনে রাখবেন যে আপনি একটি অ্যারে আছে দৈর্ঘ্য 10 হাজার, যা বৈধ মানে 50 00:02:41,910 --> 00:02:45,450 উপাদানের 0 9 মাধ্যমে সূচক আছে. 51 00:02:45,450 --> 00:02:50,120 তাই এই আমরা চাই ঠিক কি বাম - আমাদের আপডেট অ্যারে উল্লেখ 52 00:02:50,120 --> 00:02:53,010 মধ্যম উপাদান থেকে অ্যারে. 53 00:02:53,010 --> 00:02:55,710 >> সুতরাং, ডান খুঁজছেন হয় কিছুটা কঠিন. 54 00:02:55,710 --> 00:03:00,170 এখন প্রথম, এর দৈর্ঘ্য বিবেচনা করা যাক ডান অ্যারের 55 00:03:00,170 --> 00:03:01,240 মধ্যম উপাদান. 56 00:03:01,240 --> 00:03:08,390 সুতরাং, আমাদের অ্যারের আকার n এর ছিল তারপর, নতুন অ্যারের আকার এন বিয়োগ হতে হবে 57 00:03:08,390 --> 00:03:10,140 মধ্যম বিয়োগ 1. 58 00:03:10,140 --> 00:03:12,530 সুতরাং, এর এন বিয়োগ মাঝখানে মনে করা যাক. 59 00:03:12,530 --> 00:03:18,710 >> আবার, অ্যারের আকার 20 হাজার ছিল এবং আমরা মাঝখানে পেতে 2 দ্বারা বিভক্ত করা, 60 00:03:18,710 --> 00:03:23,540 তাই মধ্যম তারপর 10, এন বিয়োগ মাঝখানে হয় আমাদের 10, তাই 10 দিতে হবে 61 00:03:23,540 --> 00:03:25,330 মাঝখানে ডান উপাদান. 62 00:03:25,330 --> 00:03:27,780 কিন্তু আমরা এই বিয়োগ আছে 1, আমরা চাই না, যেহেতু 63 00:03:27,780 --> 00:03:29,700 মাঝখানে নিজেকে অন্তর্ভুক্ত. 64 00:03:29,700 --> 00:03:34,190 তাই এন বিয়োগ মধ্যম বিয়োগ 1 আমাদের দেয় ডান উপাদানের মোট সংখ্যা 65 00:03:34,190 --> 00:03:36,800 অ্যারের মধ্যে মধ্যম সূচক. 66 00:03:36,800 --> 00:03:41,870 >> এখন এখানে, মনে রাখবেন যে মধ্যম পরামিতি মানের অ্যারে. 67 00:03:41,870 --> 00:03:46,180 তাই এখানে, আমরা একটি ক্ষণস্থায়ী করছি আপডেট মান অ্যারে. 68 00:03:46,180 --> 00:03:50,930 এই মান প্লাস মাঝখানে প্লাস 1 হয় আসলে recursively কল বলছে 69 00:03:50,930 --> 00:03:56,460 অনুসন্ধান, নতুন অ্যারের মধ্যে ক্ষণস্থায়ী, যেখানে যে নতুন অ্যারে মাঝখানে শুরু হয় 70 00:03:56,460 --> 00:03:59,370 প্লাস আমাদের মূল মান অ্যারের মধ্যে একজন. 71 00:03:59,370 --> 00:04:05,400 >> যে জন্য একটি বিকল্প বাক্য গঠন, এখন যে আপনি হয়, পয়েন্টার দেখতে শুরু করেছি 72 00:04:05,400 --> 00:04:10,170 ampersand মান মাঝখানে প্লাস 1. 73 00:04:10,170 --> 00:04:17,149 সুতরাং, মধ্যম ঠিকানা দখল মূল্যবোধের প্লাস এক উপাদান. 74 00:04:17,149 --> 00:04:23,690 >> এখন, আপনি আরামদায়ক না হলে আপনি, যে ভালো একটি অ্যারের পরিবর্তন 75 00:04:23,690 --> 00:04:28,900 এছাড়াও ব্যবহার করে এই বাস্তবায়িত হতে পারেনি একটি recursive সাহায্যকারী ফাংশন, যেখানে 76 00:04:28,900 --> 00:04:31,680 যে সাহায্যকারী ফাংশন লাগে আরো আর্গুমেন্ট. 77 00:04:31,680 --> 00:04:36,610 সুতরাং পরিবর্তে শুধুমাত্র মান গ্রহণের, অ্যারে, এবং অ্যারের আকার, 78 00:04:36,610 --> 00:04:42,315 সাহায্যকারী ফাংশন আরো ব্যয় হতে পারে নিম্ন সূচক সহ আর্গুমেন্ট, 79 00:04:42,315 --> 00:04:45,280 আপনি অ্যারের মধ্যে যত্নশীল হবে এবং আপনি যত্ন করে উপরের সূচী 80 00:04:45,280 --> 00:04:46,300 অ্যারে সম্পর্কে. 81 00:04:46,300 --> 00:04:49,770 >> তাই উভয় নিম্ন সম্পর্কে অবগত থাকার সূচক এবং ঊর্ধ্ব সূচক, আপনি না 82 00:04:49,770 --> 00:04:52,780 কখনও পরিবর্তন করতে হবে মূল মান অ্যারে. 83 00:04:52,780 --> 00:04:56,390 আপনি ঠিক করা অব্যাহত রাখতে পারেন মান অ্যারে ব্যবহার. 84 00:04:56,390 --> 00:04:59,540 কিন্তু এখানে, আমরা একটি সাহায্যকারী প্রয়োজন হবে না বিজ্ঞপ্তি যতদিন আমরা করছি হিসাবে কাজ 85 00:04:59,540 --> 00:05:01,760 মূল সংশোধন করতে ইচ্ছুক মান অ্যারে. 86 00:05:01,760 --> 00:05:05,020 আমরা পাস করতে ইচ্ছুক একটি আপডেট মান. 87 00:05:05,020 --> 00:05:09,140 >> এখন, আমরা ধরে বাইনারি অনুসন্ধান করতে পারেন না পাঁচমিশালী যে একটি অ্যারে. 88 00:05:09,140 --> 00:05:12,220 সুতরাং, আসুন এই পাবার পেতে দেওয়া. 89 00:05:12,220 --> 00:05:17,650 এখন, যে ধরণের অতীতের হয় বিজ্ঞপ্তি দুই পরামিতি, যা মান int 90 00:05:17,650 --> 00:05:21,110 আমরা বাছাই করছি যে অ্যারের, এবং int-n, অ্যারের দ্বারা যা যে 91 00:05:21,110 --> 00:05:22,250 আমরা বাছাই করছেন. 92 00:05:22,250 --> 00:05:24,840 সুতরাং, এখানে আমরা বাস্তবায়ন করতে চাই একটি বাছাই আলগোরিদিম 93 00:05:24,840 --> 00:05:26,690 যে এন হে ছক হয়. 94 00:05:26,690 --> 00:05:30,560 আপনি বুদ্বুদ সাজানোর, নির্বাচন চয়ন পারে সাজানোর, অথবা সন্নিবেশ সাজানোর, অথবা 95 00:05:30,560 --> 00:05:32,670 এক না আছে কিছু অন্যান্য সাজানোর ক্লাসে দেখা. 96 00:05:32,670 --> 00:05:36,380 কিন্তু এখানে, আমরা চলুন নির্বাচন সাজানোর ব্যবহার. 97 00:05:36,380 --> 00:05:40,030 >> সুতরাং, আমরা বারবার চলুন সম্পূর্ণ অ্যারে উপর. 98 00:05:40,030 --> 00:05:44,360 ভাল, এখানে আমরা আমরা iterating করছি যে দেখুন 0 থেকে n যাও বিয়োগ 1. 99 00:05:44,360 --> 00:05:45,990 কেন না সব পথ এন আপ? 100 00:05:45,990 --> 00:05:49,320 ভাল, আমরা ইতিমধ্যেই সাজানো করেছি প্রথম তারপর এন বিয়োগ 1 উপাদান, 101 00:05:49,320 --> 00:05:54,420 ইতিমধ্যে হওয়া আবশ্যক কি শেষ উপাদান সঠিক জায়গায়, তাই ধরে বাছাই 102 00:05:54,420 --> 00:05:56,520 সম্পূর্ণ অ্যারে. 103 00:05:56,520 --> 00:05:58,770 >> এখন, মনে রাখবেন কিভাবে নির্বাচন সাজানোর কাজ করে. 104 00:05:58,770 --> 00:06:01,950 আমরা সম্পূর্ণ অ্যারে মাধ্যমে যেতে চলুন মধ্যে সর্বনিম্ন মূল্য খুঁজছেন 105 00:06:01,950 --> 00:06:04,480 অ্যারে এবং লাঠি যে শুরুতে. 106 00:06:04,480 --> 00:06:07,610 তারপর আমরা সমগ্র ঝালিয়ে চলুন অ্যারে আবার দ্বিতীয় খুঁজছি 107 00:06:07,610 --> 00:06:10,410 ক্ষুদ্রতম উপাদান, এবং লাঠি যে দ্বিতীয় অবস্থানে 108 00:06:10,410 --> 00:06:12,100 অ্যারে, এবং তাই. 109 00:06:12,100 --> 00:06:14,330 সুতরাং, যে এই কাজ হয় কি. 110 00:06:14,330 --> 00:06:17,290 >> এখানে, আমরা আমরা যে দেখছি বর্তমান সর্বনিম্ন সেটিং 111 00:06:17,290 --> 00:06:20,030 I-তম সূচক মূল্য. 112 00:06:20,030 --> 00:06:23,160 সুতরাং প্রথম পুনরাবৃত্তির উপর, আমরা চলুন সর্বনিম্ন মান হতে বিবেচনা 113 00:06:23,160 --> 00:06:25,030 আমাদের অ্যারের শুরু. 114 00:06:25,030 --> 00:06:28,500 এর পরে, আমরা উপর বারবার চলুন থেকে চেক অ্যারের, বাকি 115 00:06:28,500 --> 00:06:31,870 আর সেখানে কোন উপাদান ছোট দেখুন আমরা বর্তমানে যে এক 116 00:06:31,870 --> 00:06:33,900 সর্বনিম্ন বিবেচনা. 117 00:06:33,900 --> 00:06:38,840 >> তাই এখানে, ঞ প্লাস এক মান - যে আমরা বর্তমানে কি কম 118 00:06:38,840 --> 00:06:40,380 সর্বনিম্ন বিবেচনা. 119 00:06:40,380 --> 00:06:42,940 তারপর আমরা আপডেট করতে যাচ্ছেন কি আমরা ন্যূনতম মনে করি 120 00:06:42,940 --> 00:06:44,640 সূচক ঞ প্লাস 1. 121 00:06:44,640 --> 00:06:48,540 সুতরাং, সম্পূর্ণ অ্যারে জুড়ে যে কি, এবং এই পরে লুপ, সর্বনিম্ন জন্য 122 00:06:48,540 --> 00:06:53,160 থেকে সর্বনিম্ন উপাদান হতে হবে অ্যারের মধ্যে আমি তম অবস্থানে. 123 00:06:53,160 --> 00:06:57,350 >> আমরা যে আছে, আমরা অদলবদল করতে পারেন I-তম অবস্থান মধ্যে সর্বনিম্ন মূল্য 124 00:06:57,350 --> 00:06:58,230 অ্যারের মধ্যে. 125 00:06:58,230 --> 00:07:00,130 সুতরাং শুধু এই একটি আদর্শ ও swap হল. 126 00:07:00,130 --> 00:07:03,940 আমরা একটি অস্থায়ী মান সংরক্ষণ - অ্যারের মধ্যে আমি ম মান - 127 00:07:03,940 --> 00:07:08,460 অ্যারের মধ্যে আমি ম মূল্য পুরা সেখানে জন্যে যে সর্বনিম্ন মূল্য, 128 00:07:08,460 --> 00:07:13,580 এবং তারপর যেখানে ফিরে সংরক্ষণ ব্যবহার করা হয়, বর্তমান সর্বনিম্ন মূল্য 129 00:07:13,580 --> 00:07:16,460 অ্যারের মধ্যে আমি ম মূল্য, তাই আমরা তা হারান নি. 130 00:07:16,460 --> 00:07:20,510 >> সুতরাং, যে উপর অব্যাহত পরবর্তী পুনরাবৃত্তির. 131 00:07:20,510 --> 00:07:23,480 আমরা দ্বিতীয় খুঁজছেন শুরু করব সর্বনিম্ন মূল্য এবং মধ্যে যে সন্নিবেশ 132 00:07:23,480 --> 00:07:24,590 দ্বিতীয় অবস্থানে. 133 00:07:24,590 --> 00:07:27,440 তৃতীয় পুনরাবৃত্তির অন, আমরা জন্য সন্ধান করব তৃতীয় সর্বনিম্ন মূল্য এবং সন্নিবেশ 134 00:07:27,440 --> 00:07:31,550 যে তৃতীয় অবস্থান মধ্যে, এবং তাই আমরা একটি সাজানো অ্যারের আছে যতক্ষণ নেভিগেশন. 135 00:07:31,550 --> 00:07:33,820 আমার নাম রব, এবং এই নির্বাচন সাজানোর ছিল. 136 00:07:33,820 --> 00:07:39,456