[সঙ্গীত বাজানো] DAVID Malan: ঠিক আছে. ঠিক আছে, ফিরে আসার জন্য স্বাগতম. তাই এই, এ সপ্তাহ 4 উহার ইতিমধ্যে. এবং আপনি যে গত সপ্তাহে প্রত্যাহার করব, আমরা রাখা অল্পমাত্র বিট জন্য সরাইয়া কোড এবং আমরা একটু বেশি কথা বলা শুরু মত উচ্চ স্তরের, প্রায় জিনিষ যা, যদিও অনুসন্ধান এবং বাছাই কিছুটা সহজ ধারণা আছে, সমস্যার একটি শ্রেণীর প্রতিনিধি আপনি বিশেষ করে সমাধান আরম্ভ করা হবে ফাইনাল সম্পর্কে চিন্তা করা শুরু প্রকল্প এবং আকর্ষণীয় সমাধান আপনি বাস্তব সমস্যা থাকতে পারে. এখনই বুদ্বুদ সাজানোর সহজ এক যেমন আলগোরিদিম, এবং এটি এই ছোট সংখ্যা না থাকার কাজ একটি তালিকা অথবা একটি অ্যারের ধরনের মধ্যে আপ উপরে বুদবুদ তাদের পথ, এবং বড় সংখ্যার তাদের পথ নিচে নামাও যে তালিকার শেষে. এবং আমরা ঠাহর করা যেতে পারে যে প্রত্যাহার বুদ্বুদ সাজানোর একটি সামান্য ভালো কিছু. তাই আমাকে এগিয়ে যান এবং ক্লিক করুন স্টার্ট দিন. আমি বুদ্বুদ সাজানোর preselected করেছি. এবং আপনি পুনরাহ্বান যে যদি লম্বা নীল লাইন ছোট, বড় সংখ্যার উপস্থাপন নীল লাইন হিসেবে, ছোট সংখ্যার উপস্থাপন আমরা আবার এবং আবার এই মাধ্যমে যান এবং আবার, প্রতিটি পাশে দুইটা তুলনা লাল অন্যান্য, আমরা অদলবদল চলুন সবচেয়ে বড় এবং যদি ক্ষুদ্রতম তারা যাতে সীমার বাইরে. এই যান এবং যেতে যেতে হবে , এবং আপনি যে বড় দেখতে পাবেন উপাদান তাদের পথ তৈরি করছেন অধিকার, এবং ছোট উপাদান বাম থেকে তাদের পথ তৈরীর. কিন্তু আমরা সংখ্যায় শুরু দক্ষতা, এই অ্যালগরিদম মানের. এবং আমরা বলেন, সবচেয়ে খারাপ মধ্যে মামলা, এই অ্যালগরিদম গ্রহণ প্রায় কতগুলি পদক্ষেপ? সুতরাং N ছক. এবং N কি ছিল? শ্রোতা: উপাদানের সংখ্যা. DAVID Malan: তাই N ছিল উপাদানের সংখ্যা. এবং তাই আমরা প্রায়ই এই কাজ করব. আমরা মাপ সম্পর্কে কথা বলতে চান যে কোনো সময় একটি সমস্যা বা কোনো মাপ ইনপুট, বা এটা লাগে সময় পরিমাণ আউটপুট উত্পাদন, আমরা ঠিক করব সাধারণ যাই হোক না কেন ইনপুট N হয়. তাই সপ্তাহ 0, সংখ্যা পেজ ফোন বই N ছিল. ছাত্র সংখ্যা রুমে n ছিল. তাই এখানে খুব,, আমরা অনুসরণ করছেন যে প্যাটার্ন. এখনই N ছক বিশেষ হয় না দ্রুত, তাই আমরা আরও ভাল করতে চেষ্টা করে. এবং তাই আমরা একটি দম্পতি দিকে তাকিয়ে অন্য আলগোরিদিম, যার মধ্যে নির্বাচন সাজানোর ছিল. ছিল নির্বাচন সাজানোর তাই একটু ভিন্ন. এটা প্রায় সহজ ছিল, আমি বলতে সাহস, আমি শুরু শুরু যদ্দ্বারা আমাদের স্বেচ্ছাসেবকদের তালিকা এবং আমি ঠিক আবার এবং আবার এবং আবার মাধ্যমে গিয়েছিলাম ক্ষুদ্রতম খুঁজে অবচয় তালিকা একটি সময়ে উপাদান এবং বা তাকে নির্বাণ তার তালিকা প্রারম্ভে. কিন্তু এই খুব,, একবার আমরা ভাবতে শুরু গণিত এবং বড় মাধ্যমে ছবি, কতবার সম্পর্কে চিন্তা আমি ঘোষণা এবং ফিরে ফিরে যাওয়া ছিল এবং ঘোষণা, আমরা লক বলেন, নির্বাচন সাজানোর, খুব,, কি ছিল? N ছক. এখন বাস্তব জগতে, এটা প্রতাপ আসলে সীমিতভাবে দ্রুত হতে হবে. আবার, কারণ আমি রাখা আছে কি না আমি সাজানো ছিল একবার backtracking ক্ষুদ্রতম উপাদান. কিন্তু আমরা খুব বড় N সম্পর্কে চিন্তা, এবং যদি আপনি সাজানোর গণিত হিসেবে খুঁজে না আমি N ছক সঙ্গে বোর্ডে করেনি বিয়োগ কিছু, অন্য সব কিছুর N ছক একবার N ছাড়াও বৃহত্ পায়, না আছে সত্যিই অনেক ব্যাপার. সুতরাং কম্পিউটার বিজ্ঞানীরা হিসাবে, আমরা বাছাই ছোট একটি অন্ধ চোখ ঘুরিয়ে কারণের এবং শুধুমাত্র ফ্যাক্টর নেভিগেশন ফোকাস করতে যাচ্ছে একটি অভিব্যক্তি সবচেয়ে বড় পার্থক্য. ওয়েল, সর্বশেষে, আমরা তাকিয়ে সন্নিবেশ সাজানোর এ. এবং এই আত্মা অনুরূপ ছিল, কিন্তু iteratively মধ্য দিয়ে যেতে হবে এবং বদলে শুধুমাত্র একটি ক্ষুদ্রতম উপাদান নির্বাচন করুন সময়, আমি পরিবর্তে হাতে নিয়েছে যে আমি সব মোকাবিলা, এবং আমি সিদ্ধান্ত হয়েছিল ঠিক আছে, আপনি এখানে অন্তর্গত. তারপর আমি পরবর্তী উপাদান উপর সরানো এবং সিদ্ধান্ত নিয়েছে যে তিনি বা তিনি এখানে belonged. এবং তারপর আমি এবং সরানো. এবং আমি পথ ধরে, আপনি হতে পারে যাতে এই ছেলেরা নামান তাদের জন্য জায়গা. সুতরাং যে মানসিক রদবদলটি ধরণের ছিল নির্বাচন সাজানোর যে আমরা সন্নিবেশ সাজানোর বলা হয়. সুতরাং সঞ্চালনের এই বিষয় বাস্তব জগতে. মাত্র কয়েক বছর আগে, যখন একটি নির্দিষ্ট সিনেটার, প্রেসিডেন্ট চলমান ছিল এরিক শ্মিট, সময় প্রধান নির্বাহী কর্মকর্তা গুগল, আসলে সুযোগ ছিল তার সাক্ষাত্কার. এবং আমরা এই YouTube ভাগ চাই আমরা তুলতে পারে, তাহলে এখানে আপনার জন্য ক্লিপ ভলিউম. [ভিডিও প্লেব্যাক] -এখন, সিনেটর, আপনি Google-এ এখানে এসেছি এবং আমি প্রেসিডেন্সি মনে করতে চাই একটি পেশা ইন্টারভিউ হিসাবে. [হাস্য] -এখনই এটা পেতে কঠিন প্রেসিডেন্ট হিসেবে একটি কাজ. এবং আপনি মাধ্যমে চলুন এখন rigors. এটি Google-এর একটি কাজ পেতে অনেক কঠিন. আমরা প্রশ্ন আছে এবং আমরা জিজ্ঞাসা আমাদের প্রার্থীদের প্রশ্ন. এবং এই এক ল্যারি Schwimmer থেকে. [হাস্য] -আপনি বলছি আমি নিশ্চয়ই মজা করছি মনে হয়? এটা ঠিক এখানে. সবচেয়ে কার্যকরী উপায় কি একটি মিলিয়ন দুই বিট ইন্টিজার সাজাতে? [হাস্য] -ওয়েল, uh - -I'm দুঃখিত. হয়তো আমরা উচিত - কোন না, না, না, না,. যে একটি নয় - ঠিক আছে. আমি বুদ্বুদ সাজানোর মনে যেতে কুপথ হতে. [হাস্য] [CHEERING ও সাধুবাদ] তাকে এই ডটকমকে বলেন, যারা অন আসা? ঠিক আছে. [END টি ভিডিও প্লেব্যাক] DAVID Malan: তাই সেখানে যদি আপনি এটি আছে. সুতরাং আমরা এই চলমান সংখ্যায় শুরু গুণ, তাই কিছু সঙ্গে কথা বলতে যা asymptotic স্বরলিপি, বলা শুধু বাঁক আমাদের সাজানোর উল্লেখ একটি অন্ধ যারা ছোট উপাদান চক্ষু এবং শুধুমাত্র চলমান সময় এ খুঁজছেন, এই আলগোরিদিম কর্মক্ষমতা, N সময়ের বৃহত্ পায় না. এবং তাই আমরা বড় মন্ত্রণালয় এবং বড় হে চালু আমরা চিন্তা প্রতিনিধিত্ব কিছু উচ্চ বাউন্ড হিসাবে. এবং প্রকৃতপক্ষে, BARRY, আমরা কম করতে পারেন মাইক একটি সামান্য বিট আর? আমরা এই উচ্চ আবদ্ধ হয় চিন্তা. N ছক উপায়ে তাই বড় হে যে লক, ভালো কিছু নির্বাচন সাজানোর গ্রহণ করা হবে ছক পদক্ষেপ n. সন্নিবেশ সাজানোর মত বা কিছু N ছক পদক্ষেপ হবে. এখনই সন্নিবেশ ভালো কিছু জন্য সাজানোর, লক কী ছিল? একটি অ্যারের দেওয়া, কি খারাপ এর আপনি হয়ত সম্ভব যে দৃশ্যকল্প নিজের সঙ্গে সম্মুখীন? এটা ঠিক আছে, সম্পূর্ণ পিছন দিকে আছে? এটি সম্পূর্ণ পিছন দিকে যদি কারণ, আপনি কাজ সমগ্র অনেক কাজ আছে. কারণ আপনি সম্পূর্ণভাবে পিছন দিকে করছি, আপনাকে খুঁজে পেতে যাচ্ছেন এখানে সবচেয়ে বড় উপাদান, যদিও এটা আছে নিচে জন্যে. সুতরাং আপনি এ, বলতে সমস্ত অধিকার চলুন সময় এই মুহূর্তে, আপনি এখানে অন্তর্গত তাই আপনি একা এটা ছেড়ে. তারপর আপনি, ওহ, বুঝতে অভিশাপ, আমি আছে এই সামান্য কম উপাদান সরাতে আপনি বাম. তারপর আমি আবার কি আছে এবং আবার এবং আবার. এবং আমি পিছে গিয়েছিলাম, তাহলে আপনি কর্মক্ষমতা মনে সাজাতে হবে যে অ্যালগরিদম, কারণ ক্রমাগত I am নিচে বাকিদের shuffling এটি জন্য জায়গা অ্যারে. সুতরাং যে লক আছে. বিপরীতে - এবং এই শেষ সময় একটি cliffhanger ছিল - আমরা বলেন যে সন্নিবেশ সাজানোর কি একটি ওমেগা ছিল? সর্বোত্তম ক্ষেত্রে চলমান কি সন্নিবেশ সাজানোর সময়? সুতরাং এটা আসলে n এর. যে আমরা বাম যে ফাঁকা ছিল বোর্ডে শেষ সময়. এবং এটি N এর Omega কেন এর কারণ? ভাল, খুব ভাল ক্ষেত্রে, কি সন্নিবেশ সাজানোর হস্তান্তর করা যাচ্ছে? সম্পূর্ণ সাজানো যে ওয়েল, একটি তালিকা ইতিমধ্যে, কি সংক্ষিপ্ত কাজ. কিন্তু কি সন্নিবেশ সাজানোর ওপর ষাঁড়ের এখানে শুরু হয় এবং যে কারণ হল সিদ্ধান্ত নেয়, ওহ, আপনি সংখ্যা এক, আপনি এখানে অন্তর্গত. ওহ, কি সৌভাগ্য. আপনি দুই নম্বর করছি. আপনি এখানে অন্তর্গত. আরও ভাল নম্বর তিন,, আপনি এখানে অন্তর্গত. এটা শেষে পায় যত তাড়াতাড়ি তালিকা, প্রতি সন্নিবেশ সাজানোর এর pseudocode আমরা শব্দগতভাবে মাধ্যমে গিয়েছিলাম যে শেষ সময়, এটি করা. কিন্তু নির্বাচন সাজানোর, বিপরীতভাবে, কি করছে রাখা? রাখা তালিকা মাধ্যমে যাচ্ছে আবার এবং আবার এবং আবার. কী অন্তর্দৃষ্টি শুধুমাত্র ছিল কারণ আপনি সমস্ত উপায় তাকিয়ে একবার তালিকার শেষে আপনি নির্দিষ্ট হতে পারে আপনার নির্বাচিত উপাদান ছিল প্রকৃতপক্ষে বর্তমানে ক্ষুদ্রতম উপাদান. এই বিভিন্ন মানসিক মডেল শেষে তাই কিছু খুব বাস্তব বিশ্বের প্রদায়ক আপ আমাদের জন্য পার্থক্য, সেইসাথে এই তাত্ত্বিক asymptotic পার্থক্য. তাই শুধু N বড় হে, তারপর, আপনি সংক্ষিপ্তবৃত্তি ছক, আমরা কয়েক ধরনের দেখা করেছি এ পর্যন্ত আলগোরিদিম. N বড় হে? যে পারা একটি অ্যালগরিদম কি N বড় হে হতে বলেন করা? সবচেয়ে খারাপ ক্ষেত্রে, এটা লাগে ধাপের একটি রৈখিক সংখ্যা. ঠিক আছে, রৈখিক অনুসন্ধান. এবং সবচেয়ে খারাপ ক্ষেত্রে, যেখানে উপাদান আপনি যখন খুঁজছেন রৈখিক খোঁজো আবেদন? ঠিক আছে, সবচেয়ে খারাপ ক্ষেত্রে, এটা এমনকি আছে না. বা দ্বিতীয় সবচেয়ে খারাপ ক্ষেত্রে, এটা যা শেষ পর্যন্ত সমস্ত উপায়, প্লাস বা মাইনাস-এক ধাপ পার্থক্য. তাই দিনের শেষে, আমরা এটা রৈখিক বলতে পারেন. N বিগ হে রৈখিক অনুসন্ধান করা হবে, সবচেয়ে খারাপ ক্ষেত্রে, কারণ উপাদান এমনকি নেই বা এটা শেষে সব পথ. ওয়েল, এন লগ বড় হে. আমরা মহান বিষদভাবে কথা বলা হয়নি এই, কিন্তু আমরা আগে এই দেখা করেছি. কি তথাকথিত লগারিদমিক রান সময়, লক? হ্যাঁ, তাই বাইনারি অনুসন্ধান. লক এবং বাইনারি অনুসন্ধান কোথাও উপাদান থাকতে পারে মধ্যম, বা কোথাও অ্যারের ভিতরে. কিন্তু আপনি কেবল একবার এটি খুঁজে বার মধ্যে, অর্ধেক তালিকা বিভক্ত করা অর্ধেক, অর্ধেক, অর্ধেক. এবং তারপর voila, এটা আছে. অথবা আবার, লক, এটা এমনকি আছে না. কিন্তু আপনি তা না যে জানি না আপনি সাজানোর যে শেষ পর্যন্ত পৌঁছতে halving দ্বারা নীচে সবচেয়ে উপাদান এবং halving এবং halving. 1 বড় হে. সুতরাং আমরা 3 2, বড় হে বড় হে পারে. আপনি শুধু একটি ধ্রুবক সংখ্যা চান যে কোন সময়, আমরা শুধু শুধু সহজ করে সাজাতে 1 বড় হে হিসেবে. এমনকি বাস্তবানুগভাবে, এটা লাগে যদি যদিও এটি একটি এর 2 বা এমনকি 100 ধাপ, যদি ধাপ ধ্রুবক নম্বর, আমরা শুধু 1 বড় হে বলে. যে একটি অ্যালগরিদম কি 1 বড় হে মধ্যে? শ্রোতা: দৈর্ঘ্য খোঁজ একটি পরিবর্তনশীল. DAVID Malan: খোঁজা একটি পরিবর্তনশীল এর দৈর্ঘ্য? শ্রোতা: না, দৈর্ঘ্য এটি আগে থেকেই সাজানো হলে. DAVID Malan: গুড. ঠিক আছে, তাই কিছু দৈর্ঘ্যের ফাইন্ডিং যদি মত কিছু যে দৈর্ঘ্য, একটি অ্যারের, কিছু পরিবর্তনশীল মধ্যে সংরক্ষিত হয়. আপনি শুধু পরিবর্তনশীল পড়তে পারেন কারণ বা পরিবর্তনশীল প্রিন্ট, অথবা শুধু সাধারণত যে পরিবর্তনশীল অ্যাক্সেস করুন. ধ্রুবক সময় লাগে এবং voila. বিপরীতভাবে, স্ক্র্যাচ ফিরে মনে করি. C-এর প্রথম সপ্তাহে ফিরে মনে করি, শুধু printf, কলিং এবং মুদ্রণ পর্দায় কিছু তর্কসাপেক্ষ হয় ধ্রুবক সময়, এটা লাগে কারণ দেখানোর জন্য CPU-র চক্র কিছু সংখ্যা পর্দায় যে টেক্সট. অথবা অপেক্ষা করুন - এটা আছে? কিভাবে অন্যথায় আমরা মডেল হতে পারে printf, কর্মক্ষমতা? কেউ অসম্মতি চাই হয়ত এটা সত্যিই ধ্রুবক সময় নয়? Printf, চলমান কি অর্থে সময়, আসলে একটি স্ট্রিং মুদ্রণ পর্দা, কিছু হতে ধ্রুব আর অন্য. শ্রোতা: [শ্রবণাতীত]. DAVID Malan: হ্যাঁ. সুতরাং এটি আমাদের দৃষ্টিকোণ উপর নির্ভর করে. আমরা আসলে আপনি ইনপুট যদি মনে করেন স্ট্রিং হচ্ছে printf,, এবং সুতরাং আমরা যে আকার পরিমাপ দৈর্ঘ্য দ্বারা ইনপুট - তাই এর কল করা যাক সেইসাথে যে দৈর্ঘ্য N - তর্কসাপেক্ষ printf, নিজেই N বড় হে এটি আপনাকে নিম্নলিখিত পদক্ষেপ গ্রহণ করা যাচ্ছে কারণ যারা N প্রতিটি প্রিন্ট আউট সম্ভবত অক্ষর. অন্তত আমরা ধরে নিই যে পরিমাণ হয়ত এটা লুপ জন্য একটি ব্যবহার করে যে ফণা নীচে. কিন্তু আমরা যে তাকান করতে হবে এটা আরও ভাল বুঝতে কোড. এবং প্রকৃতপক্ষে, একবার আপনাকে বলছি শুরু আপনি আপনার নিজস্ব আলগোরিদিম করব বিশ্লেষণ আক্ষরিক ঠিক. অক্ষিগোলকের সাজান আপনার কোড এবং মনে করেন সম্পর্কে - ঠিক আছে, আমি এই লুপ আছে এখানে অথবা আমি, এখানে একটি নেস্টেড loops আছে N N জিনিষ বার করতে যাচ্ছে যে এবং আপনি কারণ আপনার পথ সাজাতে পারেন কোড এর মাধ্যমে, এমনকি যদি এটা pseudocode এবং না প্রকৃত কোড. তাই ছক N এর Omega সম্পর্কে কি? একটি অ্যালগরিদম কী ছিল যে ভাল মধ্যে ক্ষেত্রে এখনও গ্রহণ N ছক ধাপ? হ্যাঁ? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: তাই নির্বাচন সাজানোর. যে সমস্যার মধ্যে সত্যিই কমে কারণ আবার, আমি জানি না যে আমি পর্যন্ত বর্তমান ক্ষুদ্রতম খুঁজে পেয়েছি আমি অভিশাপ উপাদান চেক করেছি. N, বলে, তাই ওমেগা, আমরা মাত্র এক সঙ্গে এসেছিলেন আপ. সন্নিবেশ সাজানোর. তালিকা অনুসারে সাজানো হতে হবে যদি ইতিমধ্যে, শ্রেষ্ঠ ক্ষেত্রে আমরা ঠিক আছে এটি মাধ্যমে এক পাস করা, যা আমরা নিশ্চিত করছি সময়ে. এবং তারপর তিনি বলেন হতে পারে নিশ্চিত করার জন্য, রৈখিক হবে. 1 Omega সম্পর্কে কি? সেরা ক্ষেত্রে, নিতে পারে কি, ধাপের একটি ধ্রুবক নম্বর? সুতরাং রৈখিক অনুসন্ধান, আপনি শুধু পেতে ভাগ্যবান যদি এবং আপনি খুঁজছেন উপাদান তালিকার শুরুতে অধিকার আপনার শুরু করছেন যেখানে যে যদি যে তালিকা রৈখিক ট্র্যাভেরসাল. এবং এই একটি সত্য কিছু সংখ্যা. উদাহরণস্বরূপ, এমনকি বাইনারি খোঁজো 1 ওমেগা হয়. আপনি কি সত্যিই অভিশাপ পেতে কারণ যদি মাঝখানে ভাগ্যবান এবং স্ম্যাক দ্যাট-ডাবের আপনার অ্যারের সংখ্যা আপনি যা খুঁজছেন? তাই আপনি, হিসাবে ভাল আছে ভাগ্যবান পেতে পারেন. এই এক, সর্বশেষে, এন লগ N এর ওমেগা. সুতরাং N লগ N, আমরা সত্যিই না কোনো বিষয়ে কথা বলতে, কিন্তু - শ্রোতা: সাজানোর মার্জ? DAVID Malan: মার্জ সাজানোর. যে, গত সময়ের cliffhanger ছিল আমরা প্রস্তাব, এবং আমরা দেখিয়েছি যেখানে দৃশ্যত, আলগোরিদিম আছে. এবং শুধুমাত্র এক ধরনের সাজানোর একত্রীকরণ মৌলিকভাবে দ্রুত যে অ্যালগরিদম এই অন্যান্য বলছি কিছু আর. আসলে, না শুধুমাত্র ছোট একত্রীকরণ সবচেয়ে খারাপ সেরা ক্ষেত্রে N লগ N, ক্ষেত্রে N লগ N. এবং আপনার এই কাকতালীয় আছে ওমেগা এবং বড় হে একই জিনিস হচ্ছে? আমরা আসলে কি যে বর্ণনা করতে পারেন এটা যদিও, থেটা নামে একটি একটু কম প্রচলিত. কিন্তু যে ঠিক, দুই সীমার মানে এই ক্ষেত্রে, একই. সুতরাং সাজানোর একত্রীকরণ, এই কি আছে আমাদের জন্য সত্যিই ফুটাইয়া কমান? ওয়েল, প্রেরণা প্রত্যাহার. আমাকে আরেকটা অ্যানিমেশন যে টান আপ চলুন শুরু করা যাক আমরা শেষ সময় তাকান না. এই এক, একই ধারণা, কিন্তু আছে এটি একটি সামান্য বড় হয়. এবং আমি এগিয়ে যান এবং বাতলান যাচ্ছি প্রথম - আমরা সন্নিবেশ সাজান আছে উপরের বাম তারপর, নির্বাচন সাজানোর, বুদ্বুদ সাজানোর, অন্যান্য প্রকারের একটি দম্পতি - শেল এবং দ্রুত - আমরা কথা বলত না করা ওপর, এবং গাদা এবং সাজানোর একত্রীকরণ. অন্তত আপনার চোখ ফোকাস করার চেষ্টা তাই বাঁদিকের তিনটি উপরে এবং আমি ক্লিক করা হলে সাজানোর একত্রীকরণ এই সবুজ তীর. কিন্তু আমি ঠিক, তাদের সব চালানো যাক করব আপনি বৈচিত্র্য একটা ধারনা দেবে বিশ্বের যে বিদ্যমান আলগোরিদিম. আমি এই চালানো যাক যাচ্ছি মাত্র কয়েক সেকেন্ডের জন্য. এবং আপনি আপনার চোখ ফোকাস - যদি একটি বাছাই শুধু একটি জন্য এলগরিদম, এটি উপর ফোকাস যাও - আপনি দেখতে শুরু করব এটি প্রয়োগ যে প্যাটার্ন. একত্রীকরণ সাজানোর, নোটিশ, এটা করা হয়. গাদা সাজানোর, দ্রুত সাজানোর, শেল - আমরা তিনটি চালু তাই মনে হয় সবচেয়ে খারাপ আলগোরিদিম গত সপ্তাহে. কিন্তু যে আমরা এখানে আজ যে ভাল একত্রীকরণ সাজানোর তাকান, যা এক সহজ বেশী, এমনকি তাকান হয় এটা সম্ভবত আপনার মন বক্র স্থান হবে, যদিও অল্পমাত্র বিট. এখানে আমরা দেখতে পারেন ঠিক কত নির্বাচন সাজানোর sucks. কিন্তু উল্টানো দিকে, এটা বাস্তবায়ন সত্যিই সহজ. এবং হয়ত পি সেট 3 জন্য, যে এক আপনি বাস্তবায়ন করতে বেছে নেওয়া হয়েছে আলগোরিদিম মানক সংস্করণে জন্য. পুরোপুরি সঠিক, পুরোপুরি সূক্ষ্ম. কিন্তু আবার, এন বড় পায় হিসেবে, যদি আপনি একটি দ্রুত আলগোরিদিম বাস্তবায়ন চয়ন সাজানোর একত্রীকরণ চান, মতভেদ মধ্যে বড় হয় বৃহত্তর ইনপুট, আপনার কোড ঠিক দ্রুত চালানো যাচ্ছে. আপনার ওয়েবসাইট ভাল কাজ করে যাচ্ছে. আপনার ব্যবহারকারীদের সুখী হতে যাচ্ছে. তাই এইসব প্রভাব আছে আসলে দেবার আমাদের কিছু গভীর চিন্তা. তাই এর একত্রীকরণ কি কটাক্ষপাত করা যাক সাজানোর সব বিষয়ে আসলে. শীতল জিনিস একত্রীকরণ হয় সাজানোর শুধু এই. আমরা নামক করেছি, আবার, হয় pseudocode, pseudocode হচ্ছে ইংরেজি মত সিনট্যাক্স. এবং সরলতা হয় চটুল সাজানোর. সুতরাং N উপাদানের ইনপুটের - যাতে শুধু মানে, এখানে একটি অ্যারে. এতে N জিনিষ পেয়েছিলাম. যে আমরা সেখানে বলছে সব. N 2 চেয়ে কম হয়, তাহলে ফিরে. সুতরাং যে শুধু তুচ্ছ ক্ষেত্রে এর. N কম 2 হয়, তাহলে সম্ভবত এটি 1 অথবা 0, যার ক্ষেত্রে জিনিস ইতিমধ্যে সাজানো অথবা নামমাত্র হয়, তাই ঠিক ফিরে. কিছুই করার নেই. সুতরাং যে বন্ধ ছোঁ একটি সহজ ক্ষেত্রে এর. অন্যথায়, আমরা তিনটি ধাপ আছে. উপাদানের বাম অর্ধেক, সাজানোর বাছাই করুন উপাদানের অধিকার অর্ধেক, এবং তারপর সাজানো আংশিক একত্রীকরণ. কি এখানে আকর্ষণীয় যে আমি ডান, punting ধরনের আছি? একটি বৃত্তাকার সংজ্ঞা ধরনের আছে এই অ্যালগরিদম আপনি. এই অ্যালগরিদম এর কি অর্থে সংজ্ঞা বিজ্ঞপ্তি? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: হ্যাঁ, আমার বাছাই আলগোরিদিম, তার ধাপের দুই "বাছাই করা হয় begs যাতে কিছু. "এবং প্রশ্ন, ভাল, আমি কি ব্যবহার করতে যাচ্ছি বাম অর্ধেক বাছাই এবং ডান অর্ধেক? এবং এখানে সৌন্দর্য যে, যদিও আবার, এই মন-নমন হয় অংশ সম্ভাব্য, আপনি একই ব্যবহার করতে পারেন বাম অর্ধেক বাছাই আলগোরিদিম. কিন্তু একটি মিনিট অপেক্ষা করুন. আপনি বাছাই করতে বলা করছেন বাম অর্ধেক, দুটি কি পদক্ষেপ পরবর্তী হতে যাচ্ছে? আমরা বাম অর্ধেক বাছাই করব বাম অর্ধেক এবং ডান বাম অর্ধেক অর্ধেক. অভিশাপ, কিভাবে আমি ঐ দুটি বাছাই না আংশিক বা ত্রৈমাসিক, এখন? কিন্তু যে ঠিক আছে. আমরা এখানে একটি বাছাই আলগোরিদিম আছে. এবং আপনি এ চিন্তা হতে পারে, যদিও প্রথম এই অসীম ধরনের লুপ, এটা না যে এর একটি চক্র এর শেষ যাচ্ছে - এটা যাচ্ছে কি একবার শেষ? একবার N কম 2. যা শেষ পর্যন্ত, ঘটতে যাচ্ছে আপনি রাখা যদি halving এবং কারণ এই আংশিক halving halving মধ্যে নিশ্চয়, অবশেষে আপনি শেষ করতে যাচ্ছেন মাত্র 1 অথবা 0 উপাদানের সঙ্গে আপ. যা বিন্দু, এই অ্যালগরিদম এ আপনার কাজ সম্পন্ন হয় না. তাই এই বাস্তব জাদু অ্যালগরিদম মধ্যে মনে করা হয় যে চূড়ান্ত ধাপে, মার্জ. মাত্র দুই মার্জ যে সহজ ধারণা জিনিষ, যে শেষ পর্যন্ত যাচ্ছে কি আমাদের একটি অ্যারের বাছাই করার অনুমতি দেয়, যাক, আট উপাদান বলে. তাই আমি আট আরও চাপ বল আছে এখানে, আট কাগজ টুকরা, এবং এক গুগল গ্লাস - যা আমি রাখা পান. [হাস্য] DAVID Malan: আমরা আট গ্রহণ করতে পারে যদি স্বেচ্ছাসেবী, এবং এর দেখতে দিন আমরা করতে পারেন যদি সুতরাং, এই খেলা. বাহ, ঠিক আছে. কম্পিউটার বিজ্ঞান মজা হচ্ছে. ঠিক আছে. সুতরাং কিভাবে আপনি তিনটি, সেখানে সবচেয়ে বড় হাত. ফিরে চার. এবং কিভাবে আমরা আপনার করব এই সারি তিনটি? সামনে এবং চার. সুতরাং, আপনি আট উপর আসা. [হাস্য] DAVID Malan: আসলে আমি আছি না কি এটা নিশ্চিত. এটা মানসিক চাপ বল কি? ডেস্ক আলো? উপাদান? ইন্টারনেট? ঠিক আছে. তাই আসা. কে চাই - উত্ক্রান্ত রাখা. এর দেখতে দিন. এবং এই স্থানে আপনি রাখে - আপনি অবস্থান এক করছি. Uh-উহু, একটি মিনিট অপেক্ষা করুন. 1, 2, 3, 4, 5, 6, 7 - ভাল, ওহ. ঠিক আছে, আমরা ভাল. ঠিক আছে, তাই সবাই, একটি আসন আছে কিন্তু গুগল কাচ. আমার সম্পর্কে কিউ এই পর্যন্ত চলুন শুরু করা যাক. আপনার নাম কি? Michelle: মিশেল. DAVID Malan: মিশেল? ঠিক আছে, আপনার মত চেহারা পেতে গুরু, ঠিক আছে যে যদি. ওয়েল, আমি খুব, আমি অনুমান, শুধু একটা মুহূর্ত জন্য. স্ট্যান্ডবাই, ঠিক আছে. আমরা চিন্তা করার চেষ্টা করছি গুগল গ্লাস জন্য কেস ব্যবহার, এবং আমরা এটা শুধু মজা হতে চাই এই মানুষের onstage যখন. আমরা বিশ্বের রেকর্ড করব তাদের দৃষ্টিকোণ থেকে. ঠিক আছে. নেই সম্ভবত কি গুগল উদ্দেশ্যে. যদি আপনি আপত্তি করে না ঠিক আছে, পরা পরবর্তী বিশ্রী মিনিটের জন্য এই, যে বিস্ময়কর হবে. ঠিক আছে, তাই আমরা এখানে একটি অ্যারে আছে উপাদান, এবং প্রতি যে অ্যারের, এই লোকেরা কাগজ টুকরা ' হাত, বর্তমানে unsorted হয়. Michelle: ওহ, যাতে অদ্ভুত. DAVID Malan: এটা অনেক সুন্দর র্যান্ডম না. এবং শুধু একটা মুহূর্ত, আমরা চেষ্টা করছি যাচ্ছে একসঙ্গে সাজানোর একত্রীকরণ বাস্তবায়ন যে কী অন্তর্দৃষ্টি যেখানে এবং দেখুন. এবং একত্রীকরণ সাজানোর সঙ্গে এখানে কৌতুক আমরা এখনো অধিকৃত হয়নি কিছু. আসলে আমরা কিছু করতে হবে অতিরিক্ত স্থান. তাই বিশেষ করে হতে যাচ্ছে এই সম্পর্কে আকর্ষণীয় হয় যে এই ছেলেরা একটু কাছাকাছি স্থানান্তর করতে যাচ্ছি বিট, কারণ আমি অনুমান করা যাচ্ছে যে স্থান একটি অতিরিক্ত অ্যারে আছে, ডান তাদের পিছনে, বলে. তারা তাদের চেয়ার পিছনে করছি, তাই যদি দ্বিতীয় অ্যারের যে. তারা এখানে বসে থাকেন, যে প্রাথমিক অ্যারে. কিন্তু এই যে আমরা একটি সম্পদ বুদবুদ সঙ্গে পর্যন্ত leveraged না সাজানোর, নির্বাচন সাজানোর সঙ্গে, সন্নিবেশ সাজানোর সঙ্গে. গত সপ্তাহে প্রত্যাহার, সবাই ঠিক ধরনের জায়গায় shuffled. তারা কোনো অতিরিক্ত মেমরি ব্যবহার করা হয়নি. আমরা মানুষের জন্য রুম তৈরি চারপাশের মানুষের চলন্ত. তাই এই খুব,, একটি কী অন্তর্দৃষ্টি. এই ট্রেড বন্ধ মধ্যে সাধারণ, কিন্তু আছে সম্পদ কম্পিউটার বিজ্ঞান. আপনি কিছু স্পীড আপ করতে চান তাহলে সময় মত, আপনি চলুন একটি মূল্য দিতে হবে. এবং যারা দাম এক খুব প্রায়ই হয় স্থান, মেমরির পরিমাণ অথবা হার্ড আপনি ব্যবহার করছেন ডিস্ক স্থান. বা, উন্মুক্তভাবে, পরিমাণ প্রোগ্রামার সময়. কত মানুষের, আপনি লাগে সময়, আসলে আরো কিছু বাস্তবায়ন জটিল এলগরিদম. কিন্তু আজকের জন্য, ট্রেড বন্ধ সময় এবং স্থান. আপনাকে বলছি ঠিক রাখা আপ করতে পারে তাই আপনি যদি আপনার তাই আমরা আপনি যে নম্বর দেখতে পারেন প্রকৃতপক্ষে 4, 2, 6, 1, 3, 7, 8 মিলে. চমৎকার. তাই আমি সুষ্ঠুভাবে সমন্বিত চেষ্টা করতে যাচ্ছি জিনিষ, যদি আপনি না করতে পারেন মাত্র এখানে নিলাম আমার নেতৃত্ব অনুসরণ. তাই আমি প্রথম, বাস্তবায়ন করতে যাচ্ছি যা pseudocode প্রথম পদক্ষেপ, N যদি N উপাদানের ইনপুট, উপর 2 তুলনায় কম, তারপর ফিরে. একথাও ঠিক যে, যে না প্রয়োগ করুন, তাই আমরা উপর সরানো. সুতরাং উপাদানের বাম অর্ধেক বাছাই. সুতরাং যে আমি ফোকাস করতে যাচ্ছি মানে আমার এই মাত্র একটি মুহূর্ত জন্য মনোযোগ এখানে চার বলছি. ঠিক আছে, আমি পরের কি করবেন? শ্রোতা: বাম অর্ধেক বাছাই করুন. DAVID Malan: তাই এখন আমি বাছাই করতে হবে এই ছেলেরা বাম অর্ধেক. আবার, কারণ নিজেকে অনুমান লক্ষ্য বাম অর্ধেক বাছাই করা হয়. আপনি কিভাবে করবেন? শুধু এমনকি, নির্দেশাবলী অনুসরণ করুন আমরা আবার এটা করছেন, যদিও. সুতরাং বাম অর্ধেক বাছাই. এখন আমি এই দুই বলছি বাছাই করছি. পরে কি আসে? শ্রোতা: বাম অর্ধেক বাছাই করুন. DAVID Malan: বাম অর্ধেক বাছাই করুন. তাই এখন এই, এখানে এই সীট, আকার 1 একটি তালিকা রয়েছে. এবং আপনার নাম কি আবার? Princess DAISY: রাজকুমারী ডেজি. DAVID Malan: রাজকুমারী ডেজি এখানে. এবং তাই তিনি আগে থেকেই সাজানো কারণ তালিকার আকার 1 হয়. আমি কি করব? যে তালিকা কারণ ঠিক আছে, ফিরে 2 চেয়ে কম হয়, যা আকার 1. তারপর পরবর্তী পদক্ষেপ কি? আর এখন আপনি ধরনের আছে আপনার মনে পরিত্যাগ করা. যা ডান অর্ধেক, বাছাই - আপনার নাম কি? LINDA: লিন্ডা. DAVID Malan: লিন্ডা. এবং তাই আমরা এখন যে কি করবেন আমরা আকার 1 একটি তালিকা আছে? শ্রোতা: ফিরে. DAVID Malan: সাবধান হন. আমরা প্রথম ফিরে, এবং এখন তৃতীয় ধাপ - এবং আমি যদি কোন ধরনের দ্বারা এটি বর্ণা আমি এখন, এখন দুই আসন আলিঙ্গন এই দুটি উপাদান একত্রীকরণ আছে. তাই এখন দুর্ভাগ্যবশত, উপাদান যাতে সীমার বাইরে. কিন্তু যে যেখানে মার্জ প্রক্রিয়া আকর্ষক পেতে আরম্ভ করা হয়. আপনি না শুধুমাত্র জন্য দাঁড়ানো পারে তাই আপনি যদি একটি মুহূর্ত, আমি, আপনি প্রয়োজন যাচ্ছি মুহূর্ত, আপনার চেয়ার পিছনে পইঠা. এবং যদি লিন্ডা, 2 কারণ 4 চেয়ে ছোট, কেন করবেন না আপনাকে প্রথমে কাছাকাছি আসা? সেখানে থাকার. লিন্ডা সুতরাং, আপনি প্রথমে কাছাকাছি আসা. এখন বাস্তবে এটি শুধু একটি অ্যারের যদি আমরা শুধু বাস্তব সময়ে তার সরাতে পারে এই চেয়ার থেকে এই স্পট. তাই কিছু ধ্রুবক গ্রহণ কল্পনা ধাপ 1 এর সংখ্যা. আর এখন - কিন্তু আমরা আপনাকে রাখা প্রয়োজন এখানে প্রথমে অবস্থান. আর এখন আপনি, কাছাকাছি আসতে পারে যদি পাশাপাশি, আমরা চলুন পাঁচ দুটি হতে. এবং এটা ভালো লেগেছে এই মতানুযায়ী, যদিও যখন গ্রহণ করা হয় এখন চমৎকার কি যে বাম অর্ধেক বাম অর্ধেক এখন সাজানো হয়. এখন আমরা তাই আপনি যদি পরবর্তী ধাপে, কি ছিল গল্প আরও গুটিয়ে? শ্রোতা: রাইট অর্ধেক. DAVID Malan: ডান অর্ধেক বাছাই করুন. তাই আপনাকে বলছি, হিসাবে ভাল করতে হবে. আপনি দাঁড়ানো পারে তাই আপনি যদি শুধু একটা মুহূর্ত জন্য? এবং আপনার নাম কি? Jess: জেস. DAVID Malan: জেস. ঠিক আছে, তাই জেস এখন বাম হয় ডান অর্ধেক অর্ধেক. এবং তাই সে আকার 1 একটি তালিকা. তিনি সম্ভবত সাজানো হচ্ছে. এবং যদি আপনার নাম আবার? Michelle: মিশেল. DAVID Malan: মিশেল সম্ভবত হয় আকার 1 একটি তালিকা. তিনি ইতিমধ্যে অনুসারে সাজানো হচ্ছে. তাই এখন জাদু, ঘটবে মার্জ প্রক্রিয়া. সুতরাং যারা প্রথম আসা যাচ্ছে? একথাও ঠিক যে Michelle. আপনি ফিরে কাছাকাছি আসতে পারে তাই আপনি যদি. এখন আমরা তার জন্য উপলব্ধ স্থান এখানে ডান এই চেয়ার পিছনে. আর এখন, আপনি ভাল হিসাবে ফিরে আসতে পারে, যদি আমরা এখন দুই, স্পষ্ট করা আছে, আংশিক, আয়তন 2 প্রতিটি - এবং শুধু চিত্রাঙ্কন দোহাই জন্য, যদি আপনি একটি স্পেস সামান্য বিট করতে পারে - এক, এক অর্ধেক এখানে বামে এখানে ডান অর্ধেক. গল্প আরও গুটিয়ে. কি পদক্ষেপ পরবর্তী? শ্রোতা: মার্জ. DAVID Malan: তাই এখন আমরা একত্রীকরণ আছে. তাই ঠিক আছে, তাই এখন, সৌভাগ্যক্রমে, আমরা মাত্র চার চেয়ার্স ম্যাচে লড়াই করেন আপ মুক্ত. তাই আমরা অনেক মেমরি দুবার ব্যবহার করা হয়, কিন্তু করেছি আমরা উল্টানো-flopping মধ্যে দিতে পারে দুই অ্যারে. যা তাই সংখ্যা প্রথম আসা হয়? তাই অবশ্যই, Michelle. তাই কাছাকাছি আসা এবং গ্রহণ এখানে আপনার সীট. এবং তারপর সংখ্যা 2 সম্ভবত হয় এর পরে, তাই আপনি এখানে আসা. সংখ্যা 4, সংখ্যা 6. এবং আবার, একটি আছে, যদিও জড়িত হাঁটা সামান্য বিট, সত্যিই, এই সঙ্গে সঙ্গে ঘটতে পারে - এক চলন্ত দ্বারা ঠিক আছে, ভাল খেলেছে. [হাস্য] DAVID Malan: এবং এখন আমরা প্রশংসনীয় ভাল আকৃতির. সমগ্র বাম অর্ধেক ইনপুট এখন সাজানো হয়েছে. ঠিক আছে, তাই এই ছেলেরা ছিল আমার সুবিধা হল - কিভাবে এটা সব মেয়েদের শেষ পর্যন্ত হয়নি বাম এবং ডান সব ছেলেদের? ঠিক আছে, তাই বলছি এখন ঘুরিয়ে '. তাই আমি মাধ্যমে আপনি পদব্রজে ভ্রমণ করা হবে না ধাপগুলি. আমরা পুনরায় আবেদন করতে পারেন যদি আমরা দেখতে পাবেন একই pseudocode. আপনি এগিয়ে যান এবং, স্ট্যান্ড আপ করতে চান তাহলে এবং আপনাকে বলছি, আমাকে আপনি মাইক দিতে. আপনি প্রতিলিপি নির্মাণ না করা হলে দেখুন কি আমরা শুধু এখানে করেনি তালিকার অন্য প্রান্তে. কে প্রথম কথা বলার প্রয়োজন আলগোরিদিম উপর ভিত্তি করে? সুতরাং আপনি আগে কি করছেন ব্যাখ্যা যদি আপনার কোন পাদদেশ আন্দোলন করতে. স্পিকার 1: ঠিক আছে, তাই দেখাও আমি বাম অর্ধেক am বাম অর্ধেক, আমি ফিরে. রাইট? DAVID Malan: গুড. এবং তারপর -: স্পিকার 1 DAVID Malan: যারা মাইক পরবর্তী যেতে? স্পিকার 1: পরবর্তী সংখ্যা. স্পিকার 2: তাই আমি ডান অর্ধেক আছি বাম অর্ধেক বাম অর্ধেক, এবং আমি ফিরে. DAVID Malan: গুড. প্রত্যাবর্তন করতে পারবেন. তাই এখন আপনি দুটি পরবর্তী আপ কি? স্পিকার 2: আমরা ছোট যারা দেখতে চান. DAVID Malan: যথাযথভাবে. আমরা একত্রীকরণ করতে চান. আমরা একত্রীকরণ ব্যবহার চলুন স্থান আপনি তারা, যদিও মধ্যে সম্ভবত ইতিমধ্যেই সাজানো, আমরা চলুন একই এলগরিদম অনুসরণ. সুতরাং যারা ফিরে প্রথম যায়? 3 সুতরাং, এবং তারপর 7. এবং এখন মাইক যায় এই ছেলেরা যাও, ঠিক আছে? স্পিকার 3: তাই আমি ডান অর্ধেক আছি বাম অর্ধেক, এবং আমার স্কুল কম হয় 1, তাই আমি ঠিক পাস করতে যাচ্ছি - DAVID Malan: গুড. স্পিকার 4: আমি ডান অর্ধেক আছি ডান ডান অর্ধেক অর্ধেক, এবং আমি এক ব্যক্তি, আমি তাই ফিরে যাচ্ছে. তাই এখন আমরা একত্রীকরণ. স্পিকার 3: সুতরাং আমরা ফিরে যান. DAVID Malan: তাই আপনি ফিরে যেতে. তাই 5 তারপর 8, প্রথম যায়. যা আর এখন শ্রোতা, আমরা এখন গুটিয়ে আছে পইঠা আমাদের হৃদয় ও মন ফিরে? শ্রোতা: মার্জ. DAVID Malan: মার্জ বাম অর্ধেক এবং ডান মূল বাম অর্ধেক অর্ধেক. তাই এখন - এবং ঠিক এই পরিষ্কার করতে স্থান সামান্য বিট করতে তোমাদের মধ্যে দুটি বলছি. তাই এখন দুই তালিকায় যে, বাম এবং ডান. তাই কিভাবে আমরা এখন আপনাকে বলছি মধ্যে একত্রীকরণ না আসন সামনের সারিতে আবার? 3 প্রথম যায়. তারপর 5, সম্ভবত. তারপর 7, ও এখন 8. ঠিক আছে, এবং এখন আমরা কি? শ্রোতা: কাজ নেই. DAVID Malan: কাজ নেই, কারণ সম্ভবত, অবশিষ্ট এক ধাপ আছে. কিন্তু আবার, কারণ আমি এই ব্যবহার করছি "আপনার মন আবার গুটিয়ে," মত অপভাষা যে সত্যিই কারণ এটি কি ঘটছে. আমরা, এই পদক্ষেপগুলি সব দিয়ে যাচ্ছেন কিন্তু আমাদের জন্য pausing বাছাই করছি মধ্যে মুহূর্ত, ডাইভিং গভীর অ্যালগরিদম, একটি মুহূর্ত জন্য pausing, অ্যালগরিদম মধ্যে গভীর ডাইভিং, এবং এখন আমরা আমাদের মধ্যে আবার গুটিয়ে বাছাই করতে হবে হৃদয় ও মন এবং এই তিনটি স্তরের সব পূর্বাবস্থা আমরা সাজানোর হোল্ড উপর করা করেছি. তাই এখন আমরা আকার 4 দুটি তালিকা আছে. আপনাকে বলছি এক শেষ সময় দাঁড়ানো পারে যদি এবং এখানে একটি স্থান বিট করতে এই বাম যে স্পষ্ট করতে মূল, অর্ধেক মূল ডান অর্ধেক. যারা প্রথম সংখ্যা যে আমরা ফিরে টান প্রয়োজন? অবশ্যই মিশেল. তাই আমরা এখানে মিশেল রাখা. এবং যারা সংখ্যা 2 আছে? সংখ্যা 2 ফিরে হিসেবে আসে. সংখ্যা 3? চমৎকার. সংখ্যা 4, সংখ্যা 5, সংখ্যা 6, সংখ্যা 7, সংখ্যা 8. ঠিক আছে, তাই এটি একটি অনেক মত অনুভূত ধাপ, নিশ্চিত করার জন্য. কিন্তু এখন আমরা নিশ্চিত করতে না পারেন, এর দেখতে দিন সাজানোর intuitively যে এই মৌলিকভাবে আলগোরিদিম, বিশেষত হিসাবে N আমরা দেখা করেছি, সত্যিই বড় পায় অ্যানিমেশন সঙ্গে হল, মৌলিকভাবে দ্রুত. তাই আমি খারাপ, এই অ্যালগরিদম দাবি সেরা ক্ষেত্রে ক্ষেত্রে এমনকি, N বার লগ N বড় হে. যে, এই কিছু দিক আছে N পদক্ষেপ গ্রহণ করে, কিন্তু যে অ্যালগরিদম আরেকটি দিক কোথাও আছে যে পুনরাবৃত্তির যে looping, যে লগ N পদক্ষেপ গ্রহণ করে. আমরা কি যারা আমাদের আঙুল লাগাতে পারেন দুটি সংখ্যার উল্লেখ করা হয়? ওয়েল, যেখানে - মাইক যেতে where'd? স্পিকার: 1 N লগ ইন হতে হবে দুই মধ্যে আমাদের আপ ভঙ্গ - মূলত, দুই ভাগ. DAVID Malan: যথাযথভাবে. আমরা এইভাবে কোনো অ্যালগরিদম মধ্যে দেখতে যে কোনো সময় অনেক দূরে, এই প্যাটার্ন আছে হয়েছে , বিভাজক বিভাজক, বিভাজক. এবং এটা সাধারণত কমে এর কিছু যে আপনি লগারিদমিক, লগ বেস 2. কিন্তু এটা সত্যিই কিছু হতে পারে কিন্তু বেস 2 লগ ইন করুন. এখনই N সম্পর্কে কি? আমি মনে করি আমরা ধরনের আপনি বিভক্ত দেখতে পারেন বলছি - আপনি বিভক্ত, আপনি বিভক্ত আপনি বিভক্ত, আপনি বিভক্ত. শেষ কোথা থেকে এসেছে? সুতরাং এটি মার্জ না. এটা সম্পর্কে, কারণ মনে হয়. আপনি একসাথে আট জনের একত্রীকরণ, যখন তাদের অর্ধেক চার একটি সেট আছে যদ্দ্বারা এবং অন্যান্য অর্ধেক অন্য হয় চার সেট, আপনি কিভাবে যান মার্জ করছেন? ওয়েল, আপনাকে বলছি তা মোটামুটি intuitively. আমি পরিবর্তে তা কিন্তু যদি একটু বেশি ধারাক্রমে, আমি এ তীক্ষ্ন হতে পারে আমার বাম সঙ্গে প্রথম leftmost ব্যক্তি হাত, leftmost ব্যক্তি এ তীক্ষ্ন যে আমার ডান হাত দিয়ে অর্ধেক, এবং শুধু পরবর্তীকালে মাধ্যমে walked ক্ষুদ্রতম উপাদান নির্দেশ তালিকা প্রতিটি সময় আমার আঙ্গুলের উপর এবং মর্মস্পর্শী ওভার হিসাবে তালিকা সর্বত্র প্রয়োজন. কিন্তু কি এই মার্জ ওপর কী প্রসেসের এই জোড়া তুলনা করছি না উপাদান. ডান অর্ধেক থেকে এবং বাম দিক থেকে অর্ধেক, আমি একবার backtracking না করছি. সুতরাং একত্রীকরণ নিজেই নিচ্ছে কোন পদক্ষেপ N তুলনায়. এবং কিভাবে অনেক বার আমি আছে মার্জ যে কি? ওয়েল, N চেয়ে বেশি না, এবং আমরা ঠিক চূড়ান্ত একত্রীকরণ সঙ্গে দেখেছি যে. এবং যাতে আপনি লাগে যে কিছু করতে হলে , এন পদক্ষেপ N বার, অথবা উলটোটা লগ ইন এটা আমাদের N বার লগ N দিতে যাচ্ছে. এবং কেন এই ভাল? ভাল, আমরা ইতিমধ্যেই লগ না N উল্লেখ্য বেশী ভালো - ঠিক আছে? আমরা বাইনারি অনুসন্ধান ফোন বই দেখেছি উদাহরণস্বরূপ, লগ N স্পষ্টভাবে ছিল রৈখিক বেশী ভালো. মানে N বার লগ N হয় যাতে অন্য N বার চেয়ে স্পষ্টভাবে ভাল N, ওরফে N ছক. এবং যে আমরা শেষ পর্যন্ত মনে আছে. সাধুবাদ এত বড় বৃত্তাকার, যদি আমরা এইসব বলছি জন্য, হতে পারে. [সাধুবাদ] DAVID Malan: এবং আপনার বিভাজিকা উপহার - আপনি, সংখ্যা রাখতে পারে আপনি যদি চান. এবং আপনার বিভাজিকা উপহার, স্বাভাবিক হিসাবে. ওহ, এবং আমরা আপনাকে পাঠাতে হবে ফুটেজ, মিশেল. আপনাকে ধন্যবাদ. ঠিক আছে. একটি চাপ বল নিজেই নিজেকে সাহায্য করতে. এবং, আমাকে ইতিমধ্যে, টান আপ করা যাক অফার আমাদের বন্ধু রব Bowden এই কিছুটা ভিন্ন দৃষ্টিকোণ, আপনি এই চিন্তা করতে পারেন একটি কিছুটা ঘটছে পদক্ষেপ অন্যভাবে. ওপর রব কি জন্য আসলে, সেট আপ আমাদের দেখানোর জন্য আমরা করেছি যে অনুমান ইতিমধ্যে বিভাজক পর্যন্ত সম্পন্ন আটটি ছোট তালিকার মধ্যে বড় তালিকা আকার 1 প্রতিটি. সুতরাং আমরা pseudocode একটি পরিবর্তন করছি সামান্য বিট শুধু পেতে ধরণের কাজ মার্জ কিভাবে মূল ধারণা. কিন্তু কি চলমান সময় কি বিষয়ে তিনি এখনও একই হতে যাচ্ছে. এবং আবার, এখানে সেট আপ সে যে আকার 1 আট তালিকার সঙ্গে শুরু. তাই আপনি যদি তিনি যেখানে অংশ মিস করেছি আসলে লগ N, লগ N, লগ N সম্পন্ন ইনপুট বিভাজক. [ভিডিও প্লেব্যাক] ধাপ এক জন্য এটি যে. বারবার পদক্ষেপ দুই, জন্য তালিকা জোড়া একত্রীকরণ. DAVID Malan: হুঁ. শুধু অডিও আসছে আমার কম্পিউটারের বাইরে. এর আবার এই চেষ্টা করা যাক. -শুধু ইচ্ছামত যা বাছাই - এখন আমরা চার তালিকায় আছে. আগে জানুন. DAVID Malan: সেখানে আমরা যেতে. -মার্জ 108 এবং 15, আমরা শেষ আপ সঙ্গে তালিকায় 15, 108. আমরা, 50 এবং 4 মার্জ 4, 50 দিয়ে শেষ. আমরা, 8 এবং 42 মার্জ 8, 42 সঙ্গে শেষ. এবং আমরা, 23 এবং 16 মার্জ 16 সঙ্গে 23 শেষ পর্যন্ত. এখন সব আমাদের তালিকা আকার 2 হয়. লক্ষ্য করুন যে, প্রতিটি চার তালিকা অনুসারে বাছাই করা হয়. সুতরাং আমরা মার্জ শুরু করতে পারেন আবার তালিকায় জোড়া. আমরা, 15 এবং 108 এবং 4 এবং 50 মার্জ প্রথমে, তারপর তারপর 15, 4 নিতে 50 তারপর, 108. 23 8, 42 এবং 16 মার্জ, আমরা প্রথম গ্রহণ 8, তারপর 16, তারপর 23, তারপর 42. তাই এখন আমরা আকার মাত্র দুই তালিকায় আছে 4, সাজানো হয় প্রতিটি যা. তাই এখন আমরা এই দুই তালিকা একত্রীকরণ. প্রথমত, আমরা 4 নিতে, তারপর আমরা গ্রহণ 8 তারপর, আমরা, তারপর 16, তারপর 15 নিতে তারপর তারপর 23, 42, 50, 108. [END টি ভিডিও প্লেব্যাক] DAVID Malan: আবার, বিজ্ঞপ্তি, তিনি কখনও একটি প্রদত্ত কাপ একাধিক সময় অক্ষত এটি অতিক্রম আগুয়ান পরে. তাই তিনি পুনরায় কখনো ছিল না. তাই তিনি সবসময় পাশ থেকে চলন্ত এর আমরা আমাদের N পেয়েছিলাম যেখানে এবং যে. কেন আমার এক অ্যানিমেশন টান আপ না দেওয়া আমরা আগে দেখেছি, কিন্তু যে এই সময় একত্রীকরণ সাজানোর শুধুমাত্র মনোযোগ নিবদ্ধ করে. আমাকে এগিয়ে যান এবং জুম চলুন শুরু করা যাক এখানে এই উপর. প্রথম আমাকে একটা র্যান্ডম ইনপুট চয়ন করা যাক, এই বড় করে দেখুন, এবং আপনি দেখুন বাছাই করতে পারেন আমরা, মঞ্জুর, তার পূর্বেকার জন্য গ্রহণ কি একত্রীকরণ সাজানোর আসলে করছে. আপনি বা এই আংশিক পেতে যাতে বিজ্ঞপ্তি এই আবাস বা এই eighths সমস্যা হল যে একটি আকস্মিক সব ভাল আকৃতি নিতে শুরু. এবং পরিশেষে, তাহলে আপনি এ দেখুন খুব শেষ যে Bam, সবকিছু একসঙ্গে মিশে গিয়ে তৈরি হয়. সুতরাং এই মাত্র তিনটি ভিন্ন একই ধারণা নেভিগেশন লাগে. কিন্তু ঠিক মত ডিভাইড কী অন্তর্দৃষ্টি, এবং প্রথম শ্রেণীতে বশীভূত একরকম আমরা ভাগ করার সিদ্ধান্ত ছিল যে মধ্যে বড় কিছু, মধ্যে সমস্যা আত্মা অভিন্ন কিছু সাজানোর, কিন্তু ছোট এবং ছোট ছোট এবং ছোট. মনে হয় এর বাছাই এখন অন্য মজা উপায় এই বিষয়ে, যদিও এটি না আপনি একই স্বজ্ঞাত দিতে যাচ্ছে বুঝতে হয়, নিম্নলিখিত অ্যানিমেশন. তাই এই একত্রে একটি ভিডিও কেউ বিভিন্ন যুক্ত বিভিন্ন অপারেশন সঙ্গে শব্দসমূহ সন্নিবেশ সাজানোর, একত্রীকরণ সাজানোর জন্য, এবং অন্যদের একটি দম্পতি জন্য. সুতরাং একটি মুহূর্ত, আমি চালাও আঘাত করতে যাচ্ছি. এটা দীর্ঘ প্রায় এক মিনিট সময় আছে. এবং আপনি এখনও দেখতে পারেন, যদিও নিদর্শন, আপনি যা করতে পারেন এই সময় ঘটছে এই আলগোরিদিম কিভাবে এছাড়াও শুনতে ভিন্নভাবে এবং সম্পাদন কিছুটা বিভিন্ন নিদর্শন. এই সন্নিবেশ ধরণের. [টোন বাজানো] DAVID Malan: এটা আবার চেষ্টা করছে প্রতিটি উপাদান সন্নিবেশ এটি জন্যে যেখানে মধ্যে. এই বুদ্বুদ ধরণের. [টোন বাজানো] DAVID Malan: এবং আপনি মনে করেন বাছাই করতে পারেন তুলনামূলকভাবে সামান্য এটা করছেন কিভাবে কাজ করে প্রতিটি ধাপে. এই tediousness মত শোনাচ্ছে কি. [টোন বাজানো] DAVID Malan: এই নির্বাচন সাজানোর, আমরা আমরা চাই উপাদান নির্বাচন করুন যেখানে আবার ভিতর দিয়ে যাচ্ছে এবং আবার এবং আবার এবং শুরুতে এটি নির্বাণ. [টোন বাজানো] DAVID Malan: এই একত্রীকরণ ধরণের, যা আপনি কি সত্যিই মনে করা শুরু করতে পারেন. [টোন বাজানো] [হাস্য] DAVID Malan: জিনোম কিছু বলা আমরা দিকে তাকিয়ে না যা সাজানোর. [টোন বাজানো] DAVID Malan: সুতরাং, এখন, আমাকে দেখতে দিন আপনি আশা দ্বারা হয় বিভ্রান্ত আমি একটু স্লিপ করতে পারেন যদি সঙ্গীত, এখানে গণিত বিট. যাতে আমরা করতে পারেন একটি চতুর্থ উপায় আছে এই এর মানে কি তা নিয়ে চিন্তা দ্রুত বেশী হতে ফাংশন আমরা আগে দেখা করেছি. এবং আপনার কাছ থেকে অবশ্যই এ আসছে করছি একটি গণিত পটভূমি, আপনি আসলে ইতিমধ্যে সম্ভবত জানেন যে আপনি এই পদ্ধতির উপর একটি শব্দ চড় করতে পারেন - যথা recursion, একটি ফাংশন যে একরকম নিজেই কল. এবং আবার, যে একত্রীকরণ সাজানোর প্রত্যাহার pseudocode অর্থে recursive ছিল যে একত্রীকরণ সাজানোর এর কর্ম সাজানোর কল ছিল - , যে নিজেই. কিন্তু সৌভাগ্যক্রমে, কারণ আমরা রাখা , সাজানোর আহ্বান জানিয়ে, অথবা সাজানোর একত্রীকরণ নির্দিষ্টভাবে, একটি ছোট এবং ছোট এবং ছোট তালিকা, আমরা শেষ পর্যন্ত আমরা ডাকবো কি খুঁজে ঠেকার ধন্যবাদ একটি বেস কেস, হার্ড কোড ক্ষেত্রে যে তালিকা ছোট হয়, তাহলে কম 2 বলেন, যে ক্ষেত্রে, ঠিক অবিলম্বে ফিরে. আমরা যে বিশেষ কেস আছে না করে থাকেন, অ্যালগরিদম নীচে আউট, হবে এবং আপনি সত্যিই একটি ঢোকা হবে সত্যিই সব সময় অসীম লুপ. কিন্তু আমরা এখন লাগাতে চেয়েছিল অনুমান এই কিছু সংখ্যা, আবার, n ব্যবহার ইনপুট মাপ হিসাবে. আর আমি কি, আপনি জিজ্ঞাসা করতে চেয়েছিলেন জড়িত মোট সময় একত্রীকরণ ধরণের চলমান? অথবা আরো সাধারণভাবে, কি সময়ের মধ্যে তা খরচ? এটি ভাল যে পরিমাপ বেশ সহজ. N কম 2 হয়, তাহলে সময় জড়িত N উপাদান বাছাই মধ্যে, N 2, যেখানে 0. আমরা শুধু ফিরে কারণ. কাজ করতে হবে কোন কাজ নেই. এখন তর্কসাপেক্ষ, হয়তো এটা এক ধাপ বা দুই পরিমাণ জিনিসটা পদক্ষেপ কাজ, কিন্তু এটা 0 পাসে যথেষ্ট আমি কোন কাজ বলতে যাচ্ছি তালিকা এত ছোট যদি প্রয়োজন নীরস করা যাবে না. কিন্তু এই ক্ষেত্রে আকর্ষণীয়. recursive ক্ষেত্রে শাখা ছিল অন্য যে বলেন pseudocode, সাজানোর বাম অর্ধেক, ডান বাছাই অর্ধেক, দুটি আংশিক একত্রীকরণ. এখন কেন এই অভিব্যক্তি আছে যে ব্যয় প্রতিনিধিত্ব করছে? ওয়েল, N এর টি মাত্র মানে N উপাদান বাছাই করার সময়. এবং তারপর ডান দিকে সেখানে সাইন সমান, এন এর টি বিভক্ত 2 কি খরচ উল্লেখ করা হয়? বাম অর্ধেক বাছাই. 2 দ্বারা বিভক্ত N অন্যান্য রয়ে হয় সম্ভবতঃ আপনি খরচ উল্লেখ ডান অর্ধেক বাছাই. এবং তারপর প্লাস N? মার্জ করা হয়. কারণ আপনি দুই তালিকা, এক থাকে তাহলে আকার 2 ওভার N এবং অন্য আকারের N 2 ওভার, আপনি মূলত স্পর্শ আছে শুধু রব মত যারা উপাদান প্রতিটি, কাপ প্রতিটি স্পর্শ, এবং মাত্র আমরা প্রতিটি তীক্ষ্ন হিসাবে মঞ্চে স্বেচ্ছাসেবকদের. সুতরাং N মার্জ ব্যয় হয়. এখন দুর্ভাগ্যবশত,, এই সূত্র নিজেই recursive হয়. N যদি তাই আপনি যদি,, বলার, প্রশ্ন জিজ্ঞাসা 16, ব্লক মঞ্চে 16 জনের আছে বা ভিডিও 16 কাপ, কতগুলি মোট পদক্ষেপ এটা তাদের বাছাই করতে সময় লাগবে একত্রীকরণ সাজানোর সঙ্গে? এটি আসলে একটি সুস্পষ্ট উত্তর না এখন আপনি বাছাই করতে হবে, কারণ recursively এই সূত্র উত্তর. আমার সম্পর্কে উত্থাপন করা যাক, কারণ কিন্তু যে ঠিক আছে, আমরা নিচের যে কি. 16 জনের সাজাতে বা জড়িত সময় 16 কাপ প্রতিনিধিত্ব করা যাচ্ছে না সাধারণত 16 টি হিসাবে. কিন্তু যে অনুযায়ী সমান আমাদের পূর্ববর্তী সূত্র, 2 বার পরিমাণ সময় এটি বাছাই লাগে 8 কাপ প্লাস 16. এবং আবার, প্লাস 16, একত্রীকরণ সময় এবং 8 এর দুই বার টি হল বাম অর্ধেক এবং ডান অর্ধেক বাছাই করার সময়. কিন্তু আবার, এই যথেষ্ট নয়. আমরা গভীর ঝাঁপিয়ে আছে. আমরা উত্তর আছে মানে প্রশ্ন, 8 টি কি? ওয়েল 8 টি ঠিক হল 2 4 প্লাস 8 বার টি. ওয়েল, 4 টি কি? 4 টি 2 প্লাস 4 মাত্র 2 টি বার হয়. ওয়েল, 2 টি কি? 2 টি 1 প্লাস 2 মাত্র 2 টি বার হয়. এবং আবার, আমরা পেয়ে দয়ালু এই চক্রের মধ্যে আটকে. কিন্তু এটি সম্পর্কে আঘাত যে বেস ক্ষেত্রে তথাকথিত. 1 টি কি কারণ, আমরা দাবি করেছেন? 0. তাই এখন পরিশেষে, আমরা পিছন দিকে কাজ করতে পারেন. 1 টি 0 হলে, আমি এখন পর্যন্ত এক ফিরে যেতে পারেন এখানে এই লোক লাইন, এবং আমি যা করতে পারেন 1 টি জন্য 0 মধ্যে প্লাগ. তাই এর মানে হল যে এটা, 2 বার শূন্য সমান অন্যথায় 0, প্লাস 2 হিসাবে পরিচিত. তাই যে সমগ্র প্রকাশের 2. আমি যার উত্তর 2 টি নিতে এখনই যদি 2, মাঝখানে লাইন, টি সেটিকে চলা 4 যে, সম্পর্কে 2 বার দেয় 2 প্লাস 4, 8, তাই. আমি তখন পূর্ববর্তী 8 চলা যদি লাইন, যে সম্পর্কে 2 বার 8, 16 দেয়. এবং তারপর আমরা যে অবিরত যদি 24, 16, যোগ অবশেষে আমরা একটি পেতে 64 এর মান. এখন ও নিজেই ধরণের কথা বলে যে N স্বরলিপি কিছুই, বড় হে, আমরা করেছি যে ওমেগা সম্পর্কে কথা বলা হয়েছে. কিন্তু এটা 64, প্রকৃতপক্ষে যে সক্রিয় আউট 16, ইনপুট মাপ, 16 বেস 2 লগ ইন করুন. এবং এই, একটু অপরিচিত যদি ঠিক ফিরে মনে হয়, এবং এটি ফিরে আসবো আপনি শেষ পর্যন্ত. এই লগ বেস 2 হয়, তাহলে এটি 2 মত আপনি কি 16 দেয় উত্থাপিত? ওহ, যে 4 এর, তাই এটা 16 বার 4 এর. এবং আবার, এটি একটি বড় চুক্তি না এই যদি একটি অস্পষ্ট মেমরি সাজানোর এখন হয়. কিন্তু এখন জন্য, বিশ্বাসের উপর নিতে 16 লগ 16 64 যে. তাই প্রকৃতপক্ষে, এই সহজ বৈধতা সঙ্গে চেক, আমরা নিশ্চিত করেছি - কিন্তু আনুষ্ঠানিকভাবে প্রমাণিত না - যে একত্রীকরণ চলমান সময় সাজানোর সত্যিই N উল্লেখ্য লগ ইন করুন. তাই খারাপ না. এটা চেয়ে স্পষ্টভাবে ভাল আমরা দূর পর্যন্ত দেখা যায়, এবং করেছি আলগোরিদিম আমরা leveraged করেছি কারণ, এক recursion নামক একটি কৌশল. যে, যে তুলনায় কিন্তু আরও বেশি আকর্ষণীয় বিভাজক এবং অতিক্রমকারী ধারণা. আবার, সত্যিই সপ্তাহে 0 স্টাফ যে এমনকি এখন একটি মধ্যে হচ্ছিল না আরও আকর্ষক উপায়. এখন একটি মজার সামান্য ব্যায়াম, আপনি থাকেন তাহলে এই কাজ না - এবং আপনি সম্ভবত হবে না, কারণ স্বাভাবিক সাজানোর মানুষ এই কাজ করতে মনে করি না. কিন্তু আমি google.com এ এবং যদি যান আমি কিছু শিখতে চাই recursion লিখুন. [হাস্য] [আরও হাস্য] DAVID Malan: খারাপ তামাশা ধীরে ধীরে ছড়িয়ে. [হাস্য] DAVID Malan: শুধু ক্ষেত্রে, এটা আছে. আমি ভুল বানান নি, এবং রসিকতা আছে. ঠিক আছে. আপনি পাশে তা ব্যাখ্যা করা হলে এটা পুরোপুরি ঠিক কোনো ক্লিক না. কিন্তু recursion, আরো সাধারণভাবে, বোঝায় কলিং একটি ফাংশন এর প্রক্রিয়া নিজেই, বা আরো সাধারণভাবে, একটি বিভাজক হতে পারে যে কিছু ভাগ সমস্যা অভিন্ন সমাধান দ্বারা টুকরা টুকরা করিয়া সমাধান প্রতিনিধি সমস্যা. ভাল, যাক এর পরিবর্তন গিয়ার্স শুধু একটা মুহূর্ত জন্য. আমরা কিছু cliffhangers নেভিগেশন শেষ করতে চাই তাই সেট শুরু পর্যায়, কয়েক মিনিটের জন্য, একটি খুব সহজ ধারণা - দুটি উপাদান সোয়াপিং যে, ডান? এই সব আলগোরিদিম আমরা চলেছি গত কয়েক বিষয়ে কথা বলছি বক্তৃতা কিছু জড়িত সোয়াপিং সাজানোর. আজ তাদের বুঝিয়ে ভিসুয়ালাইজ্ড ছিল আপ তাদের চেয়ার আউট এবং হাঁটা কাছাকাছি, কিন্তু কোড, আমরা চাই শুধু একটা অ্যারে থেকে একটি উপাদান গ্রহণ এবং অন্য মধ্যে plop এটি. আমরা এই করছেন সুতরাং কিভাবে যেতে হয়? আচ্ছা, আমাকে এগিয়ে যান এবং লিখুন যাক এখানে একটি দ্রুত প্রোগ্রাম. আমি এগিয়ে যান এবং করতে যাচ্ছি এই নিম্নলিখিত. চলুন শুরু করা যাক এই কল - আমরা এই এক কল কি করতে চান? আসলে, কোন. আমার সম্পর্কে গুটিয়ে চলুন শুরু করা যাক. আমি যে কাজ করতে চান না কোনো cliffhanger. এটা মজা নষ্ট হবে. পরিবর্তে এই কাজ করা যাক. আমি একটু লিখতে চান যে ধরুন প্রোগ্রাম এবং যে এখন এই embraces recursion ধারণা. আমি ধরনের আছে এগিয়ে নিজের পেয়েছিলাম. আমি নিম্নলিখিত কাজ করতে যাচ্ছি. প্রথমত, একটি দ্রুত, মান io.h এর অন্তর্ভুক্ত cs50.h. হিসাবে পাশাপাশি একটি মধ্যে এবং তারপর আমি এগিয়ে যান যাচ্ছে না এবং int প্রধান অকার্যকর ঘোষণা স্বাভাবিক ভাবেই. আমি ফাইল misnamed করেছি উপলব্ধি, তাই আমাকে শুধু এখানে তাই. C এক্সটেনশন যোগ দিন আমরা ঠিকমতো কম্পাইল করতে পারেন. এই ফাংশন বন্ধ করতে শুরু করুন. এবং ফাংশন আমি বেশ, লিখতে চান সহজভাবে, জানতে চেয়ে এক তারপর একটি সংখ্যা জন্য ব্যবহারকারীর নাম ও যোগ যে সব সংখ্যার মধ্যে সংখ্যা এবং,, বলতে 0. সুতরাং প্রথম আমি এগিয়ে যেতে চলেছি এবং int-N ডিক্লেয়ার. তারপর আমি কিছু কোড কপি করে যে আমরা কিছুদিনের জন্য ব্যবহার করেছি. কিছু সত্য হয়. আমি একটি মুহূর্ত যে ফিরে আসবো. আমি কি করতে চান? আমি printf, ইতিবাচক বলতে চাই পূর্ণসংখ্যা দয়া করে. এবং তারপর আমি যাচ্ছি N int-পেতে পায় বলে. তাই আবার, কিছু boilerplate কোড আমরা আগে ব্যবহার করেছি যে. এবং আমি এই কাজ করতে যাচ্ছি N কম 1 হয়. তাই এই নিশ্চিত করবে যে ব্যবহারকারী আমার সম্পর্কে একটি ইতিবাচক পূর্ণসংখ্যা দেয়. এবং এখন আমি নিম্নোক্ত কাজ করতে যাচ্ছি. আমি সংখ্যার সমস্ত পর্যন্ত যোগ করতে চান N, অথবা 0 এবং 1 এর মধ্যে N এবং, equivalently, মোট সমষ্টি পেতে. এত বড় সিগমা প্রতীক আপনি পুনরাহ্বান হতে পারে. তাই আমি প্রথমে কল করে এই কাজ করতে যাচ্ছি সিগমা নামক একটি ফাংশন, N তা ক্ষণস্থায়ী, এবং তারপর আমি যাচ্ছি printf, বলে, উত্তর অধিকার আছে. তাই সংক্ষেপে, আমি পেতে ব্যবহারকারী থেকে int. আমি এটা ইতিবাচক এর নিশ্চিত. আমি একটি পরিবর্তনশীল নামক উত্তর ঘোষণা এটি টাইপ int-এ এবং দোকান রিটার্ন ইনপুট হিসেবে N কথা প্রসঙ্গে সিগমা মান. এবং তারপর আমি যে উত্তর প্রিন্ট আউট. দুর্ভাগ্যবশত, সিগমা শোনাচ্ছে যদিও হতে পারে যে কিছু চাই math.h ফাইল, তার ঘোষণা, এটা আসলে না. সুতরাং যে ঠিক আছে. আমি এটি নিজে বাস্তবায়ন করতে পারে. আমি নামক একটি ফাংশন বাস্তবায়ন করা যাচ্ছে না সিগমা, এবং এটি একটি নিতে যাচ্ছে পরামিতি - এর যাক এটা মি কল, শুধু তাই এটা আলাদা. এবং তারপর এখানে, আমি বলতে যাচ্ছি M 1 এর চেয়ে কম হলে ভাল, - এই হল একটি খুব প্রোগ্রাম নীরস. তাই আমি এগিয়ে যান যাচ্ছে এবং করছি অবিলম্বে 0 ফিরে. এটা ঠিক সমস্ত পর্যন্ত যোগ অর্থে দেখা যায় না 1 এবং M M যদি এর মধ্যে নম্বর নিজেই 0 বা নেগেটিভ. এবং তারপর আমি এগিয়ে যান যাচ্ছে না এবং খুব iteratively এই কাজ. আমি পুরানো স্কুল এই সাজানোর কাজ করতে যাচ্ছি এবং আমি এগিয়ে যান যাচ্ছে না এবং আমি করতে যাচ্ছি বলে যে 0 হতে একটি সমষ্টি ডিক্লেয়ার. তারপর আমি যাচ্ছি int-লুপ জন্য একটি - এবং আমাকে এটা আমাদের মেলে না দেওয়া ডিস্ট্রিবিউশন কোড, তাই আপনি একটি কপি আছে বাড়ীতে. int-আমি উপর 1 পায় আমি কম বা মিটার সমান. আমি প্লাস প্লাস. এবং তারপর ভিতরে লুপ জন্য এই - আমরা প্রায় নেই করছি - সমষ্টি সমষ্টি প্লাস 1 পায়. এবং তারপর আমি সমষ্টি ফিরে যাচ্ছি. তাই আমি দ্রুত, এই কি বেশ বোঝা যাচ্ছে. কিন্তু আবার, প্রধান ফাংশন প্রশংসনীয় এর আমরা করেছি কোডের উপর ভিত্তি করে, সহজবোধ্য এ পর্যন্ত হবে. একটি ইতিবাচক পেতে দ্বৈত লুপ ব্যবহার করে ব্যবহারকারী থেকে int. আমি তখন একটি নতুন ফাংশন যে int-এ পাস N, আবার, এটি আহ্বান জানিয়ে, সিগমা বলা হয়. এবং আমি ফিরতি মূল্য, উত্তর সংরক্ষণ বর্তমানে কালো বাক্স থেকে একটি পরিবর্তনশীল, সিগমা হিসাবে পরিচিত উত্তর বলা হয়. তারপর আমি এটা মুদ্রণ. এখন আমরা গল্প চালিয়ে যেতে চান, সিগমা কিভাবে বাস্তবায়িত হয়? আমি নিম্নরূপ বাস্তবায়ন উত্থাপন করা. ত্রুটি পরীক্ষণ প্রথমত, একটি সামান্য বিট ব্যবহারকারী না নিশ্চিত যে আপনি আমার সঙ্গে সেনাবিভাগে মেসে খাবার ও ক্ষণস্থায়ী কিছু নেতিবাচক বা 0 মান. তারপর আমি নামে একটি ভেরিয়েবল ডিক্লেয়ার যোগফল এবং এটি 0 সেট. এবং এখন আমি সমান থেকে সরানো শুরু 1 সমস্ত উপায় আপ এবং মি সহ আমি সব অন্তর্ভুক্ত করতে চান, কারণ M মাধ্যমে এক থেকে নম্বর, সমেত. এবং ভেতরের লুপ জন্য এই, আমি ঠিক সমষ্টি এটা এখন যাই হোক না কেন পায়, প্লাস আমি মান. আমি প্লাস মান. একটি সরাইয়া হিসাবে, আপনি এই দেখা যায় না করেছি আগে, কিছু অন্বিত চিনি আছে এই লাইন জন্য. উপরন্তু আমি সমান হিসাবে আমি, এই পুনর্লিখন করতে পারেন শুধু নিজেকে কয়েক keystrokes সংরক্ষণ এবং একটি বিট শীতল চেহারা. কিন্তু যে সব. এটা বৈশিষ্ট্যগুলি একই জিনিস. দুর্ভাগ্যবশত, এই কোড এর এখনও সঙ্কলন করা যাচ্ছে না. আমি কিভাবে সিগমা 0, না চালানোর আমি এ yelled পেতে যাচ্ছে? কি এটা পছন্দ না যাচ্ছে? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: হ্যাঁ, আমি ঘোষণা করা হয়নি উপরে, ডান? আপ ফাংশন সি, ধরনের মূঢ় এটা শুধুমাত্র যে আপনি এটা করতে বলবেন কি আছে, এবং আপনি যাতে এটা করতে হবে. আমি এখানে আঘাত লিখুন এবং যদি তাই হয়, আমি যাচ্ছি সিগমা সম্পর্কে একটি সতর্কবার্তা অন্তর্নিহিত পেতে ঘোষণা. ওহ, না একটা সমস্যা. আমি উপরে পর্যন্ত যেতে পারেন, এবং আমি যা করতে পারেন ঠিক আছে, বলে, এক মিনিট অপেক্ষা করুন. সিগমা ফেরৎ যে একটি ফাংশন কোন int এবং এটি একটি প্রত্যাশা ইনপুট, সেমিকোলন হিসাবে int-এ. অথবা আমি সমগ্র ফাংশন করা যায়নি প্রধান উপরে, তবে সাধারণভাবে, আমি চাই এটা, কারণ যে বিরুদ্ধে সুপারিশ সর্বদা শীর্ষে তাই প্রধান আছে চমৎকার আপনি ডান ঝাঁপিয়ে পড়ে জানতে পারি কি প্রোগ্রাম প্রথম প্রধান পড়া করছে. তাই এখন আমার পর্দা পরিষ্কার করা. পুনর্নির্মাণ সিগমা 0. সমস্ত চেক আউট বলে মনে হয়. আমার সম্পর্কে সিগমা 0 চালানো যাক. ইতিবাচক আন্তঃ. আমি এটা সংখ্যা দেব 3 এটা সহজ রাখা. সুতরাং যে আমার 3 দিতে হবে প্লাস 2 প্লাস 1, তাই 6. লিখুন, এবং প্রকৃতপক্ষে আমি 6 পেতে. আমি বড় কিছু করতে পারেন - 50, 12, 75. শুধু একটি স্পর্শক, আমি কাজ করতে যাচ্ছি সত্যিই একটি বড় মত হাস্যকর কিছু নম্বর, ওহ, আসলে কাজ যে - অঁ্যা, আমি ঠিক মনে করি না. এর দেখতে দিন. এর সত্যিই এটি সঙ্গে বিশৃঙ্খল চলুন শুরু করা যাক. যে একটি সমস্যা. কি হচ্ছে? কোড যে খারাপ না. এটা এখনও রৈখিক না. Whistling যদিও,, একটি ভাল প্রভাব. কি হচ্ছে? আমি এটা শুনে যদি নিশ্চিত না. সুতরাং দেখা যাচ্ছে - এবং এই একটি সরাইয়া হিসেবে. এই কোর না recursion ধারণা. আমি চেষ্টা করছি, কারণ এটি সক্রিয় আউট অধিকাংশ যেমন একটি বড় সংখ্যা প্রতিনিধিত্ব সম্ভবত এটি misinterpreted হচ্ছে একটি ইতিবাচক না সংখ্যা C দ্বারা, কিন্তু ঋণাত্মক সংখ্যা. আমরা এই বিষয়ে কথা বলত না, কিন্তু করেন নি এটা ঋণাত্মক সংখ্যা আছে সক্রিয় আউট ছাড়াও বিশ্বের ধনাত্মক সংখ্যা. এবং আপনি যা করতে পারেন যার দ্বারা একটি নেতিবাচক সংখ্যা প্রতিনিধিত্ব মূলত, আপনি একটি ব্যবহার করা হয় নির্দেশ করার জন্য বিশেষ বিট নেতিবাচক ওভার ইতিবাচক. এটা যে একটু বেশী জটিল এর কিন্তু যে মৌলিক ধারণা. তাই দুর্ভাগ্যবশত, সি এক বিভ্রান্তিকর হলে আসলে যার অর্থ হিসাবে যারা বিট, ওহ, এই একটি ঋণাত্মক সংখ্যা, আমার লুপ এখানে উদাহরণস্বরূপ, আসলে না হয় খতম করা যাচ্ছে. আসলে আমি কিছু প্রিন্ট করা হয়েছে তাই আপনি যদি আবার এবং আবার, আমরা চাই পুরো অনেক দেখতে. কিন্তু আবার, এই পয়েন্ট ছাড়াও হয়. এই সত্যিই শুধু একটি সাজানোর আমরা আসবো যে মেধা কৌতূহল অবশেষে ফিরে. কিন্তু এখন জন্য, এই হল একটি সঠিক বাস্তবায়ন আমরা অনুমান যে যদি ব্যবহারকারী ints প্রদান করবে যে ints মধ্যে ফিট. কিন্তু আমি যে এই কোড, উন্মুক্তভাবে দাবি আরও অনেক কিছু সহজভাবে সম্পন্ন করা যেতে পারে. হাতের লক্ষ্য একটি নম্বর নিতে হয় তাহলে মত মিটার এবং সব আপ যোগ করুন এটি 1, বা বিপরীতক্রমে মধ্যে সংখ্যা 1 এর মধ্যে এবং এটি, আমি দাবি আমি একত্রীকরণ যে এই ধারণা ধার করতে পারেন সাজানোর একটি সমস্যা নেন, যা ছিল এই মাপ এবং এটা বিভাজক এর ছোট কিছু ভাগ. হয়তো অর্ধেক, কিন্তু ছোট, কিন্তু না representatively একই. একই ধারণা, কিন্তু একটি ছোট সমস্যা. তাই আমি আসলে করছি - আমার এই ফাইলটি সংরক্ষণ করতে দিন একটি ভিন্ন সংস্করণ সংখ্যা সঙ্গে. আমরা এই সংস্করণের ডাকবো 1 এর পরিবর্তে 0. এবং আমি যে আমি আসলে করতে পারেন দাবি এই সাজানোর এই reimplement মন নমন উপায়. আমি একা এটা অংশ ছেড়ে যাচ্ছি. M কম হয় তাহলে আমি বলতে যাচ্ছি আর বা 0 এমনকি সমান - আমি শুধু একটি সামান্য হতে যাচ্ছি আরো পায়ূ এই সময় - আমার ত্রুটি পরীক্ষা সঙ্গে আমি এগিয়ে যান এবং 0 ফিরে যাচ্ছি. এই হয় নির্বিচারে. আমি শুধু শুধু মীমাংসাকারী করছি, তাহলে ব্যবহারকারী আমাকে একটি ঋণাত্মক সংখ্যা দেয়, আমি 0 ফিরে, এবং তারা পড়া উচিত ডকুমেন্টেশন আরো ঘনিষ্ঠভাবে. অন্য - আমি কাজ করতে যাচ্ছি তা লক্ষ্য করা. অন্যথায় আমি মি প্লাস ফিরে যাচ্ছি - মি সিগমা কি? ওয়েল, M M প্লাস মাইনাস 1 সিগমা, প্লাস M বিয়োগ 2, প্লাস M বিয়োগ 3. আমি যে সব লিখতে চাই না. আমি কেন punt ঠিক না? Recursively সামান্য সঙ্গে নিজেকে কল ছোট সমস্যা, সেমিকোলন, এবং এটি একটি দিন কল? রাইট? এখন এখানে খুব,, আপনি মনে বা চিন্তা হতে পারে এই আমি যে একটি অসীম লুপ যে আমি রূপায়ণকারী করছি যদ্দ্বারা inducing, কলিং সিগমা সিগমা দ্বারা. কিন্তু যে কারণ, পুরোপুরি ঠিক আছে আমি একটি লাইন, যা এখনো যোগ করেনি এগিয়ে চিন্তা? শ্রোতা: [শ্রবণাতীত]. DAVID Malan: 23 থেকে 26, যা আমার যদি অবস্থা হয়. সম্পর্কে চমৎকার কি কারণ এখানে বিয়োগ, আমি রাখা কারণ হস্তান্তর সিগমা ছোট সমস্যা, ছোট সমস্যা, ছোট - এটা না অর্ধেক মাপ. এটা ছোট শুধুমাত্র একটি শিশুর পদক্ষেপ কিন্তু যে ঠিক আছে. অবশেষে, আমরা কাজ করব কারণ নিচে 1 অথবা 0 আমাদের উপায়. এবং একবার আমরা 0 আঘাত, সিগমা না আর নিজেই কল করতে যাচ্ছে. তা অবিলম্বে 0 ফিরে যাচ্ছে. সুতরাং প্রভাব, বাতাসে আপনি সাজানোর এই যদি আপনার মন, M প্লাস যোগ হয় M বিয়োগ 1, প্লাস M বিয়োগ 2, প্লাস M বিয়োগ 3, প্লাস বিন্দু, বিন্দু, বিন্দু, M বিয়োগ মি, অবশেষে আপনি 0, দান এবং প্রভাব সব যোগ পরিণামে হয় একসঙ্গে এই জিনিস. সুতরাং আমরা recursion সঙ্গে, না আছে সমস্যার সমাধান যে আমরা আগে সমাধান করতে পারে নি. প্রকৃতপক্ষে, এই সংস্করণে 0, এবং প্রতি ডেট সমস্যা, solvable হয়েছে শুধু loops জন্য ব্যবহার করে অথবা যখন loops বা একই রকমের নির্মান. কিন্তু recursion, আমি daresay, আমাদের দেয় চিন্তা অন্যভাবে সমস্যা, আমরা একটি নিতে পারেন যদ্দ্বারা যদি সমস্যা, কিছু থেকে এটা ভাগ কিছুটা কিছু মধ্যে কিছুটা বড় ছোট, আমি মনে করি আমরা তা সমাধান করতে পারে যে দাবি সম্ভবত একটু বেশি এইরূপ সূচারূভাবে পদ নকশা, কম কোডটা দিয়ে, এবং এমনকি যে সেই সমস্যার সমাধান আমরা অবশেষে পাবেন, কঠিন হতে বিশুদ্ধরূপে iteratively সমাধান, দেখুন. আমি কিন্তু cliffhanger আমাদের উপর ছেড়ে দিতে চান এই ছিল. আমাকে এগিয়ে যান এবং খুলুন থেকে ফাইল আপ - আসলে, আমাকে যেতে দিন এবং এই বাস্তব দ্রুত করতে. আমাকে এগিয়ে যান এবং উত্থাপন করা যাক নিম্নলিখিত. আজকের কোড মধ্যে এই ফাইলটি এখানে. এখানে এই এক, noswap. তাই এই যে একটি মূঢ় সামান্য প্রোগ্রাম আমি দাবি করতে যে বেত্রাঘাত নিম্নলিখিত. প্রধান ইন, এটি প্রথমে একটি ঘোষণা int-x এর বলা হয় এবং এটি ধার্য করা হয় 1 এর মান. তারপর এটি কোন int Y ঘোষণা করে এবং এটা মান 2 নির্ধারণ করা হয়. তারপর, এটা x এবং y কি ছাপে. তারপর এটা, বিন্দু বিন্দু বিন্দু সোয়াপিং, নেই. তারপর এটি একটি ফাংশন আহ্বান করা দাবি x এর মধ্যে ক্ষণস্থায়ী এবং swap 'বলা যে আশা, হয় ধারণা যা y, ও x এবং y ফিরে আসবে ভিন্ন, বিপরীত. তারপর, এটা আনা দাবি! কোন বিস্ময়বোধক বিন্দু সঙ্গে. তারপর, এটা x এবং y আউট ছাপে. কিন্তু দেখা যাচ্ছে যে এই অত্যন্ত নিচে সহজ বিক্ষোভের এখানে আসলে বগী. আমি একটি অস্থায়ী ঘোষণা করছি, যদিও পরিবর্তনশীল এবং অস্থায়ীভাবে একটি নির্বাণ তাহলে, আমি পুনরায় করছি বো একটি মান - আমি করেছি, যা যুক্তিসঙ্গত মতানুযায়ী temp একটি একটি কপি সংরক্ষিত. তারপর আমি সমান যাও বো আপডেট temp মধ্যে যাই হোক না কেন ছিল. একটি চলন্ত শেল খেলার এই সাজানোর এই ব্যবহার করে একটি মধ্যে মধ্যে খ এবং খ মধ্যবিত্ত মানুষের temp মতানুযায়ী বলা পুরোপুরি যুক্তিসঙ্গত. আমি এই রান যখন কিন্তু আমি যে দাবি কোড, এখন আমি কি করব হিসেবে - আমাকে এগিয়ে যান এবং এটা এখানে পেস্ট করে দিন. আমি এই noswap.c ডাকবো. নাম প্রস্তাব দেওয়া হয় এবং এই নয় একটি সঠিক প্রোগ্রাম হতে যাচ্ছে. Noswap করুন. / কোন swap '. এক্স 1, y, ও 2 সোয়াপিং, আনা. এক্স 1, Y 2. এই, এমনকি মৌলিকভাবে ভুল এই পুরোপুরি মনে হচ্ছে, যদিও আমার যুক্তিসঙ্গত. এবং সেখানে একটি কারণ হল, কিন্তু আমরা পারব না এখনও কারণ প্রকাশ করা যাচ্ছে. আমি চেয়েছি দ্বিতীয় cliffhanger এখন জন্য সঙ্গে আপনি ছেড়ে একটি, এই হল কুপন কোড নেভিগেশন বিশৃঙ্খলভাবে ঘোষণার. দেরী দিন আমাদের উদ্ভাবনের এই বছর একটি অ তুচ্ছ সংখ্যা কুপিত হয়েছে প্রশ্ন, যা ছিল আমাদের উদ্দেশ্য. এই কুপন কোড অভিপ্রায়, যেখানে আপনি সমস্যার অংশ না যার ফলে, একটি অতিরিক্ত দিন পেয়ে প্রথম দিকে সেট আপনাকে বলছি সহায়তা সত্যিই ছিল নিজেকে তাড়াতাড়ি, বাছাই শুরু আপনি incentivizing দ্বারা. আমাদের সারা লোড বিতরণ সাহায্য অফিসে ঘন্টা ভাল যাতে এটি জয় ধরণের. দুর্ভাগ্যবশত, আমি আমার নির্দেশাবলী মনে তাই, তারিখ, খুব স্পষ্ট, হয়েছে না আমি এই সপ্তাহান্তে ফিরে যান এবং আপডেট আপনি বড়, সাহসী লেখা বৈশিষ্ট এই মত বুলেট ব্যাখ্যা. এবং ঠিক করে, আরও প্রকাশ্যে এটা বলে Default, সমস্যা সেট বৃহস্পতিবার কারণে দুপুরে, পাঠ্যক্রম প্রতি. আপনি অংশ সমাপ্তি, তাড়াতাড়ি শুরু করেন 12:00 বুধবার দ্বারা সেট করা সমস্যা PM তে পোস্ট করা, একটি কুপন সাথে সম্পর্কিত যে অংশ কোড, ধারণা আপনি প্রসারিত করতে পারেন আপনার সর্বশেষ সময়সীমাঃ পি শুক্রবার পর্যন্ত সেট. যে বিট পি একটি ক্ষুদ্র অংশ বন্ধ, হল সাধারণত কি আপেক্ষিক সেট বড় সমস্যা, এবং আপনি কিনতে নিজেকে একটি অতিরিক্ত দিন. আবার, এটা সম্পর্কে চিন্তা আপনাকে পায় সমস্যা সেট, আপনি পায় অফিসে ঘন্টা শুভস্য. কিন্তু কুপন কোড সমস্যা এখনও আপনি কি এটিকে জমা না, এমনকি যদি প্রয়োজন. কিন্তু আরো compellingly এটি হয়. (স্বগতোক্তি) এবং যারা ভাবেন যাব প্রথম দিকে এটা দু: খ প্রকাশ করত হয়. হিসাবে বারান্দার লোকেরা আছে. নেভিগেশন ভাবেন অগ্রিম আমি ক্ষমাপ্রার্থী হবে যে কারণে বারান্দা শুধু একটা মুহূর্ত স্পষ্ট. তাই আমরা এক আছে সৌভাগ্যবান হয় এ CS50 এর সাবেক প্রধান শিক্ষণ ফেলোগণ dropbox.com নামক একটি কোম্পানি. তারা খুব generously একটি দান করা হয়েছে এই অনেক স্থান জন্য এখানে কুপন কোড, থেকে যা হয় স্বাভাবিক 2 গিগাবাইট. তাই আমি চিন্তা কি আমরা এই কাজ করতে হবে চূড়ান্ত নোট, একটি giveaway একটি বিট করতে হয় শুধু একটা মুহূর্ত, আমরা প্রকাশ করা হবে যদ্দ্বারা বিজয়ী এবং যারা একটি কুপন আছে তারপর আপনি তাদের যেতে পারেন যে কোড ওয়েবসাইট, তা টাইপ করুন, এবং voila, একটি পেতে আপনার জন্য পুরো অনেক বেশি ড্রপবক্স স্থান প্রয়োগ এবং আপনার ব্যক্তিগত ফাইল. এবং প্রথমে, যারা অংশগ্রহণ করতে চান এই অঙ্কন মধ্যে? ঠিক আছে, এখন যে এটি এমনকি আরও মজার করে তোলে. এই 25 গিগাবাইট প্রাপ্ত ব্যক্তি কুপন কোড - এ পর্যন্ত যা দেরী চেয়ে বেশি আকর্ষক এখন, সম্ভবত দিন - একটি উপরে উপবিষ্ট হয় এক সেখানে যা অধ সীট কুশন যে কুপন কোড. আপনি এখন নীচে হতে পারে আপনার সীট কুশন. [ভিডিও প্লেব্যাক] এক, দুই, তিন. [চিত্কার] -আপনি একটি গাড়ী পেতে! আপনি একটি গাড়ী পেতে! DAVID Malan: আমরা দেখতে পাবেন বুধবার আপনাকে. -আপনি একটি গাড়ী পেতে! আপনি একটি গাড়ী পেতে! আপনি একটি গাড়ী পেতে! আপনি একটি গাড়ী পেতে! আপনি একটি গাড়ী পেতে! DAVID Malan: অলিন্দ ভাবেন, আসা নিচে এখানে সামনে, আমরা অতিরিক্ত যেখানে. -সকলে একটি গাড়ী পায়! সকলে একটি গাড়ী পায়! [END টি ভিডিও প্লেব্যাক] কথক: পরের CS50 এ - স্পিকার 5: ভগবন্ ভগবন্ ভগবন্ ভগবন্ ওহ ভগবন্ ভগবন্ ভগবন্ ভগবন্ ভগবন্ ভগবন্ - [UKELELE নাটকগুলি]