1 00:00:00,000 --> 00:00:11,904 >> [সঙ্গীত বাজাচ্ছি] 2 00:00:11,904 --> 00:00:12,910 >> অধ্যাপক: ঠিক আছে. 3 00:00:12,910 --> 00:00:16,730 এটি CS50 এবং এই হল সপ্তাহে তিন শেষে. 4 00:00:16,730 --> 00:00:20,230 তাই আমরা এখানে এসেছি আজ, না স্যান্ডার্স মধ্যে পরিবর্তে Weidner লাইব্রেরী থিয়েটারের. 5 00:00:20,230 --> 00:00:23,170 যা এর ভিতরে একটি স্টুডিও Hauser স্টুডিও হিসেবে পরিচিত, 6 00:00:23,170 --> 00:00:28,310 অথবা আমরা স্টুডিও এইচ বলে, বা করিবে আপনি যে তামাশা উপভোগ তাহলে আমরা কথাই, 7 00:00:28,310 --> 00:00:30,540 এটা থেকে আসলে সহপাঠী, মার্ক, অনলাইন, 8 00:00:30,540 --> 00:00:32,420 যারা টুইটার মাধ্যমে যতটা প্রস্তাব. 9 00:00:32,420 --> 00:00:34,270 এখন প্রায় শীতল কি একটি স্টুডিওতে এখানে হচ্ছে 10 00:00:34,270 --> 00:00:38,410 আমি এই সবুজ দ্বারা বেষ্টিত করছি না যে দেয়াল, একটি সবুজ পর্দা বা Chromakey, 11 00:00:38,410 --> 00:00:43,290 তাই CS50 এর মানে হল যে, যা বলতে আমার অজান্তে প্রকাশনা দল, 12 00:00:43,290 --> 00:00:47,380 এই মুহূর্তে, স্থাপন করা যায় নি আমার সবচেয়ে বিশ্বের কোথাও, 13 00:00:47,380 --> 00:00:48,660 ভাল বা খারাপ. 14 00:00:48,660 --> 00:00:51,800 >> এখন কি এগিয়ে, সমস্যা সেট মিথ্যা দুই, এই সপ্তাহের জন্য আপনার হাতে থাকে 15 00:00:51,800 --> 00:00:53,830 কিন্তু সমস্যা হল সাথে সেট তিনটি এই আসছে সপ্তাহে, 16 00:00:53,830 --> 00:00:56,600 আপনার সাথে চ্যালেঞ্জ করা হবে 15 তথাকথিত খেলা, 17 00:00:56,600 --> 00:00:58,960 একটি পুরানো পার্টি পক্ষে যে আপনি প্রাপ্তির প্রত্যাহার করা হতে পারে 18 00:00:58,960 --> 00:01:02,030 আভা আছে একটি শিশু হিসাবে নিচে আপ স্লাইড পারেন যে সংখ্যার, 19 00:01:02,030 --> 00:01:05,790 বাম এবং ডান, এবং এক ফাঁক আছে ধাঁধা মধ্যে, যার মধ্যে আপনি 20 00:01:05,790 --> 00:01:07,840 আসলে যারা ধাঁধা টুকরা স্লাইড পারেন. 21 00:01:07,840 --> 00:01:11,150 পরিশেষে আপনি এই পাবেন কিছু অর্ধ র্যান্ডম ক্রম ধাঁধা, 22 00:01:11,150 --> 00:01:12,940 এবং লক্ষ্য করা হয় নীচে, উপরে এটা বাছা, 23 00:01:12,940 --> 00:01:16,310 এক থেকে, ডান থেকে বাম আপ 15 মাধ্যমে সব পথ. 24 00:01:16,310 --> 00:01:19,360 >> দুর্ভাগ্যবশত, বাস্তবায়ন আপনার হাতে আছে করব 25 00:01:19,360 --> 00:01:21,590 সফটওয়্যার হতে যাচ্ছে ভিত্তিক, না শারীরিকভাবে. 26 00:01:21,590 --> 00:01:25,280 আপনি আসলে লিখতে আছে চলুন কোড যা একজন ছাত্র বা ব্যবহারকারী সাথে 27 00:01:25,280 --> 00:01:26,760 15 এর খেলা খেলতে. 28 00:01:26,760 --> 00:01:29,030 এবং বাস্তবিকই, হ্যাকার 15 খেলার সংস্করণ, 29 00:01:29,030 --> 00:01:32,155 আপনি একটি চ্যালেঞ্জ বাস্তবায়ন হবেন, এই পুরানো স্কুল না শুধু বাজানো 30 00:01:32,155 --> 00:01:35,010 খেলা, বরং সমাধান এটা নিয়ে, ঈশ্বরের মোড বাস্তবায়ন, 31 00:01:35,010 --> 00:01:38,280 তাই কথা বলতে আসলে যে মানুষের জন্য পাজল solves, 32 00:01:38,280 --> 00:01:41,080 ইঙ্গিতটি সঙ্গে তাদের প্রদানের মাধ্যমে, ইঙ্গিতটি পরে, ইঙ্গিতটি পরে. 33 00:01:41,080 --> 00:01:42,280 যে পরের সপ্তাহে যাতে আরও বেশি. 34 00:01:42,280 --> 00:01:43,720 কিন্তু যে এগিয়ে মিথ্যা কি. 35 00:01:43,720 --> 00:01:47,610 >> এখন জন্য রিকল যে এই সপ্তাহের শুরুর দিকে আপনি হবে যদি আমরা, এই cliffhanger ছিল 36 00:01:47,610 --> 00:01:52,560 যদ্দ্বারা আমরা বাছাই করছিলে সেরা জ্ঞানী n হে বড় একটি ঊর্ধ্ব আবদ্ধ ছিল 37 00:01:52,560 --> 00:01:53,210 ছক. 38 00:01:53,210 --> 00:01:56,520 অন্য কথায়, বাবল সাজান, নির্বাচন সাজানোর, সন্নিবেশ সাজানোর, 39 00:01:56,520 --> 00:01:59,120 তাদের সব, বিভিন্ন সময় তাদের বাস্তবায়ন, 40 00:01:59,120 --> 00:02:03,480 চলমান ছক একটি এন মধ্যে devolved খুব খারাপ ক্ষেত্রে সময়. 41 00:02:03,480 --> 00:02:06,010 এবং আমরা সাধারণত যে অনুমান বাছাইয়ের জন্য খুব খারাপ ক্ষেত্রে 42 00:02:06,010 --> 00:02:08,814 এক যে আপনার ইনপুট হয় সম্পূর্ণভাবে পিছন হয়. 43 00:02:08,814 --> 00:02:11,980 এবং প্রকৃতপক্ষে, এটা বেশ কয়েক ধাপ গ্রহণ যারা আলগোরিদিম প্রতিটি বাস্তবায়ন. 44 00:02:11,980 --> 00:02:15,110 >> এখন ক্লাসে খুব শেষে রিকল, আমরা বাবল সাজান তুলনায় 45 00:02:15,110 --> 00:02:19,390 অন্য এক বিরুদ্ধে নির্বাচন সাজানোর বিরুদ্ধে যে আমরা, সময়ে একত্রীকরণ সাজানোর বলা 46 00:02:19,390 --> 00:02:22,120 এবং আমি এটা গ্রহণ যে প্রস্তাব সপ্তাহ থেকে একটি পাঠ সুবিধা 47 00:02:22,120 --> 00:02:24,060 শূন্য ভাগ অতিক্রম. 48 00:02:24,060 --> 00:02:28,810 আর একরকম কিছু অর্জনের লগারিদমিক পরিণামে সময় চলমান, 49 00:02:28,810 --> 00:02:31,024 পরিবর্তে কিছু যে বিশুদ্ধরূপে দ্বিঘাত এর. 50 00:02:31,024 --> 00:02:33,440 এবং এটা খুবই লগারিদমিক না এটা যে তুলনায় একটু বেশি. 51 00:02:33,440 --> 00:02:36,520 কিন্তু আপনি বর্গ থেকে প্রত্যাহার হলে এটা অনেক দ্রুত, অনেক ছিল. 52 00:02:36,520 --> 00:02:38,210 আসুন আমরা যেখানে আপনি বাম বন্ধ কটাক্ষপাত করা যাক. 53 00:02:38,210 --> 00:02:41,880 54 00:02:41,880 --> 00:02:45,370 >> নির্বাচন বনাম বাবল সাজান সাজান একত্রীকরণ সাজানোর বনাম. 55 00:02:45,370 --> 00:02:47,700 এখন তারা সব, চালাচ্ছেন তত্ত্ব, একই সময়ে. 56 00:02:47,700 --> 00:02:50,510 CPU- র একই গতিতে চলমান. 57 00:02:50,510 --> 00:02:54,990 কিন্তু আপনি কিভাবে বিরক্তিকর এই বোধ করতে পারে খুব দ্রুত হয়ে যাচ্ছে, 58 00:02:54,990 --> 00:02:58,790 এবং ঠিক কিভাবে দ্রুত, আমরা যখন উদ্বুদ্ধ সপ্তাহে শূন্য এর আলগোরিদিম একটি বিট, 59 00:02:58,790 --> 00:03:00,080 আমরা জিনিস গতি বাড়াতে পারেন. 60 00:03:00,080 --> 00:03:01,630 >> মার্ক সাজান দেখায় আশ্চর্যজনক. 61 00:03:01,630 --> 00:03:05,220 কিভাবে আমরা, যাতে এটি লিভারেজ পারেন আরো দ্রুত সংখ্যা সাজাতে. 62 00:03:05,220 --> 00:03:07,140 ওয়েল এর ফিরে মনে করা যাক একটি উপাদান যে আমরা 63 00:03:07,140 --> 00:03:10,380 যে সপ্তাহে শূন্য ফিরে ছিল একটি ফোন বই কেউ অনুসন্ধানের জন্য, 64 00:03:10,380 --> 00:03:12,380 এবং যে প্রত্যাহার আমরা প্রস্তাব যে pseudocode হয়, 65 00:03:12,380 --> 00:03:14,560 যার মাধ্যমে আমরা জানতে পারেন মাইক স্মিথ মত কেউ, 66 00:03:14,560 --> 00:03:16,310 এই মত সামান্য কিছু লাগছিল. 67 00:03:16,310 --> 00:03:20,820 >> এখন বিশেষ করে দেখব লাইনে 7 ও 8, এবং 10 ও 11, 68 00:03:20,820 --> 00:03:25,240 উপরন্তু আমরা যদ্দ্বারা যা, যে লুপ রাজি করানো আবার, এবং আবার ফিরে লাইন 3 যাচ্ছে, 69 00:03:25,240 --> 00:03:26,520 এবং আবার. 70 00:03:26,520 --> 00:03:31,790 কিন্তু আমরা দেখতে পারেন যে দেখা যাচ্ছে এই অ্যালগরিদম, এখানে pseudocode মধ্যে, 71 00:03:31,790 --> 00:03:33,620 আরো হোলিস্টিক একটু. 72 00:03:33,620 --> 00:03:35,960 আসলে, আমি কি চাই এখানে পর্দায় এ, 73 00:03:35,960 --> 00:03:41,180 অনুসন্ধানের জন্য একটি অ্যালগরিদম হয় পেজের কিছু সেট মধ্যে মাইক স্মিথ. 74 00:03:41,180 --> 00:03:45,520 এবং প্রকৃতপক্ষে, আমরা এই প্রক্রিয়া সহজ করতে পারে ঐ লাইনের 7 ও 8 এর মধ্যে অ্যালগরিদম, 75 00:03:45,520 --> 00:03:49,860 এবং 10 ও 11 শুধু, এই বলে যা আমি হলুদ এখানে উপস্থাপন করেছি. 76 00:03:49,860 --> 00:03:52,210 অন্য কথায়, যদি মাইক স্মিথ, আগে বই হয় 77 00:03:52,210 --> 00:03:55,004 আমরা ধাপে উল্লেখ করার প্রয়োজন হবে না ধাপে এখন কিভাবে তাকে খুজে বের করতে. 78 00:03:55,004 --> 00:03:56,920 আমরা উল্লেখ করতে হবে না লাইন 3 ফিরে যেতে, 79 00:03:56,920 --> 00:03:58,960 কেন আমরা শুধু পরিবর্তে না, বলুন, আরো সাধারণভাবে, 80 00:03:58,960 --> 00:04:01,500 মাইক জন্য অনুসন্ধান বইয়ের বাম অর্ধেক. 81 00:04:01,500 --> 00:04:03,960 >> বিপরীতভাবে, মাইক হয় তাহলে আসলে পরে বইয়ে, 82 00:04:03,960 --> 00:04:07,540 কেন আমরা শুধু উদ্ধতি অনুসন্ধান উদ্ধৃত না বইয়ের ডান অর্ধেক মাইক জন্য. 83 00:04:07,540 --> 00:04:11,030 অন্য কথায়, আমরা কেন পারি না? সাজান নিজেদের বলছে পান্ট, 84 00:04:11,030 --> 00:04:13,130 এই মাইক জন্য অনুসন্ধান বইয়ের উপসেট, 85 00:04:13,130 --> 00:04:16,279 এবং আমাদের বিদ্যমান তা ছেড়ে অ্যালগরিদম আমাদের জানাতে 86 00:04:16,279 --> 00:04:18,750 মাইক জন্য আপনাকে কিভাবে বইয়ের যে বাম অর্ধেক. 87 00:04:18,750 --> 00:04:20,750 অন্য কথায়, আমাদের অ্যালগরিদম কিনা এটা কাজ করে 88 00:04:20,750 --> 00:04:24,670 এই নিয়ে এই বেধ একটি ফোন বই, বেধ, বা কোন সবটা বেধ. 89 00:04:24,670 --> 00:04:27,826 সুতরাং আমরা পৌনঃপুনিকভাবে পারেন এই অ্যালগরিদম সংজ্ঞায়িত. 90 00:04:27,826 --> 00:04:29,950 অন্য কথায়, উপর এখানে পর্দা, একটি অ্যালগরিদম হয় 91 00:04:29,950 --> 00:04:33,130 মাইক স্মিথ অনুসন্ধানের জন্য একটি ফোন বইয়ের পেজ মধ্যে. 92 00:04:33,130 --> 00:04:37,410 তাই লাইন 7 ও 10 সালে, এর দিন ঠিক ঠিক বলতে. 93 00:04:37,410 --> 00:04:40,250 আর আমি এই শব্দটি একটি মুহূর্ত ব্যবহার আগে, এবং প্রকৃতপক্ষে, recursion 94 00:04:40,250 --> 00:04:42,450 বাজওয়ার্ড, এখন জন্য এবং এটা এই প্রক্রিয়া 95 00:04:42,450 --> 00:04:47,210 একরকম করে চক্রাকার কিছু করছেন যদি আপনি ইতিমধ্যে আছে কোড ব্যবহার করে, 96 00:04:47,210 --> 00:04:49,722 এবং, আবার এটি আহ্বান এবং আবার, এবং আবার. 97 00:04:49,722 --> 00:04:51,930 এখন এটা গুরুত্বপূর্ণ হতে যাচ্ছে আমরা একরকম নীচে যে 98 00:04:51,930 --> 00:04:53,821 আউট, এবং অসীম দীর্ঘ যে কি না. 99 00:04:53,821 --> 00:04:56,070 অন্যথায় আমরা চলুন প্রকৃতপক্ষে অসীম লুপ আছে. 100 00:04:56,070 --> 00:04:59,810 কিন্তু আমরা এই ধারণা ধার নিতে পারেন, তাহলে দেখা যাক একটি পুনরাবৃত্তির, আবার কিছু কাজ 101 00:04:59,810 --> 00:05:03,600 এবং আবার এবং আবার, সমাধান করার একত্রীকরণ মাধ্যমে বাছাই সমস্যা 102 00:05:03,600 --> 00:05:05,900 সাজান, সব আরো দক্ষতার. 103 00:05:05,900 --> 00:05:06,970 >> তাই আমি আপনাকে সাজান একত্রীকরণ দিতে. 104 00:05:06,970 --> 00:05:07,920 একবার দেখা যাক. 105 00:05:07,920 --> 00:05:10,850 সুতরাং এখানে pseudocode সঙ্গে, হয় আমরা বাছাই বাস্তবায়ন করতে পারে, যা 106 00:05:10,850 --> 00:05:12,640 একত্রীকরণ সাজানোর নামক এই এলগরিদম ব্যবহার করে. 107 00:05:12,640 --> 00:05:13,880 এবং এটা বেশ সহজভাবে এই জন্য. 108 00:05:13,880 --> 00:05:15,940 এন উপাদানের ইনপুটের, অন্য কথায়, যদি আপনি 109 00:05:15,940 --> 00:05:18,830 n উপাদান দেওয়া এবং সংখ্যা এবং ইনপুট বা যাই হোক না কেন চিঠি, 110 00:05:18,830 --> 00:05:22,430 আপনি n উপাদান, তাহলে প্রদত্ত করছি এন 2 চেয়ে কম হয়, শুধু ফিরে আসতে. 111 00:05:22,430 --> 00:05:22,930 রাইট? 112 00:05:22,930 --> 00:05:26,430 এন, যে 2 চেয়ে কম হয় তাহলে কারণ এর মানে হল যে উপাদানের আমার তালিকা 113 00:05:26,430 --> 00:05:30,446 আকার 0 বা 1 হয়, এবং যারা তুচ্ছ ক্ষেত্রে উভয় ইন, 114 00:05:30,446 --> 00:05:31,570 ইতিমধ্যে তালিকা অনুসারে বাছাই করা হয়. 115 00:05:31,570 --> 00:05:32,810 কোন তালিকায় না থাকে, তাহলে এটা সাজানো. 116 00:05:32,810 --> 00:05:35,185 এবং দৈর্ঘ্য একটি তালিকা আছে কিনা 1, এটা সম্ভবত সাজানো. 117 00:05:35,185 --> 00:05:38,280 সুতরাং অ্যালগরিদম শুধুমাত্র প্রয়োজন সত্যিই আকর্ষণীয় কিছু, 118 00:05:38,280 --> 00:05:40,870 আমরা দুই বা ততোধিক আছে উপাদান আমাদের দেওয়া. 119 00:05:40,870 --> 00:05:42,440 সুতরাং আসুন তাহলে যাদু তাকান. 120 00:05:42,440 --> 00:05:47,500 অন্য উপাদানের বাম অর্ধেক বাছাই, তারপর উপাদানের অধিকার অর্ধেক সাজাতে, 121 00:05:47,500 --> 00:05:49,640 তারপর সাজানো আংশিক একত্রীকরণ. 122 00:05:49,640 --> 00:05:52,440 এবং নম মনের ধরনের কি এখানে, আমি সত্যিই না যে হয় 123 00:05:52,440 --> 00:05:56,190 আপনাকে বলেছে আছে বলে মনে হচ্ছে শুধু এখনো কিছু, তাই না? 124 00:05:56,190 --> 00:05:59,560 সমস্ত আমি একটি তালিকা দেওয়া হয় বলেন করেছি n উপাদান, বাম অর্ধেক বাছাই 125 00:05:59,560 --> 00:06:01,800 তারপর ডান অর্ধেক, তারপর সাজানো আংশিক একত্রীকরণ, 126 00:06:01,800 --> 00:06:03,840 কিন্তু যেখানে প্রকৃত গোপন সস হয়? 127 00:06:03,840 --> 00:06:05,260 অ্যালগরিদম কোথায়? 128 00:06:05,260 --> 00:06:09,150 আচ্ছা এটা ঐ দুটি লাইন দেখা যাচ্ছে যে প্রথমত, উপাদানের সাজান বাম অর্ধেক, 129 00:06:09,150 --> 00:06:13,970 এবং উপাদানের সাজান ডান অর্ধেক, রিকার্সিভ কল হয়, তাই কথা বলতে. 130 00:06:13,970 --> 00:06:16,120 >> সব পরে, এই সময়ে সময় বিন্দু, আমি থাকতে না 131 00:06:16,120 --> 00:06:18,950 যা দিয়ে আপনি একটি অ্যালগরিদম উপাদান আভা বাছা? 132 00:06:18,950 --> 00:06:19,450 হ্যাঁ. 133 00:06:19,450 --> 00:06:20,620 এটা ঠিক এখানে. 134 00:06:20,620 --> 00:06:25,180 এটা পর্দায় ঠিক এখানে, এবং তাই আমি ধাপের যে একই সেট ব্যবহার করতে পারেন 135 00:06:25,180 --> 00:06:28,500 বাম অর্ধেক বাছাই, ডান অর্ধেক হিসাবে আমি করতে. 136 00:06:28,500 --> 00:06:30,420 এবং প্রকৃতপক্ষে, আবার এবং আবার. 137 00:06:30,420 --> 00:06:34,210 তাই একরকম বা অন্য, এবং আমরা শীঘ্রই হবে , একত্রীকরণ ধরণের যাদু এই দেখুন 138 00:06:34,210 --> 00:06:37,967 যে খুব চূড়ান্ত এমবেড করা হয় লাইন, সাজানো আংশিক মার্জ. 139 00:06:37,967 --> 00:06:39,300 আর যে মোটামুটি স্বজ্ঞাত মনে. 140 00:06:39,300 --> 00:06:41,050 আপনি, আপনি দুই অর্ধেক গ্রহণ করা, এবং একরকম, তাদের একসঙ্গে একত্রীকরণ, 141 00:06:41,050 --> 00:06:43,260 এবং আমরা এই দেখতে পাবেন মূর্তভাবে একটি মুহূর্ত. 142 00:06:43,260 --> 00:06:45,080 >> কিন্তু এই একটি সম্পূর্ণ এলগরিদম. 143 00:06:45,080 --> 00:06:46,640 আর এর ঠিক কেন দেখতে দিন. 144 00:06:46,640 --> 00:06:50,912 আচ্ছা আমরা এই একই দেওয়া করছি যে অনুমান পর্দায় এখানে আটটি উপাদান, এক 145 00:06:50,912 --> 00:06:53,120 আট মাধ্যমে, কিন্তু তারা আছেন আপাতদৃষ্টিতে র্যান্ডম ক্রম. 146 00:06:53,120 --> 00:06:55,320 এবং হাতের লক্ষ্য এই উপাদান বাছাই. 147 00:06:55,320 --> 00:06:58,280 ওয়েল আমি সম্পর্কে কিভাবে যেতে পারেন আবার ব্যবহার এরকম, 148 00:06:58,280 --> 00:07:00,407 এই pseudocode অনুযায়ী, সাজানোর একত্রীকরণ? 149 00:07:00,407 --> 00:07:02,740 এবং আবার, এই বদ্ধমূল আপনার মন, শুধু একটি মুহূর্ত জন্য. 150 00:07:02,740 --> 00:07:05,270 প্রথম ক্ষেত্রে প্রশংসনীয় তুচ্ছ, এটা 2 কম হলে, 151 00:07:05,270 --> 00:07:07,060 শুধু কাজ করতে হবে কোন কাজ নেই, ফিরে আসতে. 152 00:07:07,060 --> 00:07:09,290 সত্যিই তাই মাত্র তিনটি আছে পদক্ষেপ সত্যিই মনে রাখার মতো. 153 00:07:09,290 --> 00:07:11,081 আবার, এবং আবার, আমি আছি আছে চান যাচ্ছে 154 00:07:11,081 --> 00:07:13,980 বাম অর্ধেক বাছাই, ডান অর্ধেক বাছাই, 155 00:07:13,980 --> 00:07:15,890 এবং তারপরে তাদের দুই অর্ধেক, সাজানো হয় 156 00:07:15,890 --> 00:07:18,710 আমি তাদের একসঙ্গে একত্রীকরণ করতে চান এক অনুসারে সাজানো তালিকা মধ্যে. 157 00:07:18,710 --> 00:07:19,940 সুতরাং, এটা মনে রেখো. 158 00:07:19,940 --> 00:07:21,310 >> সুতরাং এখানে মূল তালিকা. 159 00:07:21,310 --> 00:07:23,510 এর একটি হিসাবে এই আচরণ করা যাক অ্যারে, আমরা শুরু হিসেবে 160 00:07:23,510 --> 00:07:25,800 সপ্তাহে দুই, যা একটি হল মেমরি সংলগ্ন ব্লক. 161 00:07:25,800 --> 00:07:28,480 এই ক্ষেত্রে, আট ধারণকারী সংখ্যা, ফিরে ফিরে যাও যাও যাও. 162 00:07:28,480 --> 00:07:30,700 এবং এর এখন একত্রীকরণ সাজানোর প্রয়োগ করা যাক. 163 00:07:30,700 --> 00:07:33,300 তাই আমার প্রথম সাজাতে চান এই তালিকার বাম অর্ধেক, 164 00:07:33,300 --> 00:07:37,370 এবং, অতএব, এর দিন 4, 8, 6, এবং 2 উপর ফোকাস. 165 00:07:37,370 --> 00:07:41,000 >> এখন আমি কিভাবে যান আকার 4 একটি তালিকা বাছাইয়ের? 166 00:07:41,000 --> 00:07:45,990 ওয়েল আমি এখন বিবেচনা করতে হবে বাম অর্ধেক বাম শ্রেণীবিভাজন. 167 00:07:45,990 --> 00:07:47,720 আবার, এর মাত্র কয়েক মিনিটের জন্য গুটিয়ে দেওয়া. 168 00:07:47,720 --> 00:07:51,010 Pseudocode হয় এই হয়, তাহলে, এবং আমি আট উপাদান দেওয়া করছি, 169 00:07:51,010 --> 00:07:53,230 8 স্পষ্টত বেশী এর চেয়ে বড় বা 2 সমান. 170 00:07:53,230 --> 00:07:54,980 সঙ্গে সুতরাং প্রথম ক্ষেত্রে প্রযোজ্য নয়. 171 00:07:54,980 --> 00:07:58,120 তাই আট উপাদান বাছাই, আমি প্রথম , উপাদানের বাম অর্ধেক বাছাই 172 00:07:58,120 --> 00:08:01,930 তারপর আমি তারপর আমি একত্রীকরণ, ডান অর্ধেক বাছাই দুটি সাজানো আংশিক, 4 আকার প্রতিটি. 173 00:08:01,930 --> 00:08:02,470 ঠিক আছে. 174 00:08:02,470 --> 00:08:07,480 >> আপনি শুধু আমাকে বলেন করেছি কিন্তু যদি, বাছা এখন 4 আকার, যা বাম অর্ধেক, 175 00:08:07,480 --> 00:08:09,350 কিভাবে আমি বাম অর্ধেক না? 176 00:08:09,350 --> 00:08:11,430 ওয়েল আমি একটি আছে চারটি উপাদানের ইনপুট, 177 00:08:11,430 --> 00:08:14,590 আমি প্রথম বাম বাছা দুই, তারপর ডান দুই, 178 00:08:14,590 --> 00:08:16,210 এবং তারপর আমি তাদের একসঙ্গে একত্রীকরণ. 179 00:08:16,210 --> 00:08:18,700 তাই আবার, এটি একটি বিট হয়ে একটি মনের এখানে খেলা নমন, 180 00:08:18,700 --> 00:08:21,450 আপনি, কারণ ধরনের, এর সাথে আছে আপনি গল্প আছে যেখানে আপনি মনে রাখা, 181 00:08:21,450 --> 00:08:23,620 কিন্তু দিনের শেষে, উপাদানের কোনো নম্বর দেওয়া, 182 00:08:23,620 --> 00:08:25,620 আপনাকে প্রথমে বাছাই করতে চান বাম অর্ধেক, তারপর ডান অর্ধেক, 183 00:08:25,620 --> 00:08:26,661 তারপর তাদের একসাথে মার্জ. 184 00:08:26,661 --> 00:08:28,630 এর ঠিক তা করতে শুরু করা যাক. 185 00:08:28,630 --> 00:08:30,170 এখানে আটটি উপাদান ইনপুট. 186 00:08:30,170 --> 00:08:31,910 এখন আমরা এখানে বাম অর্ধেক এ খুঁজছেন. 187 00:08:31,910 --> 00:08:33,720 আমি কিভাবে চারটি উপাদান বাছাই না? 188 00:08:33,720 --> 00:08:35,610 ওয়েল আমি প্রথম বাম অর্ধেক বাছাই. 189 00:08:35,610 --> 00:08:37,720 এখন কিভাবে আমি বাম অর্ধেক না? 190 00:08:37,720 --> 00:08:39,419 ওয়েল আমি দুটি উপাদান দেওয়া হয়েছে. 191 00:08:39,419 --> 00:08:41,240 তাই আসুন এই দুটি উপাদান বাছাই করা যাক. 192 00:08:41,240 --> 00:08:44,540 2 এর চেয়ে বড় বা 2 সমান, অবশ্যই. 193 00:08:44,540 --> 00:08:46,170 সুতরাং যে প্রথম ক্ষেত্রে প্রযোজ্য নয়. 194 00:08:46,170 --> 00:08:49,010 >> তাই আমি এখন বাম বাছাই আছে এই দুটি উপাদান অর্ধেক. 195 00:08:49,010 --> 00:08:50,870 বাম অর্ধেক, অবশ্যই, শুধু 4 হয়. 196 00:08:50,870 --> 00:08:54,020 সুতরাং কিভাবে আমি এক উপাদান একটি তালিকা বাছাই না? 197 00:08:54,020 --> 00:08:57,960 অবশ্য, এখন, যে বিশেষ বেস কেস টপ আপ, তাই কথা বলতে, প্রযোজ্য. 198 00:08:57,960 --> 00:09:01,470 1 2 তুলনায় কম, এবং আমার তালিকায় প্রকৃতপক্ষে মাপ হল 1. 199 00:09:01,470 --> 00:09:02,747 তাই আমি ঠিক ফিরে. 200 00:09:02,747 --> 00:09:03,580 আমি কিছুই করতে পারছি না. 201 00:09:03,580 --> 00:09:06,770 এবং প্রকৃতপক্ষে, আমি করেছি এ শুধু চেহারা কাজ, 4 ইতিমধ্যেই সাজানো হয়. 202 00:09:06,770 --> 00:09:09,220 ভালো লেগেছে আমি ইতিমধ্যে করছি এখানে আংশিকভাবে সফল. 203 00:09:09,220 --> 00:09:11,750 >> এখন যে ধরনের মূঢ় মনে অধিকার, কিন্তু এটা সত্য করার. 204 00:09:11,750 --> 00:09:13,700 4 আকার 1 একটি তালিকা করা হয়. 205 00:09:13,700 --> 00:09:15,090 এটি আগে থেকেই সাজানো. 206 00:09:15,090 --> 00:09:16,270 যে বাম অর্ধেক. 207 00:09:16,270 --> 00:09:18,010 এখন আমি ডান অর্ধেক বাছাই. 208 00:09:18,010 --> 00:09:22,310 আমার ইনপুট 8, এক উপাদান হল একইভাবে, আগে থেকেই সাজানো. 209 00:09:22,310 --> 00:09:25,170 মূঢ়, খুব, কিন্তু আবার, এই মৌলিক নীতি 210 00:09:25,170 --> 00:09:28,310 আমাদের এখন নির্মাণের অনুমতি দিতে যাচ্ছে এই উপরে সফলভাবে. 211 00:09:28,310 --> 00:09:32,260 4 এখন, 8 সাজানো হয়, সাজানো যে শেষ ধাপে কি ছিল? 212 00:09:32,260 --> 00:09:35,330 তাই তৃতীয় ও চূড়ান্ত পদক্ষেপ, কোনো সময় আপনি একটি তালিকা, রিকল বাছাই করছেন 213 00:09:35,330 --> 00:09:38,310 দুই অর্ধ একত্রীকরণ ছিল বাম এবং ডান. 214 00:09:38,310 --> 00:09:39,900 সুতরাং আসুন ঠিক সেটা করতে দেওয়া. 215 00:09:39,900 --> 00:09:41,940 আমার বাম অর্ধেক, অবশ্যই, 4 হয়. 216 00:09:41,940 --> 00:09:43,310 আমার ডান অর্ধেক 8. 217 00:09:43,310 --> 00:09:44,100 >> তাই এই কাজ করা যাক. 218 00:09:44,100 --> 00:09:46,410 প্রথম আমি বরাদ্দ করা যাচ্ছে না কিছু অতিরিক্ত মেমরি, 219 00:09:46,410 --> 00:09:48,680 আমি এখানে প্রতিনিধিত্ব করব যে শুধু একটি মাধ্যমিক অ্যারে হিসাবে, 220 00:09:48,680 --> 00:09:49,660 যে এই অনুযায়ী যথেষ্ট বড়. 221 00:09:49,660 --> 00:09:52,243 কিন্তু আপনি ব্যাপ্ত কল্পনা করতে পারেন যে আয়তাকার পুরো দৈর্ঘ্য, 222 00:09:52,243 --> 00:09:53,290 আমরা আরো পরে প্রয়োজন হলে. 223 00:09:53,290 --> 00:09:58,440 আমি 4 নিতে এবং 8, এবং একত্রীকরণ একসাথে আকার 1 দুটি তালিকা? 224 00:09:58,440 --> 00:10:00,270 এখানে খুব, বেশ সহজ. 225 00:10:00,270 --> 00:10:03,300 4 তারপর, প্রথম আসে 8 আসে. 226 00:10:03,300 --> 00:10:07,130 আমি সাজাতে চান তাহলে কারণ বাম অর্ধেক, তারপর ডান অর্ধেক, 227 00:10:07,130 --> 00:10:09,900 এবং তারপর ঐ দুটি আংশিক একত্রীকরণ একসাথে, ক্রম অনুসারে সাজানো, 228 00:10:09,900 --> 00:10:11,940 4 তারপর, প্রথম আসে 8 আসে. 229 00:10:11,940 --> 00:10:15,810 >> সুতরাং আমরা এমনকি, উন্নতি করছে বলে মনে হচ্ছে আমি কোনো প্রকৃত কাজ সম্পন্ন করেন নি যদিও. 230 00:10:15,810 --> 00:10:17,800 আমরা গল্প আছে যেখানে কিন্তু মনে রাখবেন. 231 00:10:17,800 --> 00:10:19,360 আমরা মূলত আট উপাদান গ্রহণ. 232 00:10:19,360 --> 00:10:21,480 আমরা 4, যা বাম অর্ধেক, সাজানো. 233 00:10:21,480 --> 00:10:24,450 তারপর আমরা বাম অর্ধেক সাজানো 2, যা ছিল বাম অর্ধেক, এর. 234 00:10:24,450 --> 00:10:25,270 এবং আমরা এখানে. 235 00:10:25,270 --> 00:10:26,920 আমরা যে পদক্ষেপ সঙ্গে সম্পন্ন করেছেন. 236 00:10:26,920 --> 00:10:29,930 >> আমরা সাজানো করেছি সুতরাং আমরা এখন, 2 অর্ধেক বাকি 237 00:10:29,930 --> 00:10:32,130 2 ডান অর্ধেক বাছাই আছে. 238 00:10:32,130 --> 00:10:35,710 সুতরাং 2 ডান অর্ধেক এখানে এই দুটি মান, 6 এবং 2. 239 00:10:35,710 --> 00:10:40,620 তাই আসুন এখন আকারের একটি ইনপুট নিতে দিন 2, এবং তারপর বাম অর্ধেক বাছাই, এবং 240 00:10:40,620 --> 00:10:42,610 ডান অর্ধেক, এবং তারপর একসঙ্গে তাদের একত্রীকরণ. 241 00:10:42,610 --> 00:10:45,722 ভাল কিভাবে আমি মাপের একটি তালিকা বাছাই না 1, শুধু সংখ্যা 6 ধারণকারী? 242 00:10:45,722 --> 00:10:46,430 আমি ইতিমধ্যে কাজ করছি. 243 00:10:46,430 --> 00:10:48,680 আকার 1 যে তালিকা অনুসারে বাছাই করা হয়. 244 00:10:48,680 --> 00:10:52,140 >> আমি আরেকটি তালিকা বাছাই কীভাবে আকার 1, তথাকথিত ডান অর্ধেক. 245 00:10:52,140 --> 00:10:54,690 আচ্ছা এটা, খুব, ইতিমধ্যেই সাজানো হয়. 246 00:10:54,690 --> 00:10:56,190 সংখ্যা 2 একা. 247 00:10:56,190 --> 00:11:00,160 তাই এখন আমি দুই অর্ধেক আছে, বাম এবং ঠিক আছে, আমি তাদের একসঙ্গে একত্রীকরণ প্রয়োজন. 248 00:11:00,160 --> 00:11:01,800 আমার নিজেকে কিছু অতিরিক্ত স্থান দিতে. 249 00:11:01,800 --> 00:11:05,580 আর, সেখানে 2 করা তারপর 6 সেখানে, যার ফলে 250 00:11:05,580 --> 00:11:10,740 যে তালিকা বাছাইয়ের, বাম এবং ডান এবং পরিশেষে, এটি একসাথে মার্জ. 251 00:11:10,740 --> 00:11:12,160 তাই আমি কিছুটা ভাল আকৃতির করছি. 252 00:11:12,160 --> 00:11:16,250 আমি কাজ করছি না, কারণ পরিষ্কারভাবে 4, 8, 2, 6 আমি চাই যে চূড়ান্ত ক্রম নয়. 253 00:11:16,250 --> 00:11:20,640 কিন্তু আমি এখন, যে আকার 2 দুটি তালিকা আছে উভয় যথাক্রমে সাজানো হয়েছে. 254 00:11:20,640 --> 00:11:24,580 তাই এখন আপনি আপনার মনের মধ্যে গুটিয়ে তাহলে আই, যেখানে যে আমাদের ছেড়ে হয়নি? 255 00:11:24,580 --> 00:11:28,520 আমি তখন আট উপাদান দিয়ে শুরু আমি 4 বাম অর্ধেক নিচে whittled 256 00:11:28,520 --> 00:11:31,386 তারপর 2 বাম অর্ধেক, এবং তারপর 2 ডান অর্ধেক, 257 00:11:31,386 --> 00:11:34,510 আমি বাম শ্রেণীবিভাজন, অতএব, সমাপ্ত 2 অর্ধেক, এবং 2 ডান অর্ধেক, 258 00:11:34,510 --> 00:11:37,800 তাই তৃতীয় ও চূড়ান্ত পদক্ষেপ এখানে কি? 259 00:11:37,800 --> 00:11:41,290 আমি একসাথে মার্জ করার আছে আকার 2 দুটি তালিকা. 260 00:11:41,290 --> 00:11:42,040 সুতরাং আসুন এগিয়ে যান. 261 00:11:42,040 --> 00:11:43,940 এবং এখানে পর্দায়, দিতে আমার কিছু অতিরিক্ত মেমরি, 262 00:11:43,940 --> 00:11:47,170 যদিও টেকনিক্যালি, আমি করেছি বিজ্ঞপ্তি ফাঁকা স্থান পর্যন্ত উপরের আভা পেয়েছিলাম 263 00:11:47,170 --> 00:11:47,670 সেখানে. 264 00:11:47,670 --> 00:11:50,044 আমি বিশেষ করে হতে চান দক্ষ স্থান জ্ঞানী, 265 00:11:50,044 --> 00:11:52,960 আমি শুধু উপাদান সরানোর শুরু করতে পারে আগে পিছে, উপরের এবং নীচের. 266 00:11:52,960 --> 00:11:55,460 কিন্তু শুধু চাক্ষুষ স্বচ্ছতার জন্য, আমি নীচে তা দমন করা যাচ্ছে না 267 00:11:55,460 --> 00:11:56,800 সুন্দর এবং পরিষ্কার রাখা. 268 00:11:56,800 --> 00:11:58,150 >> তাই আমি মাপ 2 দুটি তালিকা পেয়েছেন. 269 00:11:58,150 --> 00:11:59,770 প্রথম তালিকায় 4 এবং 8 আছে. 270 00:11:59,770 --> 00:12:01,500 দ্বিতীয় তালিকায় 2 এবং 6 আছে. 271 00:12:01,500 --> 00:12:03,950 এর যারা একত্রীকরণ যাক একত্রে সাজানো যাতে. 272 00:12:03,950 --> 00:12:09,910 2, অবশ্যই, প্রথম আসে তারপর 4, তারপর 6, তারপর 8. 273 00:12:09,910 --> 00:12:12,560 আর এখন আমরা পেয়ে হবে বলে মনে হচ্ছে কোথাও আকর্ষণীয়. 274 00:12:12,560 --> 00:12:15,720 এখন আমি সাজানো করেছি অর্ধেক তালিকায়, এবং কাকতালীয়ভাবে, এটা 275 00:12:15,720 --> 00:12:18,650 সব এমনকি সংখ্যা, কিন্তু যে প্রকৃতপক্ষে, শুধু একটি কাকতালীয়. 276 00:12:18,650 --> 00:12:22,220 আর আমি এখন বাম সাজানো আছে অর্ধেক, এটি 2, 4, 6, 8 ও যাতে. 277 00:12:22,220 --> 00:12:23,430 কিছুই যাতে বাইরে. 278 00:12:23,430 --> 00:12:24,620 যে অগ্রগতি ভালো মনে. 279 00:12:24,620 --> 00:12:26,650 >> আমি করেছি এখন এটি মতানুযায়ী এখন চিরতরে কথা বলা হয়েছে, 280 00:12:26,650 --> 00:12:29,850 তাই কি এই যদি অবশেষ দেখা অ্যালগরিদম প্রকৃতপক্ষে, আরো দক্ষ, হয়. 281 00:12:29,850 --> 00:12:31,766 কিন্তু আমরা খুজছ এটা সুপার ধারাক্রমে. 282 00:12:31,766 --> 00:12:34,060 একটি কম্পিউটার, অবশ্যই, যে মত এটা করতে হবে. 283 00:12:34,060 --> 00:12:34,840 সুতরাং আমরা কোথায়? 284 00:12:34,840 --> 00:12:36,180 আমরা আট উপাদান দিয়ে শুরু. 285 00:12:36,180 --> 00:12:37,840 আমি 4 বাম অর্ধেক সাজানো. 286 00:12:37,840 --> 00:12:39,290 আমি যে সঙ্গে কাজ করতে হবে বলে মনে হচ্ছে. 287 00:12:39,290 --> 00:12:42,535 তাই এখন পরবর্তী পদক্ষেপ হয় 4 অধিকার অর্ধেক সাজাতে. 288 00:12:42,535 --> 00:12:44,410 আর এই অংশ আমরা যেতে পারেন একটু বেশি দিয়ে 289 00:12:44,410 --> 00:12:47,140 দ্রুত, আপনি আছেন, যদিও শুধু, বা গুটিয়ে বিরতি স্বাগতম 290 00:12:47,140 --> 00:12:49,910 এটি মাধ্যমে চিন্তা আপনার নিজস্ব গতিতে, কিন্তু তা 291 00:12:49,910 --> 00:12:53,290 আমরা এখন একটি সুযোগ হয় আছে চার সঠিক একই অ্যালগরিদম না 292 00:12:53,290 --> 00:12:54,380 বিভিন্ন সংখ্যার. 293 00:12:54,380 --> 00:12:57,740 >> সুতরাং আসুন এগিয়ে যান, এবং ফোকাস আমরা এখানে যা ডান অর্ধেক. 294 00:12:57,740 --> 00:13:01,260 যে বাম অর্ধেক ডান অর্ধেক, এবং এখন 295 00:13:01,260 --> 00:13:04,560 বাম বাম অর্ধেক যে ডান অর্ধেক অর্ধেক, 296 00:13:04,560 --> 00:13:08,030 এবং আমি মাপ একটি তালিকা বাছাই কীভাবে 1 মাত্র 1 নম্বর ধারণকারী? 297 00:13:08,030 --> 00:13:09,030 এটা ইতিমধ্যে সম্পন্ন হয়ে গেছে. 298 00:13:09,030 --> 00:13:11,830 আমি একটি তালিকা জন্য একই কাজ না কিভাবে মাত্র 7 ধারণকারী আকার 1 হাজার? 299 00:13:11,830 --> 00:13:12,840 এটা ইতিমধ্যে সম্পন্ন হয়ে গেছে. 300 00:13:12,840 --> 00:13:16,790 তারপর এই অর্ধে ধাপ তিন এই দুটি উপাদান একত্রীকরণ হয় 301 00:13:16,790 --> 00:13:20,889 আকার 2, 1 এবং 7 এর একটি নতুন তালিকা মধ্যে. 302 00:13:20,889 --> 00:13:23,180 সব কাজ করেছেন বলে মনে হচ্ছে না যে অনেক মজার কাজ. 303 00:13:23,180 --> 00:13:24,346 এর পরের দেখুন সেখানে কি ঘটছে. 304 00:13:24,346 --> 00:13:29,210 আমি শুধু বাম অর্ধেক সাজানো আমার মূল ইনপুট ডান অর্ধেক. 305 00:13:29,210 --> 00:13:32,360 এখন এর ডান সাজানোর দিন 5 এবং 3 রয়েছে যা অর্ধেক. 306 00:13:32,360 --> 00:13:35,740 এর আবার বামে তাকান চলুন শুরু করা যাক অর্ধেক, সাজানো, ডান অর্ধেক, সাজানো, 307 00:13:35,740 --> 00:13:39,120 এবং, একসাথে ঐ দুটি মার্জ কিছু অতিরিক্ত মহাকাশ, 308 00:13:39,120 --> 00:13:41,670 3 তারপর, প্রথম আসে 5 আসে. 309 00:13:41,670 --> 00:13:46,190 আর তাই এখন আমরা সাজানো আছে ডান অর্ধেক বাম অর্ধেক 310 00:13:46,190 --> 00:13:49,420 মূল সমস্যা, এবং ডান অর্ধেক ডান অর্ধেক 311 00:13:49,420 --> 00:13:50,800 মূল সমস্যা. 312 00:13:50,800 --> 00:13:52,480 তৃতীয় এবং চূড়ান্ত পদক্ষেপ কি? 313 00:13:52,480 --> 00:13:54,854 ওয়েল একসাথে ঐ দুটি আংশিক একত্রীকরণ করতে. 314 00:13:54,854 --> 00:13:57,020 তাই আমার নিজেকে কিছু করতে দেওয়া আবার অতিরিক্ত স্থান, কিন্তু, আমি 315 00:13:57,020 --> 00:13:58,699 যে বাড়তি জায়গা উপরে ব্যবহার হতে পারে. 316 00:13:58,699 --> 00:14:00,490 কিন্তু আমরা রাখতে যাচ্ছেন দৃশ্যত এটা সহজ. 317 00:14:00,490 --> 00:14:07,070 আমার এখন 1 মার্জ করা যাক, এবং তারপর 3, এবং তারপর 5, এবং তারপর 7. 318 00:14:07,070 --> 00:14:10,740 যার ফলে এখন আমার ত্যাগ মূল সমস্যা ডান অর্ধেক 319 00:14:10,740 --> 00:14:12,840 যে পুরোপুরি সাজানো. 320 00:14:12,840 --> 00:14:13,662 >> তাই কি অবশেষ? 321 00:14:13,662 --> 00:14:16,120 আমি বলার অপেক্ষা রাখে না রাখা ভালো আমি মনে আবার এবং আবার একই জিনিস, 322 00:14:16,120 --> 00:14:18,700 কিন্তু যে প্রতিফলিত আমরা recursion ব্যবহার করছি যে. 323 00:14:18,700 --> 00:14:21,050 একটি প্রক্রিয়া ব্যবহার আবার, এবং আবার অ্যালগরিদম, 324 00:14:21,050 --> 00:14:23,940 ছোট সাব উপর মূল সমস্যা. 325 00:14:23,940 --> 00:14:27,580 তাই আমি এখন একটি বাম সাজানো আছে মূল সমস্যা অর্ধেক. 326 00:14:27,580 --> 00:14:30,847 আমি একটি সঠিক সাজানো অর্ধেক আছে মূল সমস্যা. 327 00:14:30,847 --> 00:14:32,180 তৃতীয় এবং চূড়ান্ত পদক্ষেপ কি? 328 00:14:32,180 --> 00:14:33,590 ওহ, এটা মার্জ না. 329 00:14:33,590 --> 00:14:34,480 তাই এর যে কি করা যাক. 330 00:14:34,480 --> 00:14:36,420 এর কিছু অতিরিক্ত বরাদ্দ করা যাক মেমরি, কিন্তু আমার ঈশ্বর, আমরা 331 00:14:36,420 --> 00:14:37,503 এখন যে কোন জায়গায় এটা করা যেতে পারে. 332 00:14:37,503 --> 00:14:40,356 আমরা এত স্থান উপলব্ধ আছে আমাদের সাথে, কিন্তু আমরা এটা সহজ রাখা হবে. 333 00:14:40,356 --> 00:14:42,730 পরিবর্তে ফিরে যাওয়া এবং ঘোষণা আমাদের মূল মেমরির, 334 00:14:42,730 --> 00:14:44,480 শুধু এটা না যাক দৃশ্যত এখানে নিচে, 335 00:14:44,480 --> 00:14:47,240 মার্জ আপ শেষ করার বাম এবং ডান অর্ধেক অর্ধেক. 336 00:14:47,240 --> 00:14:49,279 >> মার্জ করে তাই, আমি কি করতে হবে? 337 00:14:49,279 --> 00:14:50,820 আমি যাতে উপাদান নিতে চান. 338 00:14:50,820 --> 00:14:53,230 সুতরাং বাম অর্ধেক এ খুঁজছেন, আমি প্রথম সংখ্যা 2 হয় দেখতে. 339 00:14:53,230 --> 00:14:55,230 আমি ডান অর্ধেক তাকান, আমি প্রথম সংখ্যা দেখতে 340 00:14:55,230 --> 00:14:58,290 তাই সম্ভবত, 1, যা সংখ্যা, আমি উপড়ে করতে চান না 341 00:14:58,290 --> 00:15:00,430 এবং আমার চূড়ান্ত তালিকার প্রথম করা? 342 00:15:00,430 --> 00:15:01,449 অবশ্যই, 1. 343 00:15:01,449 --> 00:15:02,990 এখন আমি যে একই প্রশ্ন জিজ্ঞাসা করতে চান. 344 00:15:02,990 --> 00:15:05,040 বাম অর্ধেক, আমি করেছি এখনও সংখ্যা 2 পেয়েছিলাম. 345 00:15:05,040 --> 00:15:07,490 ডান অর্ধেক উপর, আমি 3 নম্বর পেয়েছেন. 346 00:15:07,490 --> 00:15:08,930 কোনটি আমি চয়ন করতে চান? 347 00:15:08,930 --> 00:15:11,760 অবশ্যই, সংখ্যা 2 এবং এখন প্রার্থীদের লক্ষ্য 348 00:15:11,760 --> 00:15:13,620 ডান বাম, 3 4 হয়. 349 00:15:13,620 --> 00:15:15,020 এর, অবশ্যই, 3 চয়ন করা যাক. 350 00:15:15,020 --> 00:15:18,020 এখন প্রার্থীদের 4 হয় ডান বাম, 5. 351 00:15:18,020 --> 00:15:19,460 আমরা, অবশ্যই, 4 চয়ন. 352 00:15:19,460 --> 00:15:21,240 ডান বাম, 5 6. 353 00:15:21,240 --> 00:15:22,730 আমরা, অবশ্যই, 5 নিন. 354 00:15:22,730 --> 00:15:25,020 ডান বাম, 7 6. 355 00:15:25,020 --> 00:15:29,320 আমরা 6 নিন, এবং তারপর আমরা 7 নির্বাচন করুন, এবং তারপর আমরা 8 নিন. 356 00:15:29,320 --> 00:15:30,100 Voila. 357 00:15:30,100 --> 00:15:34,370 >> শব্দের সুতরাং সংখ্যক পরে, আমরা আট উপাদানের এই তালিকা অনুসারে বাছাই করা হয়েছে 358 00:15:34,370 --> 00:15:38,450 আট মাধ্যমে এক একটি তালিকা মধ্যে, যে, প্রতিটি ধাপ সঙ্গে বৃদ্ধি করে 359 00:15:38,450 --> 00:15:40,850 কিন্তু কত সময় করেনি এটা যে কি আমাদের নিতে. 360 00:15:40,850 --> 00:15:43,190 ওয়েল আমি ইচ্ছাকৃতভাবে করেছি pictorially পাড়া কিছু আউট 361 00:15:43,190 --> 00:15:46,330 এখানে, যাতে আমরা করতে পারেন ধরনের দেখতে বা বিভাগ প্রশংসা 362 00:15:46,330 --> 00:15:49,060 অতিক্রমকারী যে ঘটছে হয়েছে. 363 00:15:49,060 --> 00:15:52,830 >> আপনি নিদ্রা হইতে জাগা ফিরে তাকান হও, আমি এইসব ডটেড লাইন সব ছেড়ে চলে গেছেন 364 00:15:52,830 --> 00:15:55,660 জায়গা ধারক মধ্যে, আপনি যা করতে পারেন, ধরনের বিপরীত ক্রম, দেখতে, 365 00:15:55,660 --> 00:15:58,800 আপনি যে ধরনের মধ্যে ফিরে তাকান তাহলে ইতিহাস এখন, আমার মূল তালিকা 366 00:15:58,800 --> 00:16:00,250 আকার 8, অবশ্যই, হয়. 367 00:16:00,250 --> 00:16:03,480 এবং তারপর পূর্বে, আমি ছিল আকার 4 দুটি তালিকার সঙ্গে আচরণ, 368 00:16:03,480 --> 00:16:08,400 এবং তারপর আকার 2 চার লাখ, এবং তারপর আকার 1 আট লাখ. 369 00:16:08,400 --> 00:16:10,151 >> এটাও কি, ধরনের, আপনাকে স্মরণ করিয়ে? 370 00:16:10,151 --> 00:16:11,858 ভাল, প্রকৃতপক্ষে, কোন আমরা করেছি আলগোরিদিম 371 00:16:11,858 --> 00:16:14,430 এখন পর্যন্ত এ লাগছিল যেখানে আমরা ডিভাইড, এবং বিভক্ত করা, এবং ডিভাইড, 372 00:16:14,430 --> 00:16:19,500 আবার কিছু থাকার রাখা, এবং আবার, এই সাধারণ ধারণা ফলাফল. 373 00:16:19,500 --> 00:16:23,100 তাই কিছু আছে লগারিদমিক এখানে ঘটছে. 374 00:16:23,100 --> 00:16:26,790 আর এটা করা বেশ লগ, না কিন্তু একটি লগারিদমিক কম্পোনেন্ট আছে 375 00:16:26,790 --> 00:16:28,280 আমরা ঠিক করেছি কি করতে. 376 00:16:28,280 --> 00:16:31,570 >> এখন এর যে আসলে কিভাবে বিবেচনা করা যাক. 377 00:16:31,570 --> 00:16:34,481 তাই আবার, n র লগ ছিল একটি মহান সময় চলমান, 378 00:16:34,481 --> 00:16:36,980 আমরা ভালো কিছু করে ফেললে বাইনারি অনুসন্ধান, আমরা এখন কল হিসাবে, 379 00:16:36,980 --> 00:16:40,090 ডিভাইড ও জিতা কৌশল যার মাধ্যমে আমরা মাইক স্মিথ পাওয়া. 380 00:16:40,090 --> 00:16:41,020 এখন টেকনিক্যালি. 381 00:16:41,020 --> 00:16:43,640 যে এমনকি n র লগ বেস 2 সবচেয়ে গণিত শ্রেণীতে যদিও, 382 00:16:43,640 --> 00:16:45,770 10 সাধারণত আপনি অনুমান যে বেস. 383 00:16:45,770 --> 00:16:48,940 কিন্তু কম্পিউটার বিজ্ঞানীরা প্রায় সবসময় মনে এবং বেস 2 শর্তাবলী কথা, 384 00:16:48,940 --> 00:16:52,569 তাই আমরা সাধারণত শুধু লগ বলে এন, পরিবর্তে n র লগ বেস 2, 385 00:16:52,569 --> 00:16:55,110 কিন্তু তারা ঠিক এক এবং আছেন কম্পিউটার জগতে একই 386 00:16:55,110 --> 00:16:57,234 বিজ্ঞান, এবং একটি সরাইয়া হিসাবে, একটি ধ্রুবক ফ্যাক্টর আছে 387 00:16:57,234 --> 00:17:01,070 দুজনের মধ্যে পার্থক্য, এটা তাই আরো প্রথাগত কারণে, যাহাই হউক না কেন তর্ক. 388 00:17:01,070 --> 00:17:04,520 >> কিন্তু এখন জন্য, আমরা কি গ্রাহ্য সম্পর্কে এই উদাহরণ. 389 00:17:04,520 --> 00:17:08,520 সুতরাং আসুন উদাহরণস্বরূপ দ্বারা প্রমাণ করা যাক, কিন্তু এ অন্তত সংখ্যার একটি উদাহরণ ব্যবহার 390 00:17:08,520 --> 00:17:10,730 হাতে একটি সদ্বিবেচনা চেক হিসাবে, যদি আপনি হবে. 391 00:17:10,730 --> 00:17:14,510 সুতরাং পূর্বে সূত্র লগ বেস ছিল এন 2, কিন্তু এই ক্ষেত্রে এন কি. 392 00:17:14,510 --> 00:17:18,526 আমি এন মূল সংখ্যার ছিল, বা 8 মূল সংখ্যা বিশেষভাবে. 393 00:17:18,526 --> 00:17:20,359 এখন এটি একটি সামান্য হয়েছে যখন, কিন্তু আমি বেশ 394 00:17:20,359 --> 00:17:25,300 নিশ্চিত যে লগ বেস 2 8 3 মান, 395 00:17:25,300 --> 00:17:29,630 এবং প্রকৃতপক্ষে, কি যে হয় সম্পর্কে চমৎকার 3 যে সময়ের ঠিক সংখ্যা 396 00:17:29,630 --> 00:17:33,320 আপনি একটি তালিকা বিভক্ত করা যেতে পারে যে আবার, এবং আবার দৈর্ঘ্য 8, 397 00:17:33,320 --> 00:17:36,160 এবং আবার, আপনি বাম করছি না হওয়া পর্যন্ত শুধু আকার 1 লাখ সঙ্গে. 398 00:17:36,160 --> 00:17:36,660 রাইট? 399 00:17:36,660 --> 00:17:40,790 8, 4 যায় 2 যায়, 1 যায়, এবং যে 400 00:17:40,790 --> 00:17:43,470 ঠিক যে প্রতিফলিত ছবি আমরা শুধু একটা মুহূর্ত আগে ছিল. 401 00:17:43,470 --> 00:17:47,160 তাই একটু বৈধতা যেখানে যত পরীক্ষা লগারিদম আসলে জড়িত হয়. 402 00:17:47,160 --> 00:17:50,180 >> তাই এখন, কি কি এখানে জড়িত? এন. 403 00:17:50,180 --> 00:17:53,440 তাই প্রতি যে লক্ষ্য সময় আমি তালিকা বিভক্ত 404 00:17:53,440 --> 00:17:58,260 ইতিহাসে বিপরীত ক্রমে যদ্যপি এখানে, আমি এখনও এন জিনিসগুলি ছিল. 405 00:17:58,260 --> 00:18:02,320 যে মার্জ ধাপে যে প্রয়োজন আমি সংখ্যার প্রতি এক স্পর্শ 406 00:18:02,320 --> 00:18:05,060 সেটিকে স্লাইড করার তার যথাযথ অবস্থান. 407 00:18:05,060 --> 00:18:10,760 সুতরাং যদিও এই উচ্চতা ডায়াগ্রাম, n বা 3 মাপ লগ n হল 408 00:18:10,760 --> 00:18:13,860 বিশেষভাবে, অন্য কথায়, আমি এখানে তিন ভাগে বিভক্ত করেনি. 409 00:18:13,860 --> 00:18:18,800 কত কাজ আমি অনুভূমিকভাবে করতে হয়নি এই চার্ট প্রতিটি সময় ধরে? 410 00:18:18,800 --> 00:18:21,110 >> ওয়েল, আমি n ধাপ করেনি আমি করেছি কারণ যদি কাজ 411 00:18:21,110 --> 00:18:24,080 চারটি উপাদান এবং চারটি উপাদান পেয়েছেন এবং আমি তাদের একসঙ্গে একত্রীকরণ প্রয়োজন. 412 00:18:24,080 --> 00:18:26,040 আমি মধ্য দিয়ে যেতে হবে এই চারটি এবং এই চারটি, 413 00:18:26,040 --> 00:18:28,123 পরিণামে তাদের একত্রীকরণ ফিরে আট উপাদানের মধ্যে. 414 00:18:28,123 --> 00:18:32,182 বিপরীতভাবে যদি আমি আট আঙ্গুল পেয়েছেন আমি না না, যা, এখানে ধরে, এবং আট 415 00:18:32,182 --> 00:18:34,390 fingers-- sorry-- আমি করেছি তাহলে এখানে ওভার চার আঙ্গুলের পেয়েছেন 416 00:18:34,390 --> 00:18:37,380 আমি চার আঙ্গুল না যা এখানে ওভার, আমি কি যা, 417 00:18:37,380 --> 00:18:40,590 তারপর যে একই উদাহরণ হিসাবে আগে, আমি কি তাহলে 418 00:18:40,590 --> 00:18:44,010 যদিও আট আঙ্গুল আছে আমি ধরনের, নির্বাচন করতে পারবেন, মোট. 419 00:18:44,010 --> 00:18:47,950 আমি ঠিক, এখানে কি করতে পারেন তারপর আমি অবশ্যই করতে পারেন 420 00:18:47,950 --> 00:18:50,370 এই তালিকার সব একত্রীকরণ একসাথে আকার 1 হাজার. 421 00:18:50,370 --> 00:18:54,050 কিন্তু আমি অবশ্যই দেখুন আছে প্রতিটি উপাদান এ ঠিক একবার. 422 00:18:54,050 --> 00:18:59,640 সুতরাং এই প্রক্রিয়া উচ্চতা, লগ n হল এই প্রক্রিয়া প্রস্থ, তাই কথা বলতে, 423 00:18:59,640 --> 00:19:02,490 তাই আমরা মনে কি, এন হয় পরিণামে, হয়, আছে 424 00:19:02,490 --> 00:19:06,470 আকার এন বার একটি চলমান সময় এন লগ ইন করুন. 425 00:19:06,470 --> 00:19:08,977 >> অন্য কথায়, আমরা বিভক্ত তালিকায়, লগ n বার, 426 00:19:08,977 --> 00:19:11,810 কিন্তু আমরা যে করেনি প্রতিটি সময়, আমরা ছিল উপাদানের প্রতি এক স্পর্শ করার 427 00:19:11,810 --> 00:19:13,560 তাদের একত্রীকরণ করার জন্য সব একসঙ্গে, যা 428 00:19:13,560 --> 00:19:18,120 ধাপে এন, তাই আমরা আছে এন বার লগ ইন করা হয়, বা একজন কম্পিউটার বিজ্ঞানী হিসাবে বলা যায়, 429 00:19:18,120 --> 00:19:20,380 এসিম্পটোটিকভাবে, যা বড় শব্দ হবে 430 00:19:20,380 --> 00:19:22,810 উপরের বর্ণনা একটি চলমান সময় বেঁধে 431 00:19:22,810 --> 00:19:28,010 আমরা একটি বড় হে দৌড়াচ্ছে লগ n সময়, তাই কথা বলতে. 432 00:19:28,010 --> 00:19:31,510 >> এখন এই কারণে, উল্লেখযোগ্য হল চলমান বার ছিল প্রত্যাহার 433 00:19:31,510 --> 00:19:34,120 বুদ্বুদ সাজানোর, এবং নির্বাচন সঙ্গে সাজান, সন্নিবেশ এবং সাজানোর, 434 00:19:34,120 --> 00:19:38,200 এবং যে অস্তিত্ব এমনকি কয়েক অন্যদের, এন আমরা এ ছিল যেখানে ছিল ছক. 435 00:19:38,200 --> 00:19:39,990 আর আপনি, ধরনের, এখানে দেখতে পারেন. 436 00:19:39,990 --> 00:19:45,720 N ছক তাহলে সম্ভবত এন বার হয় এন, কিন্তু এখানে আমরা আছে এন বার লগ, 437 00:19:45,720 --> 00:19:48,770 এবং আমরা ইতিমধ্যে সপ্তাহ থেকে জানি শূন্য, যে লগ n, লগারিদমিক, 438 00:19:48,770 --> 00:19:50,550 কিছু রৈখিক চেয়ে ভাল. 439 00:19:50,550 --> 00:19:52,930 সব পরে, ছবি প্রত্যাহার লাল এবং হলুদ দিয়ে 440 00:19:52,930 --> 00:19:56,500 আমরা সৃষ্টি এবং সবুজ লাইন, সবুজ লগারিদমিক লাইন অনেক কম ছিল. 441 00:19:56,500 --> 00:20:00,920 আর তাই, অনেক ভালো এবং দ্রুত সোজা হলুদ এবং লাল লাইন বেশী, 442 00:20:00,920 --> 00:20:05,900 এন বার প্রকৃতপক্ষে, এন লগ ইন করুন, ভাল এন বার চেয়ে এন, বা n ছক. 443 00:20:05,900 --> 00:20:09,110 >> সুতরাং আমরা আছে বলে মনে হচ্ছে একটি অ্যালগরিদম একত্রীকরণ চিহ্নিত 444 00:20:09,110 --> 00:20:11,870 সাজান অনেক রান যে দ্রুত সময়, এবং প্রকৃতপক্ষে, 445 00:20:11,870 --> 00:20:16,560 যে কেন, এই সপ্তাহের শুরুর দিকে, যখন আমরা বাবল মধ্যে যে প্রতিযোগিতা দেখেছি 446 00:20:16,560 --> 00:20:20,750 সাজান, নির্বাচন সাজানোর, এবং মার্জ সাজান, সাজান সত্যিই, সত্যিই জিতেছে একত্রীকরণ. 447 00:20:20,750 --> 00:20:23,660 এবং প্রকৃতপক্ষে, আমরা এমনকি অপেক্ষা করা হয়নি বুদ্বুদ সাজানোর এবং নির্বাচন সাজানোর জন্য 448 00:20:23,660 --> 00:20:24,790 শেষ. 449 00:20:24,790 --> 00:20:27,410 >> এখন এর এক অন্য পাস নিতে দিন এই সময়ে, একটি সামান্য আরো থেকে 450 00:20:27,410 --> 00:20:31,030 আনুষ্ঠানিক দৃষ্টিকোণ, শুধু এ কেস, এই ভাল resonates 451 00:20:31,030 --> 00:20:33,380 যে উচ্চ পর্যায়ের আলোচনা তুলনায়. 452 00:20:33,380 --> 00:20:34,880 সুতরাং এখানে অ্যালগরিদম আবার. 453 00:20:34,880 --> 00:20:36,770 এর নিজেদেরকে জিজ্ঞাসা করা যাক, কি চলমান সময় 454 00:20:36,770 --> 00:20:39,287 এই বিভিন্ন পদক্ষেপ আলগোরিদিম হয়? 455 00:20:39,287 --> 00:20:41,620 প্রথম সেটিকে বিভক্ত করা যাক কেস এবং দ্বিতীয় ক্ষেত্রে. 456 00:20:41,620 --> 00:20:46,280 যদি ক্ষেত্রে যদি এবং অন্য, এন 2 চেয়ে কম হয়, তাহলে শুধু আসতে. 457 00:20:46,280 --> 00:20:47,580 ধ্রুব সময় মত মতানুযায়ী. 458 00:20:47,580 --> 00:20:50,970 এটি দুটি ধাপে মত, ধরনের, এর, এন 2 চেয়ে কম হয়, তাহলে আসতে. 459 00:20:50,970 --> 00:20:54,580 কিন্তু আমরা সোমবার বলেন, ধ্রুব সময়, বা 1 হে বড়, 460 00:20:54,580 --> 00:20:57,130 দুই ধাপ, তিনটি হতে পারে ধাপ, এমনকি 1,000 পদক্ষেপ. 461 00:20:57,130 --> 00:20:59,870 কি বিষয়ে এটা যে হয় ধাপের একটি ধ্রুব সংখ্যা. 462 00:20:59,870 --> 00:21:03,240 তাই হলুদ pseudocode হয় হাইলাইট এখানে, আমরা ডাকবো, রান 463 00:21:03,240 --> 00:21:04,490 ধ্রুব সময়. 464 00:21:04,490 --> 00:21:06,780 তাই আরো আনুষ্ঠানিকভাবে, এবং আমরা এই চলুন 465 00:21:06,780 --> 00:21:09,910 কিছুদূর যেতে হবে যা আমরা এন টি এখন আমি এই অধিকার ডিক্রী, 466 00:21:09,910 --> 00:21:15,030 একটি সমস্যা চলমান সময় যে, ইনপুট হিসাবে এন কিছুটা সময় লাগে 467 00:21:15,030 --> 00:21:19,150 এক হে বড় সমান এন 2 চেয়ে কম হয়. 468 00:21:19,150 --> 00:21:20,640 সুতরাং এটা যে শর্তাধীন এর. 469 00:21:20,640 --> 00:21:24,150 এন কম হয় সুতরাং, পরিষ্কার করা 2, আমরা তখন খুব অল্প তালিকায় আছে 470 00:21:24,150 --> 00:21:29,151 এন যেখানে চলমান সময় এন, টি, 1 অথবা 0, এই খুব নির্দিষ্ট ক্ষেত্রে, 471 00:21:29,151 --> 00:21:30,650 এটা শুধু ধ্রুব সময় হতে যাচ্ছে. 472 00:21:30,650 --> 00:21:32,691 এটা এক নিতে যাচ্ছে , যাই হোক না কেন, দুটি ধাপে ধাপে. 473 00:21:32,691 --> 00:21:33,950 এটা ধাপের একটি নির্দিষ্ট সংখ্যা. 474 00:21:33,950 --> 00:21:38,840 >> তাই সরস অংশ নিশ্চয় হতে হবে pseudocode মধ্যে অন্যান্য ক্ষেত্রে. 475 00:21:38,840 --> 00:21:40,220 অন্য ক্ষেত্রে. 476 00:21:40,220 --> 00:21:44,870 উপাদানের সাজান বাম অর্ধেক, সাজান ডান উপাদান অর্ধেক, সাজানো আংশিক একত্রীকরণ. 477 00:21:44,870 --> 00:21:46,800 যারা প্রতিটি ধাপ কতক্ষণ সময় লাগবে? 478 00:21:46,800 --> 00:21:49,780 ওয়েল, যদি চলমান n উপাদান বাছাই সময় 479 00:21:49,780 --> 00:21:53,010 হয়, এর তা খুব ডাকুক জেনেরিক, টি এন, 480 00:21:53,010 --> 00:21:55,500 তারপর বাম শ্রেণীবিভাজন উপাদান অর্ধেক 481 00:21:55,500 --> 00:21:59,720 হয়, ধরনের, বলার অপেক্ষা রাখে না মত, 2 দ্বারা বিভক্ত এন টি, 482 00:21:59,720 --> 00:22:03,000 এবং একইভাবে ডান অর্ধেক বাছাই উপাদানের হয়, ধরনের, বলার অপেক্ষা রাখে না মত, 483 00:22:03,000 --> 00:22:06,974 এন টি 2 বিভক্ত, এবং তারপর সাজানো আংশিক মার্জ. 484 00:22:06,974 --> 00:22:08,890 ওয়েল আমি পেয়েছেন কিছু এখানে উপাদান সংখ্যা, 485 00:22:08,890 --> 00:22:11,230 চার, এবং কিছু সংখ্যা মত এখানে উপাদানের, চার মত, 486 00:22:11,230 --> 00:22:14,650 এবং আমি এই চারটি প্রতিটি একত্রীকরণ আছে এ, এবং এই চার জনই, এক 487 00:22:14,650 --> 00:22:17,160 অন্যান্য পর, যাতে শেষ পর্যন্ত আমি আট উপাদান আছে. 488 00:22:17,160 --> 00:22:20,230 এটা যে পদক্ষেপ n হে বড় ভালো মনে? 489 00:22:20,230 --> 00:22:23,500 আমি আঙ্গুলের এবং প্রতিটি এন পেয়েছেন তাদের জায়গা মধ্যে মিশে গিয়ে তৈরি করা হয়েছে, 490 00:22:23,500 --> 00:22:25,270 যে অন্য একটি পদক্ষেপ মত. 491 00:22:25,270 --> 00:22:27,360 >> তাই প্রকৃতপক্ষে formulaically, আমরা, এই প্রকাশ করতে পারেন 492 00:22:27,360 --> 00:22:29,960 প্রথমে একটু হল scarily যদ্যপি এক নজরে, কিন্তু এটা কিছু 493 00:22:29,960 --> 00:22:31,600 যে ঠিক যে যুক্তি ধারন করে না. 494 00:22:31,600 --> 00:22:35,710 চলমান সময়, টি এন,, n অপেক্ষাকৃত বড় অথবা 2 সমান. 495 00:22:35,710 --> 00:22:42,500 এই ক্ষেত্রে, অন্য ক্ষেত্রে, এন টি হল 2 দ্বারা বিভক্ত N, প্লাস টি 2 দ্বারা বিভক্ত, 496 00:22:42,500 --> 00:22:45,320 প্লাস n হে বড়, কিছু ধাপের রৈখিক সংখ্যা, 497 00:22:45,320 --> 00:22:51,630 হয়তো ঠিক এন, হয়তো 2 বার এন, কিন্তু এটা প্রায় n এর অর্ডার. 498 00:22:51,630 --> 00:22:54,060 যাতে খুব, কিভাবে আমরা করতে পারেন হয় formulaically এই প্রকাশ. 499 00:22:54,060 --> 00:22:56,809 এখন আপনি যদি না এই জানি না আপনি, আপনার মনের মধ্যে এটা লিপিবদ্ধ করেছি 500 00:22:56,809 --> 00:22:58,710 বা তা সন্ধান ফিরে একটি পাঠ্যপুস্তক, যে 501 00:22:58,710 --> 00:23:00,501 একটু থাকতে পারে শেষে শীট ঠকাই, 502 00:23:00,501 --> 00:23:03,940 কিন্তু এই প্রকৃতপক্ষে, যাচ্ছে এন log n হে একটি বড় আমাদের দিতে, 503 00:23:03,940 --> 00:23:06,620 পুনরাবৃত্তি যে কারণ আপনি, পর্দায় এখানে দেখছি 504 00:23:06,620 --> 00:23:09,550 আপনি আসলে সাথে, এটি না হলে উদাহরণের অসীম সংখ্যা, 505 00:23:09,550 --> 00:23:13,000 অথবা আপনি formulaically তা, আপনি would , এই যে দেখুন এই সূত্র কারণ 506 00:23:13,000 --> 00:23:17,100 নিজেই T দিয়ে, রিকার্সিভ হয় এন ডানদিকে কিছু বেশি, 507 00:23:17,100 --> 00:23:21,680 Glosbe উপর ওভার এন টি এবং, এই যা করতে পারেন আসলে প্রকাশ করা, শেষ পর্যন্ত, 508 00:23:21,680 --> 00:23:24,339 এন লগ n হিসাবে বড় যান. 509 00:23:24,339 --> 00:23:26,130 বিশ্বাস না হলে, যে এখন জন্য জরিমানা শুধু 510 00:23:26,130 --> 00:23:28,960 প্রকৃতপক্ষে, যে, যে বিশ্বাসের উপর নিতে, যে পুনরাবৃত্তি বাড়ে কি, 511 00:23:28,960 --> 00:23:31,780 কিন্তু এই একটি মাত্র একটু বেশী খুঁজছেন গাণিতিক পদ্ধতির 512 00:23:31,780 --> 00:23:36,520 একত্রীকরণ ধরণের চলমান সময়ে একা তার pseudocode হয় উপর ভিত্তি করে. 513 00:23:36,520 --> 00:23:39,030 >> এখন এর একটি একটি বিট গ্রহণ করা যাক যে সব থেকে সাময়িক, 514 00:23:39,030 --> 00:23:41,710 এবং একটি কটাক্ষপাত নির্দিষ্ট সাবেক সিনেটর, যারা 515 00:23:41,710 --> 00:23:44,260 একটু পরিচিত চেহারা হতে পারে, যারা গুগলের এরিক সঙ্গে বসলেন 516 00:23:44,260 --> 00:23:48,410 একটি সাক্ষাতকারের জন্য কিছু সময় আগে শ্মিট, মঞ্চে, আভা সামনে 517 00:23:48,410 --> 00:23:53,710 মানুষের, পরিণামে বিষয়ে কথা একটি বিষয়ে, যে প্রশংসনীয় এখন পরিচিত. 518 00:23:53,710 --> 00:23:54,575 একবার দেখা যাক. 519 00:23:54,575 --> 00:24:01,020 520 00:24:01,020 --> 00:24:03,890 >> Eric Schmidt: এখন সেনেটর, আপনি, গুগল এ এখানে আছেন 521 00:24:03,890 --> 00:24:09,490 এবং আমি মনে করি না একটি পেশা ইন্টারভিউ হিসাবে. 522 00:24:09,490 --> 00:24:11,712 এখন এটা প্রেসিডেন্ট হিসেবে চাকরি পাওয়া কঠিন. 523 00:24:11,712 --> 00:24:12,670 প্রেসিডেন্ট ওবামার: রাইট. 524 00:24:12,670 --> 00:24:13,940 Eric Schmidt: আর আপনি আছেন এখন [শ্রবণাতীত] কাজ করতে যাচ্ছেন. 525 00:24:13,940 --> 00:24:15,523 Google- এ একটি কাজ পাওয়ার জন্য কঠিন. 526 00:24:15,523 --> 00:24:17,700 প্রেসিডেন্ট ওবামার: রাইট. 527 00:24:17,700 --> 00:24:21,330 >> Eric Schmidt: আমরা প্রশ্ন আছে, এবং আমরা আমাদের প্রার্থীদের প্রশ্ন জিজ্ঞাসা, 528 00:24:21,330 --> 00:24:24,310 এবং এই এক ল্যারি Schwimmer থেকে. 529 00:24:24,310 --> 00:24:25,890 >> প্রেসিডেন্ট ওবামার: ঠিক আছে. 530 00:24:25,890 --> 00:24:27,005 >> Eric Schmidt: কি? 531 00:24:27,005 --> 00:24:28,130 আপনাকে বলছি আমি নিশ্চয়ই মজা করছি? 532 00:24:28,130 --> 00:24:30,590 এটা ঠিক এখানে. 533 00:24:30,590 --> 00:24:33,490 সবচেয়ে কার্যকর উপায় কি হয় লক্ষ 32 বিট ইন্টিজার সাজাতে? 534 00:24:33,490 --> 00:24:37,560 535 00:24:37,560 --> 00:24:38,979 >> প্রেসিডেন্ট ওবামার: Well-- 536 00:24:38,979 --> 00:24:41,020 Eric Schmidt: কখনও কখনও, হয়তো আমি দুঃখিত, maybe-- 537 00:24:41,020 --> 00:24:42,750 প্রেসিডেন্ট ওবামার: না, না, না, না, না, আমি কি মনে 538 00:24:42,750 --> 00:24:43,240 Eric Schmidt: যে এটিকে নয় 539 00:24:43,240 --> 00:24:45,430 প্রেসিডেন্ট ওবামার: আমি মনে করি, আমি মনে বাবল 540 00:24:45,430 --> 00:24:46,875 সাজান যেতে কুপথ হবে. 541 00:24:46,875 --> 00:24:49,619 542 00:24:49,619 --> 00:24:50,535 Eric Schmidt: চলো. 543 00:24:50,535 --> 00:24:52,200 যিনি তাকে এই ডটকমকে? 544 00:24:52,200 --> 00:24:54,020 ঠিক আছে. 545 00:24:54,020 --> 00:24:55,590 আমি কম্পিউটার বিজ্ঞান না on-- 546 00:24:55,590 --> 00:24:58,986 >> প্রেসিডেন্ট ওবামার: আমরা করেছি সেখানে আমাদের চর পেয়েছিলাম. 547 00:24:58,986 --> 00:24:59,860 অধ্যাপক: ঠিক আছে. 548 00:24:59,860 --> 00:25:03,370 এর এখন আমাদের পেছনে রেখে যাই আলগোরিদিম তাত্ত্বিক বিশ্বের 549 00:25:03,370 --> 00:25:06,520 asymptotic বিশ্লেষণে উহার, এবং কিছু বিষয় ফিরে 550 00:25:06,520 --> 00:25:09,940 সপ্তাহে শূন্য এবং এক, এবং শুরু থেকে কিছু প্রশিক্ষণ চাকার মুছে ফেলার জন্য, 551 00:25:09,940 --> 00:25:10,450 যদি আপনি হবে. 552 00:25:10,450 --> 00:25:13,241 আপনি কি সত্যিই বুঝতে যাতে পরিণামে স্থল থেকে, কি 553 00:25:13,241 --> 00:25:16,805 , যখন আপনি ফণা নীচে যাচ্ছে , লিখতে কম্পাইল, এবং প্রোগ্রাম চালানো হয়. 554 00:25:16,805 --> 00:25:19,680 এই ছিল যে, বিশেষ করে প্রত্যাহার আমরা দিকে তাকিয়ে প্রথম সি প্রোগ্রাম, 555 00:25:19,680 --> 00:25:22,840 ক্যানোনিকাল, সহজ প্রোগ্রাম প্রকারের, তুলনামূলকভাবে ভাষী, 556 00:25:22,840 --> 00:25:24,620 যাহাতে, এটা, হ্যালো ওয়ার্ল্ড ছাপে. 557 00:25:24,620 --> 00:25:27,610 আর আমি প্রক্রিয়া, বলেন প্রত্যাহার যে সোর্স কোড দিয়ে যায় 558 00:25:27,610 --> 00:25:28,430 ঠিক এই হল. 559 00:25:28,430 --> 00:25:31,180 আপনি আপনার সোর্স কোড নিতে, পাস এটি একটি কম্পাইলার মাধ্যমে, ঝনঝন মত, 560 00:25:31,180 --> 00:25:34,650 এবং আউট, যে অবজেক্ট কোড আসে এই zeros এবং বেশী অনুরূপ হতে পারে 561 00:25:34,650 --> 00:25:37,880 কম্পিউটার সিপিইউ, সেন্ট্রাল যে প্রসেসিং ইউনিট বা মস্তিষ্কে, 562 00:25:37,880 --> 00:25:39,760 পরিণামে বোঝে. 563 00:25:39,760 --> 00:25:42,460 >> এটা যে একটি সক্রিয় করে যে একটি অতিসরলীকরণ একটি বিট, 564 00:25:42,460 --> 00:25:44,480 আমরা একটি মধ্যে এখন করছি যে অবস্থান সরাইয়া জ্বালাতন করা 565 00:25:44,480 --> 00:25:46,720 সত্যিই হয়েছে কি বুঝতে ফণা নীচে যাচ্ছে 566 00:25:46,720 --> 00:25:48,600 আপনি চালানোর জন্য প্রত্যেক সময় ঝনঝন, অথবা আরো সাধারণভাবে, 567 00:25:48,600 --> 00:25:53,040 প্রত্যেক সময় আপনি একটি প্রোগ্রাম করা করুন এবং CF 50 IDE ব্যবহার করে. 568 00:25:53,040 --> 00:25:56,760 বিশেষ করে, কাপড় মত এই প্রথম, উৎপন্ন হয় 569 00:25:56,760 --> 00:25:58,684 যখন প্রথম আপনি আপনার প্রোগ্রাম কম্পাইল. 570 00:25:58,684 --> 00:26:00,600 অন্য কথায়, যখন আপনি আপনার সোর্স কোড নিয়ে 571 00:26:00,600 --> 00:26:04,390 এবং কি প্রথম, এটা কম্পাইল ঝনঝন করে outputted হচ্ছে 572 00:26:04,390 --> 00:26:06,370 সমাবেশ কোড হিসাবে পরিচিত কিছু. 573 00:26:06,370 --> 00:26:08,990 এবং বাস্তবিকই, এটা ঠিক ভালো দেখায়. 574 00:26:08,990 --> 00:26:11,170 >> আমি একটি কমান্ড দৌড়ে আগে কমান্ড লাইন. 575 00:26:11,170 --> 00:26:16,260 ঝনঝন ড্যাশ মূলধন এর hello.c, এবং এই একটি ফাইল তৈরি করা 576 00:26:16,260 --> 00:26:19,490 আমাকে বলা hello.s জন্য, যার ভিতরে ঠিক ছিল 577 00:26:19,490 --> 00:26:22,290 এই বিষয়বস্তু, এবং একটু বেশি উপরে এবং আরো একটু নীচের, 578 00:26:22,290 --> 00:26:25,080 কিন্তু আমি, juiciest রেখেছি এখানে পর্দায় তথ্য. 579 00:26:25,080 --> 00:26:29,190 আপনি ঘনিষ্ঠভাবে তাকান, আপনি দেখতে পাবেন অন্তত কয়েক পরিচিত কীওয়ার্ড. 580 00:26:29,190 --> 00:26:31,330 আমরা শীর্ষে প্রধান আছে. 581 00:26:31,330 --> 00:26:35,140 আমরা মাঝখানে নিচে printf আছে. 582 00:26:35,140 --> 00:26:38,670 আর আমরা উদাহরণ বিশ্বের হ্যালো আছে নিচে নিচে কোট মধ্যে ব্যাকস্ল্যাশ এন. 583 00:26:38,670 --> 00:26:42,450 >> এখানে অন্য আর সবকিছু খুব নিম্ন স্তরের নির্দেশাবলী 584 00:26:42,450 --> 00:26:45,500 কম্পিউটার এর CPU- র বোধগম্য. 585 00:26:45,500 --> 00:26:50,090 মেমরি সরানো যে CPU- র নির্দেশাবলী চারপাশে, মেমরি থেকে যে লোড স্ট্রিং, 586 00:26:50,090 --> 00:26:52,750 এবং পরিণামে, প্রিন্ট পর্দায় জিনিষ. 587 00:26:52,750 --> 00:26:56,780 এখন কি পরে যদিও এরকম এই সমাবেশ কোড উৎপন্ন হয়? 588 00:26:56,780 --> 00:26:59,964 পরিশেষে, আপনি নিশ্চয় না, এখনও অবজেক্ট কোড জেনারেট. 589 00:26:59,964 --> 00:27:02,630 কিন্তু পদক্ষেপ সত্যিই আছে ফণা নীচে যাওয়া হয়েছে 590 00:27:02,630 --> 00:27:04,180 এই মত একটু বেশি, দেখুন. 591 00:27:04,180 --> 00:27:08,390 সোর্স কোড, সমাবেশ কোড হয়ে যা তারপর বস্তু কোড হয়ে, 592 00:27:08,390 --> 00:27:11,930 এবং এখানে অপারেটিভ শব্দ হয়, যে আপনি আপনার সোর্স কোড কম্পাইল করার সময়, 593 00:27:11,930 --> 00:27:16,300 তারপর বাইরে সমাবেশ কোড, এবং আসে আপনি আপনার সমাবেশ কোড সমবেত, 594 00:27:16,300 --> 00:27:17,800 খুঁজে অবজেক্ট কোড আসে. 595 00:27:17,800 --> 00:27:20,360 >> এখন ঝনঝন, সুপার পরিশীলিত হয় কম্পাইলার অনেক ভালো, 596 00:27:20,360 --> 00:27:23,151 এবং এটা ধাপগুলি সব আছে একসাথে, এবং এটা প্রিয়তে না রাখলে 597 00:27:23,151 --> 00:27:25,360 আউটপুট কোনো মধ্যবর্তী এমনকি আপনি দেখতে পারেন যে ফাইল. 598 00:27:25,360 --> 00:27:28,400 এটা শুধু কিছু প্রনয়ন, যা সাধারণ শব্দ যে 599 00:27:28,400 --> 00:27:30,000 এই সমগ্র পদ্ধতি সম্পর্কে আলোচনা করা. 600 00:27:30,000 --> 00:27:32,000 কিন্তু আপনি কি সত্যিই চান তাহলে নির্দিষ্ট করা আছে, 601 00:27:32,000 --> 00:27:34,330 আরো অনেক আছে হিসাবে ভাল যাওয়া. 602 00:27:34,330 --> 00:27:38,860 >> কিন্তু এর যে এমনকি এখন বিবেচনা করা যাক যে সুপার সহজ প্রোগ্রাম, hello.c 603 00:27:38,860 --> 00:27:40,540 একটি ফাংশন বলা. 604 00:27:40,540 --> 00:27:41,870 এটা বলা printf. 605 00:27:41,870 --> 00:27:46,900 কিন্তু আমি নিশ্চয় printf লিখুন না যাতে কথা বলতে, সি দিয়ে আসে. 606 00:27:46,900 --> 00:27:51,139 এটা যে একটি ফাংশন প্রত্যাহার এর প্রমিত io.h, এ ঘোষণা যা 607 00:27:51,139 --> 00:27:53,180 একটি হেডার ফাইল, যা একটি বিষয়ে আমরা আসলে করব 608 00:27:53,180 --> 00:27:55,780 দীর্ঘ আগে আরো গভীরে ডুব. 609 00:27:55,780 --> 00:27:58,000 কিন্তু একটি হেডার ফাইল সাধারণত অনুষঙ্গী 610 00:27:58,000 --> 00:28:02,920 একটি কোড ফাইল, সোর্স কোড ফাইল, তাই করে প্রমিত io.h. অস্তিত্ব আছে অনেক ভালো 611 00:28:02,920 --> 00:28:05,930 >> একদা আগে, কেউ, বা কারো, লিখেছে 612 00:28:05,930 --> 00:28:11,040 এ, স্ট্যান্ডার্ড io.c নামক একটি ফাইল যা প্রকৃত সংজ্ঞা, 613 00:28:11,040 --> 00:28:15,220 বা printf, বাস্তবায়নের, এবং অন্যান্য কার্যাবলী কাঁদি 614 00:28:15,220 --> 00:28:16,870 আসলে লেখা হয়. 615 00:28:16,870 --> 00:28:22,140 আমরা কথা বিবেচনা হচ্ছে, তাই যদি যে দেওয়া এখানে বাম, hello.c, উপর, যখন যে 616 00:28:22,140 --> 00:28:26,250 কম্পাইল, এমনকি যদি hello.s আমাদের দেয় ঝনঝন একটি জায়গায় সংরক্ষণ বিরক্ত না 617 00:28:26,250 --> 00:28:31,360 আমরা এটা দেখতে, এবং যে সমাবেশ কোড পারেন hello.o, মধ্যে একত্র পরার যা 618 00:28:31,360 --> 00:28:34,630 প্রকৃতপক্ষে, ডিফল্ট নাম আপনি সোর্স কম্পাইল যখনই দেওয়া 619 00:28:34,630 --> 00:28:39,350 অবজেক্ট কোড কোড, কিন্তু হয় না এখনো এটি চালানো পুরোপুরি প্রস্তুত, 620 00:28:39,350 --> 00:28:41,460 আরেকটি পদক্ষেপ কারণ ঘটতে থাকে, এবং আছে 621 00:28:41,460 --> 00:28:44,440 গত কয়েক জন্য ঘটছে হয়েছে সপ্তাহ, আপনি সম্ভবত অজান্তে. 622 00:28:44,440 --> 00:28:47,290 >> বিশেষভাবে কোথাও এবং CS50 IDE তে, এবং এই, 623 00:28:47,290 --> 00:28:49,870 খুব, একটি একটি বিট হতে হবে একটি মুহূর্ত জন্য অতিসরলীকরণ, 624 00:28:49,870 --> 00:28:54,670 নেই, অথবা একটি সময় উপর ছিল, স্ট্যান্ডার্ড io.c নামক একটি ফাইল, 625 00:28:54,670 --> 00:28:58,440 কেউ মধ্যে কম্পাইল যে স্ট্যান্ডার্ড io.s বা সমমানের, 626 00:28:58,440 --> 00:29:02,010 কেউ তারপর সমবেত যে স্ট্যান্ডার্ড io.o মধ্যে, 627 00:29:02,010 --> 00:29:04,600 অথবা এটি একটি মধ্যে দেখা যাচ্ছে কিছুটা ভিন্ন ফাইল 628 00:29:04,600 --> 00:29:07,220 একটি ভিন্ন থাকতে পারে বিন্যাস পুরাপুরি এক্সটেনশন ফাইল, 629 00:29:07,220 --> 00:29:11,720 তত্ত্ব ও ধারণার, ঠিক কিন্তু সেই পদক্ষেপ কিছু ফর্ম ঘটতে ছিল. 630 00:29:11,720 --> 00:29:14,060 বলে, এখন যে হয়, যা আমি একটি প্রোগ্রাম লেখা করছি যখন, 631 00:29:14,060 --> 00:29:17,870 hello.c, শুধু বলেছেন যে, ওহে দুনিয়া, এবং আমি কারোর কোড ব্যবহার করছি 632 00:29:17,870 --> 00:29:22,480 একটি একদা যা ছিল printf,, মত সময়, স্ট্যান্ডার্ড io.c নামক একটি ফাইলে, 633 00:29:22,480 --> 00:29:26,390 তারপর একরকম আমি আমার নেওয়া আছে অবজেক্ট কোড, আমার zeros এবং বেশী, 634 00:29:26,390 --> 00:29:29,260 এবং যে ব্যক্তি এর অবজেক্ট কোড, বা zeros এবং বেশী, 635 00:29:29,260 --> 00:29:34,970 এবং একরকম তাদের একসঙ্গে লিঙ্ক যে, হ্যালো বলা এক চূড়ান্ত ফাইল 636 00:29:34,970 --> 00:29:38,070 আছে শূন্য সব এবং আমার প্রধান ফাংশন থেকে বেশী, 637 00:29:38,070 --> 00:29:40,830 এবং শূন্য সব এবং printf জন্য বেশী. 638 00:29:40,830 --> 00:29:44,900 >> এবং প্রকৃতপক্ষে, যে গত প্রক্রিয়া বলা হয়, আপনার অবজেক্ট কোড লিঙ্ক. 639 00:29:44,900 --> 00:29:47,490 যার আউটপুট একটি এক্সিকিউটেবল ফাইল. 640 00:29:47,490 --> 00:29:49,780 তাই সততা, এ প্রতিদিন, কিছুই শেষ 641 00:29:49,780 --> 00:29:52,660 সপ্তাহে এক থেকে পরিবর্তিত হয়েছে, যখন আমরা প্রথম প্রোগ্রাম কম্পাইল শুরু. 642 00:29:52,660 --> 00:29:55,200 প্রকৃতপক্ষে, এই সব হয়েছে ফণা নীচে ঘটছে, 643 00:29:55,200 --> 00:29:57,241 কিন্তু এখন আমরা একটি অবস্থানে আছেন যেখানে আমরা আসলে যা করতে পারেন 644 00:29:57,241 --> 00:29:58,794 এইসব বিভিন্ন পদক্ষেপ সরাইয়া জ্বালাতন. 645 00:29:58,794 --> 00:30:00,710 এবং প্রকৃতপক্ষে, শেষে দিনের, আমরা এখনও আছেন 646 00:30:00,710 --> 00:30:04,480 zeros এবং বেশী, সঙ্গে বাকি যা একটি মহান segue এখন আসলে 647 00:30:04,480 --> 00:30:08,620 সি আরেকটি ক্ষমতা, যে আমরা সম্ভবত লিভারেজ ছিল না করেছি 648 00:30:08,620 --> 00:30:11,250 তারিখ থেকে, bitwise অপারেটরদের হিসেবে পরিচিত. 649 00:30:11,250 --> 00:30:15,220 অন্য কথায়, এখন পর্যন্ত, যে কোনো সময় আমরা করেছি সি সি বা ভেরিয়েবলের মধ্যে তথ্য মোকাবেলা, 650 00:30:15,220 --> 00:30:17,660 আমরা ভালো কিছু ছিল করেছি অক্ষর এবং floats এবং প্লাগইন 651 00:30:17,660 --> 00:30:21,990 এবং longs এবং টেনিস এবং মত, কিন্তু ঐ সব অন্তত আট বিট. 652 00:30:21,990 --> 00:30:25,550 আমরা এখনো করতে সক্ষম হয়েছি না পৃথক বিটের নিপূণভাবে, 653 00:30:25,550 --> 00:30:28,970 এমনকি একজন ব্যক্তি বিট যদিও আমরা একটি 0 এবং একটি 1 প্রতিনিধিত্ব করতে পারে না. 654 00:30:28,970 --> 00:30:32,640 এখন এটা সি দেখা যাচ্ছে যে, আপনি পৃথক বিটের করার সুযোগ পেতে পারেন, 655 00:30:32,640 --> 00:30:35,530 আপনি সিনট্যাক্স জানেন তাহলে, যা দিয়ে তাদের এ পেতে. 656 00:30:35,530 --> 00:30:38,010 >> তাই এর কটাক্ষপাত করা যাক bitwise অপারেটরদের এ. 657 00:30:38,010 --> 00:30:41,700 সুতরাং এখানে অঙ্কিত কয়েকটি চিহ্ন আছে আমরা, ধরনের, সাজানোর, আগে দেখা করেছি. 658 00:30:41,700 --> 00:30:45,580 আমি একটি উল্লম্ব একটি এম্পারসেন্ড দেখতে বার, এবং সেইসাথে কিছু অন্যদের, 659 00:30:45,580 --> 00:30:49,430 এবং যে এম্পারসেন্ড এম্পারসেন্ড প্রত্যাহার আমরা আগে দেখা যায় কিছু. 660 00:30:49,430 --> 00:30:54,060 আপনি যেখানে লজিক্যাল এবং অপারেটর, তারা দুজন একসঙ্গে, বা যৌক্তিক বা 661 00:30:54,060 --> 00:30:56,300 অপারেটর, যেখানে আপনি দুটি উল্লম্ব বার আছে. 662 00:30:56,300 --> 00:31:00,550 Bitwise অপারেটর, যা আমরা করব পৃথকভাবে বিট কাজ দেখতে 663 00:31:00,550 --> 00:31:03,810 শুধু একটি একক ampersand ব্যবহার, একটি একক উলম্ব বার ক্যারেট প্রতীক 664 00:31:03,810 --> 00:31:06,620 পরের, সামান্য আসে টিল্ড, এবং তারপর বাম 665 00:31:06,620 --> 00:31:08,990 বন্ধনী বন্ধনী বামে, অথবা ডান বন্ধনী ডান বন্ধনী. 666 00:31:08,990 --> 00:31:10,770 এই প্রত্যেকটি ভিন্ন অর্থ আছে. 667 00:31:10,770 --> 00:31:11,950 >> বস্তুত, এর কটাক্ষপাত করা যাক. 668 00:31:11,950 --> 00:31:16,560 এর পুরানো স্কুল আজ, এবং ব্যবহারের যাওয়া যাক বিগতবত্সর থেকে একটি স্পর্শ পর্দা, 669 00:31:16,560 --> 00:31:18,002 একটি সাদা বোর্ড হিসাবে পরিচিত. 670 00:31:18,002 --> 00:31:19,710 আর এই সাদা বোর্ড আমাদের অনুমতি দিতে যাচ্ছে 671 00:31:19,710 --> 00:31:27,360 কিছু মোটামুটি সহজ চিহ্ন প্রকাশ করার, অথবা বরং কিছু মোটামুটি সহজ সূত্র, 672 00:31:27,360 --> 00:31:29,560 যে আমরা শেষ পর্যন্ত তারপর পারেন লিভারেজ, যাতে 673 00:31:29,560 --> 00:31:33,230 পৃথক অ্যাক্সেস করতে একটি সি প্রোগ্রাম মধ্যে বিট. 674 00:31:33,230 --> 00:31:34,480 অন্য কথায়, এই কাজ করা যাক. 675 00:31:34,480 --> 00:31:37,080 একটি জন্য চলুন শুরু করা যাক প্রথম আলাপ এম্পারসেন্ড সম্পর্কে মুহূর্ত, 676 00:31:37,080 --> 00:31:39,560 যা bitwise ও অপারেটর. 677 00:31:39,560 --> 00:31:42,130 অন্য কথায়, এই হল পারবেন যে একটি অপারেটর 678 00:31:42,130 --> 00:31:45,930 আমাকে একটা বাম হাত পরিবর্তনশীল আছে সাধারণত, এবং একটি ডান দিকের পরিবর্তনশীল, 679 00:31:45,930 --> 00:31:50,640 বা একজন ব্যক্তি মান, যে যদি আমরা এবং তাদের একসঙ্গে, আমাকে একটি চূড়ান্ত ফলাফল দেয়. 680 00:31:50,640 --> 00:31:51,560 সুতরাং আমি কি বোঝাতে চেয়েছেন? 681 00:31:51,560 --> 00:31:54,840 একটি প্রোগ্রাম, আপনি একটি ভেরিয়েবল আছে এই মান এর দোকানে এক, যে 682 00:31:54,840 --> 00:31:58,000 বা এর এটা সহজ রাখা, এবং মাত্র দিন পৃথকভাবে zeros এবং বেশী লেখে, 683 00:31:58,000 --> 00:32:00,940 এম্পারসেন্ড অপারেটর এখানে কিভাবে কাজ করে. 684 00:32:00,940 --> 00:32:06,400 0 এম্পারসেন্ড 0 0 সমান যাচ্ছে. 685 00:32:06,400 --> 00:32:07,210 এখন কেন যে হয়? 686 00:32:07,210 --> 00:32:09,291 >> এটা অনুরূপ বুলিয়ান এক্সপ্রেশন, 687 00:32:09,291 --> 00:32:10,540 যে আমরা এ পর্যন্ত আলোচনা করেছি. 688 00:32:10,540 --> 00:32:15,800 আপনি সব পরে যদি মনে করেন, 0 মিথ্যা, 0, মিথ্যা মিথ্যা এবং মিথ্যা 689 00:32:15,800 --> 00:32:18,720 আমরা আলোচনা করেছি, হয় কথাটি মিথ্যা. 690 00:32:18,720 --> 00:32:20,270 তাই আমরা পাশাপাশি এখানে 0 পেতে. 691 00:32:20,270 --> 00:32:24,390 আপনি 0 এম্পারসেন্ড নিতে হলে 1, ভাল, যে খুব, 692 00:32:24,390 --> 00:32:29,890 কারণ এই জন্য, 0 হতে যাচ্ছে বাঁদিকের অভিব্যক্তি, সত্য বা 1 হতে 693 00:32:29,890 --> 00:32:32,360 এটা সত্য এবং সত্য হতে হবে. 694 00:32:32,360 --> 00:32:36,320 কিন্তু এখানে আমরা মিথ্যা আছে এবং সত্য, বা 0 এবং 1. 695 00:32:36,320 --> 00:32:42,000 এখন আবার আমরা 1 এম্পারসেন্ড আছে 0,, খুব, 0 হতে যাচ্ছে, 696 00:32:42,000 --> 00:32:47,240 এবং আমরা 1 এম্পারসেন্ড 1 আছে, অবশেষে আমরা একটি 1 বিট আছে. 697 00:32:47,240 --> 00:32:50,340 তাই অন্য কথায়, আমরা কাজ করছি না এই অপারেটর সঙ্গে আকর্ষণীয় কিছু 698 00:32:50,340 --> 00:32:51,850 শুধু এখনো, এই এম্পারসেন্ড অপারেটর. 699 00:32:51,850 --> 00:32:53,780 এটা bitwise ও অপারেটর. 700 00:32:53,780 --> 00:32:57,290 কিন্তু এই উপাদানগুলো আছে যার মাধ্যমে আমরা কি করতে পারি 701 00:32:57,290 --> 00:32:59,240 আমরা শীঘ্রই দেখতে পাবেন আকর্ষণীয় কিছু. 702 00:32:59,240 --> 00:33:02,790 >> এখন এর মাত্র একক তাকান এখানে ডান উপর উলম্ব বার. 703 00:33:02,790 --> 00:33:06,710 আমি একটি বিট 0 এবং আমি থাকে বা এটি দিয়ে, bitwise 704 00:33:06,710 --> 00:33:11,030 বা অপারেটর, অন্য 0 বিট, যে আমাকে 0 দিতে যাচ্ছে. 705 00:33:11,030 --> 00:33:17,540 আমি একটি বিট 0 এবং বা এটি দিয়ে নিতে হলে একটি 1 বিট, তারপর আমি 1 পেতে যাচ্ছি. 706 00:33:17,540 --> 00:33:19,830 এবং সত্য, শুধু এর জন্য স্বচ্ছতা, আমাকে ফিরে যেতে দিন 707 00:33:19,830 --> 00:33:23,380 যাতে আমার উল্লম্ব বার 1 এর জন্য ভুল না হয়. 708 00:33:23,380 --> 00:33:26,560 আমার সব পুনর্লিখন করা যাক আমার 1 একটু বেশি 709 00:33:26,560 --> 00:33:32,700 আমি যদি এটা স্পষ্ট যে, যাতে আমরা পরের, দেখতে একটি 1 অথবা 0, যে একটি 1 হতে যাচ্ছে আছে, 710 00:33:32,700 --> 00:33:39,060 এবং আমি 1 বা 1 একটি আছে, খুব, একটি 1 হতে যাচ্ছে. 711 00:33:39,060 --> 00:33:42,900 সুতরাং আপনি কথাটি দেখতে বা যে পারেন অপারেটর খুব ভিন্ন আচরণ করবে. 712 00:33:42,900 --> 00:33:48,070 , এই 0 আমাকে দেয় অথবা 0 আমার 0 দেয় কিন্তু প্রত্যেক অন্যান্য সমন্বয় আমাকে 1 দেয়. 713 00:33:48,070 --> 00:33:52,480 এতক্ষণ আমি এক 1 আছে সূত্র, ফলাফলের 1 হতে যাচ্ছে. 714 00:33:52,480 --> 00:33:55,580 >> এবং এর বিপরীতে অপারেটর, এম্পারসেন্ড, 715 00:33:55,580 --> 00:34:00,940 আমি দুটি 1 এর আছে শুধুমাত্র যদি সমীকরণ, আমি আসলে একটি 1 খুঁজে পেতে পারি. 716 00:34:00,940 --> 00:34:02,850 এখন কয়েক অন্যান্য আছে অপারেটরদের পাশাপাশি. 717 00:34:02,850 --> 00:34:04,810 তাদের মধ্যে একজন একটু বেশি জড়িত. 718 00:34:04,810 --> 00:34:07,980 তাই আমাকে এগিয়ে যান এবং নিশ্চিহ্ন করা যাক এই কিছু স্থান মুক্ত করতে. 719 00:34:07,980 --> 00:34:13,020 720 00:34:13,020 --> 00:34:16,460 আর এর কটাক্ষপাত করা যাক মাত্র কয়েক মিনিটের জন্য ক্যারেট প্রতীক. 721 00:34:16,460 --> 00:34:18,210 এই সাধারণত একটি হল অক্ষর আপনি টাইপ করতে পারেন 722 00:34:18,210 --> 00:34:21,420 আপনার কীবোর্ড জোত শিফট এবং আপনার অবস্থান উপরে সংখ্যার তারপর এক 723 00:34:21,420 --> 00:34:22,250 কীবোর্ড. 724 00:34:22,250 --> 00:34:26,190 >> সুতরাং এই একচেটিয়া বা অপারেটর, একচেটিয়া বা. 725 00:34:26,190 --> 00:34:27,790 তাই আমরা ঠিক বা অপারেটর দেখেছি. 726 00:34:27,790 --> 00:34:29,348 এই একচেটিয়া বা অপারেটর. 727 00:34:29,348 --> 00:34:30,639 আসলে পার্থক্য কি? 728 00:34:30,639 --> 00:34:34,570 ওয়েল এর মাত্র সূত্র তাকান, এবং শেষ পর্যন্ত উপাদান হিসাবে এই ব্যবহার. 729 00:34:34,570 --> 00:34:37,690 0 XOR 0. 730 00:34:37,690 --> 00:34:39,650 আমি বলতে যাচ্ছি সবসময় 0 হয়. 731 00:34:39,650 --> 00:34:41,400 যে XOR এর সংজ্ঞা. 732 00:34:41,400 --> 00:34:47,104 0 XOR 1 1 হতে যাচ্ছে. 733 00:34:47,104 --> 00:34:58,810 1 XOR 0, 1 হতে যাচ্ছে এবং 1 XOR 1 হতে যাচ্ছে? 734 00:34:58,810 --> 00:34:59,890 ভুল? 735 00:34:59,890 --> 00:35:00,520 অথবা ঠিক? 736 00:35:00,520 --> 00:35:01,860 আমি জানি না. 737 00:35:01,860 --> 00:35:02,810 0. 738 00:35:02,810 --> 00:35:04,700 এখন কি এখানে যাচ্ছে? 739 00:35:04,700 --> 00:35:06,630 ওয়েল সম্পর্কে চিন্তা এই অপারেটর নাম. 740 00:35:06,630 --> 00:35:09,980 একচেটিয়া বা, যাতে নাম, ধরনের, সুপারিশ 741 00:35:09,980 --> 00:35:13,940 উত্তর শুধুমাত্র হতে যাচ্ছে একটি 1 ইনপুট একচেটিয়া যদি, 742 00:35:13,940 --> 00:35:15,560 একচেটিয়াভাবে বিভিন্ন. 743 00:35:15,560 --> 00:35:18,170 সুতরাং এখানে ইনপুট হয় একই, তাই আউটপুট 0 হয়. 744 00:35:18,170 --> 00:35:20,700 এখানে ইনপুট হয় একই, তাই আউটপুট 0 হয়. 745 00:35:20,700 --> 00:35:25,640 এখানে আউটপুট তারা ভিন্ন হয় একচেটিয়া, এবং তাই আউটপুট 1 হয়. 746 00:35:25,640 --> 00:35:28,190 সুতরাং এটা অনুরূপ এবং, এটা, অনুরূপ 747 00:35:28,190 --> 00:35:32,760 অথবা বরং এটি অনুরূপ বা, কিন্তু শুধুমাত্র একটি স্বতন্ত্র ভাবে. 748 00:35:32,760 --> 00:35:36,210 এই এক, আর একটি 1 আমরা দুই 1 এর কারণ, 749 00:35:36,210 --> 00:35:38,621 এবং না একচেটিয়াভাবে, তাদের মাত্র এক. 750 00:35:38,621 --> 00:35:39,120 ঠিক আছে. 751 00:35:39,120 --> 00:35:40,080 অন্যরা কি সম্পর্কে? 752 00:35:40,080 --> 00:35:44,220 ওয়েল টিল্ড এদিকে, আসলে সুন্দর এবং সহজ, সৌভাগ্যক্রমে. 753 00:35:44,220 --> 00:35:46,410 আর এই একটি ইউনারী হয় যার মানে অপারেটর, 754 00:35:46,410 --> 00:35:50,400 এটি শুধুমাত্র একটি ইনপুট প্রয়োগ এক operand, তাই কথা বলতে. 755 00:35:50,400 --> 00:35:51,800 একটি বাম এবং ডান থেকে. 756 00:35:51,800 --> 00:35:56,050 অন্য কথায়, আপনার টিল্ড নিতে হলে 0, উত্তর বিপরীত হবে. 757 00:35:56,050 --> 00:35:59,710 এবং আপনি 1 এর টিল্ড নিতে হলে, উত্তর বিপরীত থাকবে. 758 00:35:59,710 --> 00:36:02,570 সুতরাং টিল্ড অপারেটর একটি বিট অস্বীকার একটি উপায়, 759 00:36:02,570 --> 00:36:06,000 বা থেকে একটি বিট আলোকসম্পাতের 0 থেকে 1, বা 0 থেকে 1. 760 00:36:06,000 --> 00:36:09,820 >> এবং পরিশেষে আমাদের ছেড়ে মাত্র দুই চূড়ান্ত অপারেটরদের সঙ্গে, 761 00:36:09,820 --> 00:36:13,840 বাম স্থানান্তর তথাকথিত, এবং ডানদিকে স্থানান্তর অপারেটর তথাকথিত. 762 00:36:13,840 --> 00:36:16,620 এর কিভাবে তাদের কাজ কটাক্ষপাত করা যাক. 763 00:36:16,620 --> 00:36:20,780 লেখা বাম স্থানান্তর অপারেটর, যে মত দুটি কোণ বন্ধনী দিয়ে, 764 00:36:20,780 --> 00:36:22,110 অনুসরণ হিসাবে কাজ করে. 765 00:36:22,110 --> 00:36:27,390 যদি বাম আমার ইনপুট, বা আমার operand, স্থানান্তর অপারেটর জবাবটা একটি 1 হয়. 766 00:36:27,390 --> 00:36:33,750 আর আমি তখন কম্পিউটারে বলতে 1, সাতটি স্থানে বলে যে স্থানান্তর বাম, 767 00:36:33,750 --> 00:36:37,150 ফলে আমি যেন হয় যে 1 গ্রহণ করা, এবং এটা স্থানান্তর 768 00:36:37,150 --> 00:36:40,160 উপর সাতটি স্থানে বাম, এবং ডিফল্ট দ্বারা 769 00:36:40,160 --> 00:36:42,270 আমরা ধরে নিই যে চলুন সঠিক স্থান 770 00:36:42,270 --> 00:36:44,080 শূন্য দিয়ে padded করা যাচ্ছে. 771 00:36:44,080 --> 00:36:50,316 অন্য কথায়, 1 স্থানান্তর 7 যাচ্ছে বাম অনুসরণ, 1 যে আমাকে দিতে দ্বারা 1, 2, 3, 772 00:36:50,316 --> 00:36:54,060 4, 5, 6, 7 শূন্য. 773 00:36:54,060 --> 00:36:57,380 যাতে একটি উপায়, এটা আপনি করতে পারবেন 1 এর মতো একটি ছোট সংখ্যা নিতে, 774 00:36:57,380 --> 00:37:00,740 এবং পরিষ্কারভাবে এটি অনেক হয়েছে এই ভাবে অনেক বড়, অনেক, 775 00:37:00,740 --> 00:37:06,460 কিন্তু আমরা আসলে দেখতে যাচ্ছেন তার জন্য আরো চালাক পন্থা 776 00:37:06,460 --> 00:37:08,080 পরিবর্তে, পাশাপাশি, 777 00:37:08,080 --> 00:37:08,720 >> ঠিক আছে. 778 00:37:08,720 --> 00:37:10,060 যে সপ্তাহে তিনটি জন্য এটি. 779 00:37:10,060 --> 00:37:11,400 আমরা আপনার পরবর্তী সময় দেখতে হবে. 780 00:37:11,400 --> 00:37:12,770 এই ছিল CS50. 781 00:37:12,770 --> 00:37:17,270 782 00:37:17,270 --> 00:37:22,243 >> [সঙ্গীত বাজাচ্ছি] 783 00:37:22,243 --> 00:37:25,766 >> বক্তা 1: তিনি জলখাবার ছিল একটি হট অর্থহীন ফলের টুকুরা খাওয়ার বার. 784 00:37:25,766 --> 00:37:28,090 তিনি তার মুখের উপর এটি সব ছিল. 785 00:37:28,090 --> 00:37:30,506 তিনি দাড়ি ভালো যে চকলেট পরেছে 786 00:37:30,506 --> 00:37:31,756 স্পিকার 2: আপনি কি করছেন? 787 00:37:31,756 --> 00:37:32,422 স্পিকার 3: Hmmm? 788 00:37:32,422 --> 00:37:33,500 কি? 789 00:37:33,500 --> 00:37:36,800 >> স্পিকার 2: আপনি শুধু ডাবল চোবান কি? 790 00:37:36,800 --> 00:37:38,585 আপনি ডবল চিপ চুবান. 791 00:37:38,585 --> 00:37:39,460 স্পিকার 3: মাফ করবেন. 792 00:37:39,460 --> 00:37:44,440 স্পিকার 2: আপনি যদি, চিপ চুবান একটি কামড় ওঠে, এবং আপনি আবার চুবান. 793 00:37:44,440 --> 00:37:44,940 স্পিকার 3: 794 00:37:44,940 --> 00:37:48,440 স্পিকার 2: যে নির্বাণ মত তাই ডিপ আপনার পুরো মুখের ডান. 795 00:37:48,440 --> 00:37:52,400 পরবর্তী সময় আপনি একটি চিপ নেওয়া শুধু একবার তা ডিপ, এবং এটি শেষ. 796 00:37:52,400 --> 00:37:53,890 >> স্পিকার 3: আপনি কি জানেন ড্যান? 797 00:37:53,890 --> 00:37:58,006 আপনি যদি ডিপ করতে চান যে ভাবে ডিপ. 798 00:37:58,006 --> 00:38:01,900 আমি ডিপ করতে চান যে ভাবে ডিপ করব. 799 00:38:01,900 --> 00:38:03,194