[সঙ্গীত বাজাচ্ছি] Andi Peng: ধারার সপ্তাহে 3 স্বাগতম. সব আসার জন্য ধন্যবাদ, আপনাকে বলছি, এই আগে শুরুর সময় আজ. আমরা একটি সুন্দর, একটু পেয়েছেন ঘনিষ্ঠ গ্রুপ আজ. তাই আশা করছি আমরা কিনবো ফিনিস, সম্ভবত, তাড়াতাড়ি, একটি সামান্য বিট তাড়াতাড়ি আজ. তাই দ্রুত, শুধু কিছু এজেন্ডা আজকের জন্য ঘোষণা. আমরা শুরু করার আগে, আমরা করছি শুধু ওভার যেতে যাচ্ছে কিছু সংক্ষিপ্ত যৌক্তিক বিষয়, pset প্রশ্ন, জিজ্ঞাসাবাদ, যে ভালো জিনিস. এবং তারপর আমরা সঠিক আকর্ষণীয় করব. আমরা, GDB নামক একটি ডিবাগার ব্যবহার করব আমাদের কোড, debunking শুরু যা ডেভিড অন্যান্য দিনের বক্তৃতায় ব্যাখ্যা. আমরা প্রকারের চার প্রকারের উপর যাবেন. আমরা বেশ দ্রুত তাদের উপর যাবেন তারা চমত্কার নিবিড় যেহেতু. কিন্তু জানেন যে সব স্লাইড এবং সোর্স কোড অনলাইন সবসময়. তাই করতে, আপনার পড়ন এ, বিনা দ্বিধায় ফিরে যান এবং যে কটাক্ষপাত. আমরা দিয়ে যাবেন asymptotic স্বরলিপি, যা শুধু একটি অভিনব উপায় বলার অপেক্ষা রাখে না "রানটাইম," আমরা বড় হে, আছে যেখানে যা ডেভিড বক্তৃতায় ব্যাখ্যা. আর আমরা উদাহরণ ওমেগা, আছে যা কম আবদ্ধ রানটাইম. আর আমরা কিছুটা আলোচনা করব ইন গভীরতার কিভাবে ঐ কাজের বিষয়ে. এবং সর্বশেষে, আমরা বাইনারি অনুসন্ধান উপর যাবেন কারণ ইতিমধ্যে আছে যারা আপনাকে অনেক আপনার psets এ glanced সম্ভবত জানি যে যে আপনার pset মধ্যে যে একটি প্রশ্ন. তাই আপনি সব খুশি হবেন আমরা এই আজ আবরণ যে. এবং সর্বশেষে, প্রতি আপনার অধ্যায় মতামত, আমি আসলে প্রায় 15 মিনিট সময় বাকি শেষ পর্যন্ত ঠিক পুনরালোচনা pset3 এর সরবরাহ, কোন প্রশ্ন, হয়তো নির্দেশিকা একটি বিট, যদি আপনি হবে, আমরা প্রোগ্রামিং শুরু করার আগে. সুতরাং আসুন মাধ্যমে পেতে চেষ্টা করা যাক প্রশংসনীয় দ্রুত উপাদান. এবং তারপর আমরা কিছু সময় ব্যয় করতে পারেন pset জন্য আরো প্রশ্ন করার. ঠিক আছে. তাড়াতাড়ি, যাতে মাত্র কয়েক আমরা আগে ঘোষণা আজ শুরু. প্রথমত, উপার্জন করতে স্বাগত জানাই আপনার psets দুটি মাধ্যমে এটা. আমি your-- হ্যা, যাক এর কটাক্ষপাত গ্রহণ যে কেউ জন্য সাধুবাদ একটি বৃত্তাকার পেতে. বাস্তবিক, আমি সত্যিই ছিল সত্যিই আমি অভিভূত. আমি আপনাকে বলছি জন্য প্রথম pset graded গত সপ্তাহে এবং আপনাকে বলছি অবিশ্বাস্য করেনি. স্টাইল পয়েন্ট ছিল কিছু মন্তব্য রয়েছে. নিশ্চিত করুন যে আপনি সবসময় করছি করুন আপনার কোড মন্তব্য. কিন্তু আপনার psets বিন্দুতে ছিল. এবং এটা বজায় রাখা. আর এটা করতে শ্রেণির জন্য ভাল আপনাকে বলছি নির্বাপণ করা হয় যে দেখতে আপনার শৈলী মধ্যে যতটা প্রচেষ্টা আপনার কোড মধ্যে এবং আপনার নকশা আপনি দেখতে জন্য আমরা চাই যে. তাই আমি আমার কৃতজ্ঞতা বরাবর পার করছি Tas পর্যালোচনা সারা. তবে আছে একটি কয়েক জিজ্ঞাসাবাদ প্রশ্ন আমি শুধু যে উপর যেতে চান উভয় আমার জীবনের করতে হবে এবং অন্যান্য অনেক Tas পর্যালোচনা 'একটু সহজ বসবাস. প্রথমতঃ, আমি খেয়াল করেছি এই অতীতে আপনাকে কতগুলি সপ্তাহে প্রথম check50 চলমান হয়েছে আপনি আগে আপনার কোড জমা? ঠিক আছে. তাই সবাই check50 কাজ করা উচিত, আসলে আমরা একটি secret-- কারণ হয় আমাদের শুদ্ধতা অংশ হিসেবে check50 চালানো আপনার কোড পরীক্ষামূলক জন্য স্ক্রিপ্ট. আপনার কোড ব্যর্থ হয় তাহলে তাই check50, সব সম্ভাবনা, এটি সম্ভবত যাচ্ছে পাশাপাশি আমাদের চেক ব্যর্থ. কখনও কখনও আপনাকে বলছি সঠিক উত্তর আছে. এর মতো, লোভী, কিছু আপনি সঠিক সংখ্যা আছে, আপনি শুধু কিছু অতিরিক্ত জিনিস প্রিন্ট আউট. এবং যে অতিরিক্ত স্টাফ আসলে চেক ব্যর্থ, কম্পিউটার না কারণ সত্যিই এটা খুঁজছেন তা জানা. আর তাই এটি শুধু, মাধ্যমে চালানো হবে আপনার আউটপুট না দেখতে আমরা উত্তর আশা কি মেলে হতে পারে, এবং এটা ভুল চিহ্নিত করার. এবং আমি যে কি জানেন আপনার ক্ষেত্রে কিছু এই সপ্তাহে. তাই আমি ফিরে এবং নিজে গিয়েছিলাম সকলের কোড regraded. যদিও ভবিষ্যতে, , নিশ্চিত করুন যে দয়া আপনি চালাচ্ছেন যে আপনার কোড 50 বার. এটা টিএ জন্য ব্যাথা ধরনের কারণ regrade নিজে ফিরে যান এবং এটি আছে ভাষার জন্য প্রতিটি pset একক, একটু মিস উদাহরণস্বরূপ. তাই আমি কোনো পয়েন্ট বন্ধ করা হয়নি. আমি হয়তো গ্রহণ বন্ধ মনে এক বা নকশা জন্য দুটি. যদিও ভবিষ্যতে, যদি আপনি, check50 ব্যর্থ করছি পয়েন্ট নিয়ে যাওয়া হবে শুদ্ধি জন্য বন্ধ. উপরন্তু, psets হয় দুপুরে শুক্রবার কারণে. আমি সাত মিনিটের আছে মনে হয় আমরা আপনাকে দিতে যে দেরী অন্তর্বর্তী সময়কাল. হার্ভার্ড সময় প্রতি, তাদের অনুমতি দেয়া হয় সাত মিনিট দেরী সবকিছু করতে হবে. সুতরাং এখানে ইয়েল, আমরা করব পাশাপাশি যে মেনে চলে. কিন্তু অনেক সুন্দর, 12:07 এ, আপনার pset মধ্যে নয়, তাহলে এটা হিসাবে দেরী চিহ্নিত করা যাচ্ছে. যখন তাই এটি চিহ্নিত করা হয় হিসাবে দেরী, TA-- আমি আছি এখনও আপনার psets শূন্য করা যাচ্ছে. তাই আপনি এখনও একটি গ্রেড প্রদর্শিত দেখতে পাবেন. তবে এ জানি যে সেমিস্টারে শেষে, সব দেরী psets শুধু হবে স্বয়ংক্রিয়ভাবে কম্পিউটার দ্বারা zeroed. আমরা দুটি কারণে এই কাজ. এক, কখনও কখনও আমরা পেতে ডিন এর অজুহাত মত, মাফ, পরে যে আমি এখনো সম্পর্কে জানি না. তাই আমরা যদি আমরা শূন্য করছেন তা নিশ্চিত করার জন্য চাই ধরো সবকিছু মত, আমি আছি একটি ডিন এর অজুহাত অনুপস্থিত. আর দ্বিতীয়ত, এ রাখতে মন, আপনি এখনও করতে পারেন এক pset ড্রপ যে পূর্ণ সুযোগ পয়েন্ট আছে. আর তাই আমরা গ্রেড করতে চান আপনার Psets সব ঠিক আপনার সুযোগ এর নিশ্চিত যে সেখানে এবং আপনি তাদের চেষ্টা করছেন. এটা দেরি হয়ে গেছে তাই, এমনকি যদি আপনি এখনও হবে সুযোগ পয়েন্ট জন্য ক্রেডিট পান, আমি মনে করি. গল্প তাই নৈতিক, না নিশ্চিত আপনার psets সময়ের হয়. আর তারা সময়ের না হলে, খুব ভালো না জানি. হ্যা, আমি এগিয়ে যেতে, কেউ আছে pset মতামত সংক্রান্ত কোন প্রশ্ন? হ্যা. শ্রোতা: আপনি আমরা বলতে চেয়েছেন psets এক ড্রপ করতে পারেন? Andi Peng: হ্যা. সুতরাং নয়টি psets সার্বিক আছে সেমিস্টারে অবশ্যই বেশী. আর আপনি সুযোগ আছে points-- তাই সুযোগ, শুধু হয় অনেক সুন্দর, আপনি করার চেষ্টা করছেন সমস্যা নেই, আপনি, সময় নির্বাণ হয় যদি আপনি করেছি যে দেখানো হয় প্রদর্শিত আপনি বৈশিষ্ট পড়েছি. যে অনেক সুন্দর সুযোগ আছে. আর আপনি পূরণে যদি সুযোগ পয়েন্ট, আমরা সর্বনিম্ন ড্রপ করতে পারেন পূর্ণ সুযোগ নিয়ে বাইরে এক. সুতরাং যে আপনার সুবিধা আছে সম্পূর্ণ এবং প্রতি pset চেষ্টা. এমনকি upload-- কেউ যদি তাদের তাদের সব আপলোড, কাজ. এবং তারপর আমরা আশা করতে সক্ষম হবেন আপনি ঐ পয়েন্ট কিছু ফিরিয়ে দিতে. কুল. অন্য কোন প্রশ্ন? গ্রেট. দ্বিতীয়ত, অফিস কয়েক hours-- অফিস ঘন্টার সম্পর্কে দ্রুত নোট. সুতরাং প্রথম, প্রথম সপ্তাহে আসতে. কোন এক সময়ে কি হয় সোমবার অফিসে ঘন্টা. Christabel এসেছিলেন অফিসে ঘন্টা গত রাতে. হ্যা, Christabel. আর আমরা অফিসে কি আছে হয়নি ঘন্টা শেষ রাতে, Christabel? শ্রোতা: আমরা আইসক্রিম ছিল. Andi Peng: তাই ঠিক যে, আমরা ছিল অফিস সময়ে আইসক্রিম শেষ রাতে. আমি যে আপনাকে প্রতিশ্রুতি দিতে না পারলেও আমরা অফিসে ঘন্টা এ আইসক্রিম থাকবে প্রতি সপ্তাহে, আমি কি তোমাদেরকে এই ওয়াদা করতে পারি উল্লেখযোগ্যভাবে একটি হতে হবে টিএ অনুপাত ভাল ছাত্র. পাঠ্য মত, এটা এক তিনটি মত. সঙ্গে যে বিপরীতে যেহেতু বৃহস্পতিবার, আপনি প্রায় 150 পেয়েছেন সত্যিই বাচ্চাদের এবং কোন আইসক্রিম জোর. আর এটা শুধু যে কেউ জন্য উৎপাদনশীল না. গল্পের তাই নৈতিক, তাড়াতাড়ি আসতে হয় অফিসে ঘন্টা এবং ভালো কিছু করার ঘটবে. এছাড়াও, প্রশ্ন জিজ্ঞাসা করার জন্য প্রস্তুত আসে. তুমি জান? তথাপি কি Tas পর্যালোচনা, আমি বলার অপেক্ষা রাখে না হয়েছে মনে, আমরা কয়েক ছাত্র পেয়ে থাকেন 10:50, মত, বৃহস্পতিবার আসা যারা বৈশিষ্ট পড়া থাকার করবেন আমাকে সাহায্য মত হচ্ছে, আমাকে সাহায্য কর. দুর্ভাগ্যবশত যে সময়ে, আছে না আমরা আপনাকে অনেক সাহায্য করতে পারেন. তাই তাড়াতাড়ি সপ্তাহে আসা দয়া করে. অফিসে ঘন্টা তাড়াতাড়ি আসতে. প্রশ্ন জিজ্ঞাসা করার জন্য প্রস্তুত আসা. যেমন, নিশ্চিত করুন যে আপনি যে করুন একজন ছাত্র, যেখানে হয় আপনি যাতে করা প্রয়োজন Tas, ধরে আপনাকে গাইড করতে পারেন কি অফিসে ঘন্টা যা উচিত বরাদ্দ করা. দ্বিতীয়ত, তাই আমি জানি অধ্যাপকদের পরীক্ষা দিয়ে আমাদের অবাক চান. আমি একটি অধ্যাপক যারা ছিল ইয়ো, মত, পথ দ্বারা, যে মিডটার্ম স্মরণ আপনি আগামী সোমবার আছে. হ্যা, আমি যে মিডটার্ম সম্পর্কে জানেন না. তাই আমি যে হতে যাচ্ছি টিএ যে আপনি সব যে ব্যঙ্গ মনে করিয়ে দেয় আপনি কি জানেন, কারণ 0--, আমরা সি এস আছেন. এখন আমরা সম্পন্ন অ্যারে করেছি যে, আপনি পেতে এটা ব্যঙ্গ 0 কেন, অঁ্যা, 1 ব্যঙ্গ না? ঠিক আছে. ওহ, আমি যে এক কয়েকটি chuckles পেয়েছিলাম. ঠিক আছে. তাই ব্যঙ্গ 0 তাহলে অক্টোবর 14 হতে হবে আপনি সোমবার-বুধবার বিভাগে আছেন এবং 15 অক্টোবর আপনি হন তাহলে মঙ্গলবার-বৃহস্পতিবার অধ্যায়. এই জন্য প্রযোজ্য নয় হার্ভার্ডে আপনাদের মধ্যে যারা আমি আপনি সব হবেন মনে who-- 14 ই আপনার quizzes গ্রহণের. তাই হ্যাঁ, আগামী সপ্তাহে, যদি ডেভিড, বক্তৃতায়, যায় হাঁ, যে সম্পর্কে তাই ব্যঙ্গ আগামী সপ্তাহে, আপনি সব কারণ মর্মাহত হবে না আপনি অধ্যায় এসেছিলেন এবং আপনি যে জানেন আপনার ক্যুইজ 0 দুই সপ্তাহের মধ্যে হয়. আর আমরা পর্যালোচনা থাকবে সেশন এবং সবকিছু. সম্পর্কে তাই কোন উদ্বেগ যে জন্য ভয় হচ্ছে. কোন প্রশ্ন কোন প্রশ্ন before-- সব সংক্রান্ত যৌক্তিক বিষয় এ, শূন্য, অফিস ঘন্টা, বিভাগে? হ্যা. শ্রোতা: ব্যঙ্গ তাই বক্তৃতা করার সময় হতে যাচ্ছে? Andi Peng: হ্যা. ব্যঙ্গ সুতরাং, আমি মনে করি, 60 হয় যে সময় স্লট বরাদ্দ মিনিট আপনি শুধু নেব যে বক্তৃতা কক্ষে. সুতরাং যে আপনি আসতে হবে না একটি র্যান্ডম 7:00 PM তে পোস্ট করা, মত, উপর. এটা সব ভাল. হ্যা. কুল. ঠিক আছে. সুতরাং আমরা চলুন আপনাকে একটা ধারণা প্রবর্তন ডেভিড ধরনের ইতিমধ্যে আছে যে এই সপ্তাহে এই গত সপ্তাহে বক্তৃতায় ছোঁয়া. এটা, GDB বলা হচ্ছে. এবং কিভাবে আপনি অনেক, যখন আপনার psets লেখা অবশ্যই, বলছেন যে একটি বড় বাটন লক্ষ্য করেছি আপনার আইডিই উপরে "ডিবাগ"? ঠিক আছে. তাই এখন আমরা আসলে খুঁড়ে পাবেন কি যে বাটন রহস্য আসলে আছে. এবং আমি এটি একটি হল, আপনি গ্যারান্টি সুন্দর, সুন্দর জিনিস. এখন পর্যন্ত, আমি মনে করি আপ সুতরাং দুটি জিনিস আছে এর ছাত্র সাধারণত হয়েছে psets ডিবাগ যখন করছেন. এক, তারা হয় যোগ printf, () - তাই প্রতি কয়েক লাইন, তারা একটি printf () এ যোগ - ওহ, এই পরিবর্তনশীল কি? ওহ, এই পরিবর্তনশীল কি এখন আমি এবং আপনি কি ধরনের অগ্রগতি দেখতে আপনার কোড এটি সঞ্চালিত হিসাবে. অথবা বাচ্চারা কি দ্বিতীয় পদ্ধতি তারা শুধু গোটা ব্যাপারটাই লিখুন যে এবং তারপর শেষে এই মত যেতে. আশা রাখি, এটা কাজ করে. আমি আপনাকে গ্যারান্টি,, GDB ভালো যারা পদ্ধতির উভয় তুলনায়. হ্যা. তাই এটি আপনার নতুন ভাল বন্ধু হতে হবে. এটি একটি সুন্দর জিনিস কারণ যে দৃশ্যত প্রদর্শন উভয় কি আপনার কোড করছে একটি নির্দিষ্ট সময়ে পাশাপাশি এর কি সব আপনার ভেরিয়েবল বহন করা হয়, তাদের কি মান ভালো, যে নির্দিষ্ট সময়ে. আর এই ভাবে, আপনি কি সত্যিই করতে পারেন আপনার কোড ব্রেকপয়েন্ট সেট. আপনি পাতিপাতি মাধ্যমে চালানো যাবে. আর শুধু GDB জন্য থাকবে আপনি, আপনার জন্য প্রদর্শন কি সব আপনার ভেরিয়েবল তারা কি করছেন করছেন, কি কোড এর ঘটনাসমূহ. আর এমনভাবে, এটা এত সহজ দেখতে কি করতে printf হয়- ing পরিবর্তে ঘটছে অথবা আপনার বিবৃতি লিখে. সুতরাং আমরা পরে এই একটি উদাহরণ চেষ্টা করবো. সুতরাং এই একটি বিট বিমূর্ত মনে. কোন উদ্বেগ, আমরা উদাহরণ চেষ্টা করবো. তাই মূলত, তিনটি বৃহত্তম, আপনি GDB হবে ফাংশন সবচেয়ে বেশি ব্যবহৃত হয় এর পরে, উপর পদক্ষেপ, এবং বোতাম মধ্যে পর্যায়. আমি ওভার আগাইয়া যাচ্ছি সেখানে, আসলে, এই মুহূর্তে. তাই আপনাকে বলছি সব দেখতে পারেন অথবা আমি একটি বিট জুম করা উচিত? ফিরে ইন, আপনি দেখতে পারেন? আমি জুম করা উচিত? একটুখানি মাত্র? ঠিক আছে শান্ত হও. আমরা শুরু করছি. ঠিক আছে. তাই আমি আমার এখানে, আছে অর্থগৃধ্নু জন্য বাস্তবায়ন. আর আপনাকে বলছি অনেক লিখেছে যে form-- যখন লুপ অর্থগৃধ্নু না করার জন্য একটি পুরোপুরি গ্রহণযোগ্য উপায় এটা কেবল হয় না অন্য ভাবে এটিকে মডুলো মধ্যে বিভক্ত. তারপর আপনি থাকতে পারে, কারণ আপনার মূল্য এবং তারপর আপনার বাকি আছে. এবং তারপর আপনি ঠিক করতে পারেন এটি সব একসাথে যুক্ত. আমি কি করছি যুক্তি আছে এখানে সকলের জানার জন্য, আমরা শুরু করার আগে? কাইন্ড? কুল. গ্রেট. এটি একটি চমত্কার সেক্সি টুকরা কোড, আমি বলতে হবে. ভালো লেগেছে আমি ডেভিড, এ বলেন, একটা সময় পরে, বক্তৃতা, আপনি সমস্ত কোড দেখা শুরু করব সুন্দর কিছু যে হিসাবে. এবং মাঝে মাঝে আপনাকে সুন্দর দেখতে হলে কোড, এটা যেমন একটা চমৎকার অনুভূতি. সুতরাং যাইহোক, এই কোড খুব থাকাকালীন সুন্দর, এটি সঠিকভাবে কাজ করে না. তাই আসুন এই প্রথম check50 চালানো যাক. 50 20-- OOP চেক করুন. 2? যে pset2 হয়? হ্যা. ওহ, pset1. ঠিক আছে. সুতরাং আমরা check50 চালানো. আর আপনাকে বলছি এখানে দেখতে পারেন, এটা ক্ষেত্রে একটি দম্পতি ব্যর্থ হচ্ছে. আর যদি আপনি কিছু জানার জন্য, আপনার সমস্যা সেট করছেন অবশ্যই, আহ, কেন এটা কাজ করছে না, চাই আপনি. কেন এটা কিছু জন্য কাজ করছে মান না কিন্তু অন্যদের জন্য? ওয়েল, GDB আপনাকে চিত্রে সাহায্য যাচ্ছে কেন খুঁজে যারা ইনপুট কাজ করা হয় নি. ঠিক আছে. সুতরাং আসুন, এক দেখতে দিন আমি check50 ব্যর্থ হয়েছিল চেক 0.41 এর ইনপুট মান ছিল. সঠিক উত্তরটি যাতে আপনি পেয়ে হবে একটি 4 হয়. কিন্তু এর পরিবর্তে আমি প্রিন্ট আউট করছি ভুল যা 3-এন, হয়. তাই শুধু, এর শুধু নিজে এই চালানো যাক check50 কাজ করছে তা নিশ্চিত করুন. এর ./greedy করুক না. ওহো, আমি লোভী করতে হবে. আমরা শুরু করছি. এখন ./greedy. কত অপরিশোধিত হয়? এর 0.41 করুক না. আর হাঁ, আমরা এখানে দেখতে এটা 3 outputting যে যখন সঠিক উত্তরটি, আসলে, 4 হওয়া উচিত. সুতরাং আসুন, GDB লিখতে দিন এবং আমরা কিভাবে দেখতে এই সমস্যা স্থাপন সম্পর্কে যেতে পারেন. প্রথম ধাপ তাই সবসময় আপনার কোড ডিবাগ একটি ব্রেকপয়েন্ট সেট করতে হয়, অথবা একটি বিন্দু যা আপনি কম্পিউটার বা চান ডিবাগার এ খুঁজছেন শুরু করতে. যদি আপনি না তাই না সত্যিই আপনার কি সমস্যা হয়, সাধারণত, সাধারণত জিনিস আমরা করতে চান না প্রধান আমাদের ব্রেকপয়েন্ট সেট করতে হয়. তাই আপনাকে বলছি এই দেখতে পারেন যদি ঠিক আছে লাল বাটন, হাঁ, যে আমার অস্ত যাবার একটি প্রধান ফাংশন জন্য ব্রেকপয়েন্ট. আমি যে ক্লিক করুন. এবং তারপর আমি আমার ডিবাগ বাটন পর্যন্ত যেতে পারেন. আমি যে বাটন আঘাত. আমি যদি আমাকে ফিরে জুম আউট করা যাক. আমরা শুরু করছি. তাই আমরা এখানে, ডানদিকে একটি প্যানেল আছে. আমি পিছন, বলছি দুঃখিত নই, আপনি সত্যিই সত্যিই ভাল দেখতে পারে না. কিন্তু মূলত, সব এই ডান প্যানেলে করছে উভয় হাইলাইট সম্পর্কে অবগত থাকার হয় কোড লাইন, যা লাইন, কম্পিউটার যা বর্তমানে চলমান, পাশাপাশি আপনার ভেরিয়েবল সব হিসাবে এখানে নিচে. তাই আপনি যদি সেন্ট, কয়েন, এন পেয়েছেন, সমস্ত বিভিন্ন জিনিষ ঘোষণা এই মুহূর্তে. কোন উদ্বেগ, কারণ আমরা না আসলে আছে এখনো কোনো ভেরিয়েবল তাদের সক্রিয়া. আপনার কম্পিউটার এ সুতরাং আপনার কম্পিউটার শুধু দেখা হচ্ছে, ওহ, 32767 সর্বশেষ ব্যবহৃত ফাংশন ছিল আমার কম্পিউটার এ যে মেমরি স্থান. সেন্ট বর্তমানে যেখানে আর তাই যে. কিন্তু কোন যে একবার আপনি, কোড চালানো এটি সক্রিয়া হওয়া উচিত. সুতরাং আসুন দ্বারা লাইন দিয়ে যেতে দেওয়া লাইন, তা এখানে ঘটছে. ঠিক আছে. এখানে আপ সুতরাং তিন হয় আমি শুধু ব্যাখ্যা যে বোতাম. আপনি, খেলা, অথবা চালান ফাংশন আছে বাটন, আপনি, বাটনের উপর ধাপ আছে এবং আপনি বোতাম মধ্যে পর্যায় আছে. এবং মূলত, সব তিনটি তাদের শুধু আপনার কোড মধ্য দিয়ে যেতে এবং বিভিন্ন জিনিষ না. তাই সাধারণত, যখন আপনি ডিবাগিং সেটি, আমরা শুধু খেলা আঘাত করতে চাই না, খেলা শুধু চালানো হবে, কারণ এটা শেষে আপনার কোড. এবং তারপর আপনি আসলে না জানেন কি আপনার সমস্যা আপনি একাধিক ব্রেকপয়েন্ট সেট যদি হয়. আপনি একাধিক ব্রেকপয়েন্ট সেট করেন তাহলে, এটা শুধু স্বয়ংক্রিয়ভাবে এক ব্রেকপয়েন্ট থেকে চালানো, পরের পরের যাও, যাও. কিন্তু এই ক্ষেত্রে আমরা করেছি শুধু যে এক, আমরা কারণ আমাদের পথ কাজ করতে চান নিচ থেকে নিচে. তাই আমরা যে বাটন উপেক্ষা চলুন এই মুহূর্তে এই অনুষ্ঠানের উদ্দেশ্যের জন্য. ফাংশন ওভার পদক্ষেপ সুতরাং শুধু প্রতিটি লাইন ধরে পদক্ষেপ এবং আপনি বলে কি কম্পিউটার করছে. ফাংশন মধ্যে ধাপ যায় প্রকৃত ফাংশন মধ্যে যে কোড আপনার লাইনে আছেন. সুতরাং উদাহরণস্বরূপ, printf (), যে অধিকার, একটি ফাংশন? আমি শারীরিকভাবে ধাপে চেয়েছিলেন printf () ফাংশন মধ্যে, আমি আসলে সমাচার মধ্যে যেতে হবে printf, () লেখা এবং দেখতে হয় যেখানে কোড সেখানে কি হচ্ছে. কিন্তু সাধারণত, আমরা ধরে নিই যে আমরা আপনাকে দিতে যে কোড কাজ করে. আমরা () কাজ করছে printf, অনুমান. আমরা GetInt () কাজ করে যাচ্ছে অনুমান. তাই কোন প্রয়োজন নেই যারা ফাংশন মধ্যে সিঁড়ির ধাপ. কিন্তু ফাংশন আছে যদি আপনি নিজেকে লিখুন যে আপনি না পরীক্ষা করতে চান যে কি ঘটছে খুঁজে, আপনি পইঠা চায় যে ফাংশন মধ্যে. তাই এই মুহূর্তে আমরা শুধু চলুন কোড এই টুকরা উপর পইঠা. তাহলে দেখা যাক. ওহ, মুদ্রণ, "ওহ হ্যায়, কিভাবে অনেক পরিবর্তন অপরিশোধিত হয়? " আমরা পরোয়া করি না. আমরা যে কাজ জানেন, তাই আমরা পদধ্বনি উপর. তাই এন, আমাদের ভাসা যা যে আমরা initialized-- করেছি বা declared-- উপরের আপ, আমরা এখন করছি GetFloat, যে সমপরিমান (). সুতরাং আসুন যে উপর পইঠা যাক. আর আমরা দেখতে নীচে এখানে, প্রোগ্রাম একটি মান ইনপুট আমাকে অনুরোধ করা হয়. তাই ইনপুট এর আমরা চাই মান দিন 0.41, যা এখানে পরীক্ষা. গ্রেট. তাই এখন n-- আপনাকে বলছি দেখতে না এখানে, নীচে এ এটা stored-- আমরা কারণ এখনো বৃত্তাকার নি, এটা এই দানবসদৃশ মধ্যে সংরক্ষিত 0,4099999996 যে ভাসা, পাসে যথেষ্ট যা আমাদের উদ্দেশ্য, এই মুহূর্তে, 0.41 থেকে. এবং তারপর আমরা পরবর্তী হিসেবে দেখতে পাবেন আমরা কর্মসূচি নিয়ে পদবিন্যাস অবিরত, এখানে পরে, এন পরিণত হয়েছে বৃত্তাকার এবং সেন্ট 41 হয়ে গেছে. গ্রেট. তাই আমরা আমাদের রাউন্ডইং এর কাজ জানি. আমরা যে আমরা জানি সেন্ট সঠিক সংখ্যা, তাই আমরা যে জানি যে না সত্যিই সমস্যা. সুতরাং আমরা পদবিন্যাস অবিরত এই প্রোগ্রাম উপর. আমরা এখানে যান. আর তাই এই লাইন কোড পর আমরা আমরা কত ত্রৈমাসিক জানা উচিত. আমরা উপর পইঠা. এবং আমরা, আসলে, এক আছে না দেখতে কোয়ার্টার আমরা 25 বিয়োগ করেছি কারণ 41 আমাদের প্রারম্ভিক মান থেকে. আর আমরা আমাদের সেন্ট জন্য 16 বাম আছে. সবাই বুঝতে না প্রোগ্রামের মাধ্যমে পদবিন্যাস করা হয় এবং কেন সেন্ট এখন 16 হয়ে গেছে এবং কেন, এখন, কয়েন 1 পরিণত হয়েছে? সবাই যে যুক্তি অনুসরণ করছে? কুল. , এই বিন্দু থেকে তাই প্রোগ্রাম এর কাজ, তাই না? আমরা এটা ঠিক করছে জানেন আমরা এটা করতে চান কি. আমরা আসলে না ওহ, প্রিন্ট আউট আছে, কি এই সময়ে সেন্ট, হয় এই সময়ে কয়েন কি. আমরা প্রোগ্রামের মাধ্যমে যাচ্ছে অবিরত. স্টেপ ওভার. কুল. আমরা এটি dimes ঝালিয়ে. গ্রেট. আমরা এখানে কেউ আছে দেখতে একটা কয়েন জন্য $ 0.10 বন্ধ. আর এখন আমরা দুটি কয়েন আছে. এটা সঠিক. আমরা পেনিসমূহ পুনরালোচনা এবং আমরা দেখতে আমরা সেন্ট ওভার বাকি পেয়েছেন. হুম, যে অদ্ভুত. এখানে প্রোগ্রাম এ, আমি কথা ছিল আমার পেনিসমূহ বিয়োগ হয়েছে. সম্ভবত আমি শুধু ছিল না যে লাইন অধিকার করছেন. এবং হায়, আপনি দেখতে পারেন এখানে, কারণ আমরা জানি আমরা পদবিন্যাস করা হয় যে লাইন 32 এবং 33 মাধ্যমে, যে যেখানে আমাদের প্রোগ্রাম অযৌক্তিকভাবে ভেরিয়েবল চালানো ছিল. সুতরাং আমরা চেহারা এবং ওহ, দেখতে পারেন, আমি এখানে সেন্ট subtracting করছি, কিন্তু আমি আসলে নই আমার মুদ্রার মান যোগ. আমি সেন্ট যোগ করছি. আর আমি যোগ করতে চাই না সেন্ট, আমি কয়েন যোগ করতে চান. সুতরাং আমরা কয়েন যে পরিবর্তন করেন, আমরা একটি কাজ প্রোগ্রাম পেয়েছেন. আমি check50 চালাতে পারেন. আপনি শুধু, GDB সঠিক আউট থেকে প্রস্থান করতে পারেন এখানে এবং তারপর আবার check50 চালানো. আমি শুধু এই কাজ করতে পারে. আমি লোভী করতে হবে. 0.41. আর এখানে, এটা মুদ্রণ সঠিক উত্তর খুঁজে. আপনাকে বলছি দেখতে পারেন হিসাবে সুতরাং, GDB সত্যিই একটি শক্তিশালী হাতিয়ার আমরা এত কোড আছে জন্য এবং যাচ্ছে, তাই অনেক ভেরিয়েবল এটা যেমন, আমাদের জন্য কঠিন যে একটি মানবিক, ট্র্যাক রাখতে. GDB মধ্যে কম্পিউটার, ডিবাগার, ক্ষমতা আছে সবকিছু ট্র্যাক রাখতে. আমি সম্ভবত Visionaire এ, আপনাকে বলছি, জানি কিছু সেগমেন্টেশন ফল্ট আঘাত হতে পারে আপনি চলমান ছিল, কারণ আপনার অ্যারের সীমার বাইরে. সিজার উদাহরণে, যে ঠিক আমি এখানে কি প্রয়োগ করেছি. তাই আমি পরীক্ষা করার জন্য ভুলে গেছি কি ঘটতে পারে আমি দুটি কমান্ড লাইন আর্গুমেন্ট আছে কি না. আমি ঠিক যে চেক রাখা হয়নি. আমি Debug-- চালানো হলে আমি পড়ি ক্লাস থ্রিতে আমার ব্রেকপয়েন্ট অধিকার আছে. আমি ডিবাগ চালানো. ঠিক আছে. হ্যা. তাই আসলে,, GDB অনুমিত ছিল আমাকে সেখানে বলা আছে সেখানে একটি সেগমেন্টেশন ফল্ট ছিল. আমি কি ঘটছে ছিল জানি না ঠিক আছে, কিন্তু আমি এটা দৌড়ে যখন এটি কাজ ছিল. আপনি মাধ্যমে লাইনের কোড চালানো হলে এবং শুধু GDB হঠাৎ, আপনি প্রস্থান পারে আপ যান এবং লাল পথভ্রষ্টতা দেখুন. এটা, আরে, আপনি বলতে পারবেন একটি সেগমেন্টেশন ফল্ট ছিল, যা আপনি অ্যাক্সেস করতে চেষ্টা করে যে মানে অস্তিত্ব ছিল না যে একটি অ্যারের মধ্যে স্থান. হ্যা. পরের সমস্যা তাই এই সপ্তাহে সেট, আপনাকে বলছি সম্ভবত অনেক আছে হবে ভেরিয়েবল চারপাশে ঘিরে আছে. আপনি নিশ্চিত হতে যাচ্ছেন না কি তারা সব একটি নির্দিষ্ট সময়ে মানে. তাই GDB সত্যিই figuring আপনাকে সাহায্য করবে তারা সব সমপরিমান হয় তা খুঁজে এবং দৃশ্যত যে দেখতে সক্ষম হচ্ছে. কেউ কিভাবে বিভ্রান্ত হয় যে কোন কাজ ছিল? কুল. ঠিক আছে. তাই যে পরে, আমরা ডান আকর্ষণীয় যাচ্ছে মধ্যে বিভিন্ন চার হয় এই সপ্তাহের জন্য প্রকারের ধরনের. কিভাবে আপনি অনেক, প্রথম সব, আমরা শুরু করার আগে, pset3 জন্য সমগ্র বৈশিষ্ট পড়া আছে? ঠিক আছে. আমি আপনাকে বলছি গর্বিত নই. অর্ধেক যে শ্রেণীর, মত যা শেষ সময় তুলনায় উল্লেখযোগ্যভাবে বেশী. সুতরাং, যে দারুণ যখন কারণ আমরা কন্টেন্ট সম্পর্কে কথা lecture-- বা দুঃখিত মধ্যে, বিভাগে আমি চাই যে অনেক কহা করতে পিছনে যাও pset কি করতে এবং আপনি চান কিভাবে আপনার pset যে বাস্তবায়ন. আপনি থাকার আসা যদি তাই বৈশিষ্ট পড়া, এটা করব আপনি বুঝতে জন্য অনেক সহজ হবে আমি বলতে যখন কি বিষয়ে কথা বলছি, আরে ওহ, এই সত্যিই একটি হতে পারে এই সাজানোর বাস্তবায়ন ভাল জায়গা. পড়া আছে আপনাদের মধ্যে যারা তাই আপনার pset অংশ হিসাবে, জানি যে বৈশিষ্ট আপনি আছে চলুন সাজান একটি টাইপ লিখুন. তাই এই খুব সহায়ক হতে পারে আপনাকে অনেক আজকের জন্য. তাই নিয়ে আমরা শুরু করব, মূলত, সবচেয়ে সহজ টাইপ সাজানোর, নির্বাচন সাজানোর. সাধারণত অ্যালগরিদম আমরা এই সম্পর্কে যেতে চাই কিভাবে হচ্ছে ÑÑ ডেভিড সব এই মাধ্যমে গিয়েছিলাম বক্তৃতা, যাতে আমি দ্রুত বরাবর অগ্রসর হবে এখানে আপনি মূলত হয় মান একটি অ্যারে আছে. এবং তারপর আপনি এটি ক্ষুদ্রতম পাঁচমিশালী মূল্য এবং আপনি যে মান সঙ্গে অদলবদল প্রথম পাঁচমিশালী মূল্য. এবং তারপর আপনি শুধু পুনরায় রাখা আপনার তালিকার বাকি সাথে. এবং এখানে একটি চাক্ষুষ ব্যাখ্যা কিভাবে যে কাজ হবে এর. আমরা হলে সুতরাং উদাহরণস্বরূপ, শুরু করার জন্য পাঁচটি উপাদানের একটি অ্যারের, সূচক সঙ্গে 4 0, 3, 5, 2, 6, এবং 4 মান তাই এই মুহূর্তে অ্যারে স্থাপন, আমরা শুধু অনুমান করতে যাচ্ছেন তারা সব পাঁচমিশালী করছি যে আমরা অন্যথায় পরীক্ষা নি কারণ. সুতরাং কিভাবে একটি নির্বাচন সাজানোর would কাজ যে এটা প্রথম would হয় সম্পূর্ণতা মাধ্যমে চালানো পাঁচমিশালী অ্যারের. এটি ক্ষুদ্রতম মান খুঁজে নিতে হবে. এই ক্ষেত্রে, 3, ডান এখন, সবচেয়ে ছোট. এটা 5 পায়. নাঃ, 5 than-- বড় নয় অথবা দুঃখিত, 3 than-- কম নয়. তাই সর্বনিম্ন মূল্য এখনও 3. এবং তারপর আপনি 2 পেতে. ওহ, সূচিত কম্পিউটার, 2 3 কম. 2 এখন সর্বনিম্ন মান হতে হবে. আর তাই যে প্রথম মান সঙ্গে 2 অদলবদল. সুতরাং এক পাস করার পর, আমরা প্রকৃতপক্ষে দেখতে না যে 2 এবং 3 আনা হয়. আর আমরা শুধু করছেন চালিয়ে যাচ্ছেন এই আবার অ্যারের বাকি সাথে. তাই আমরা ঠিক মাধ্যমে চালানো চলুন অ্যারের গত চার সূচী. আমরা 3 দেখতে পাবেন পরবর্তী সর্বনিম্ন মান. তাই আমরা 4 যে অদলবদল চলুন. এবং তারপর আমরা ঠিক রাখতে যাচ্ছেন অবশেষে, যতক্ষণ মাধ্যমে চলমান, আপনি একটি সাজানো অ্যারের পেতে যা 2, 3, 4, 5, এবং 6 সব সাজানো হয়. সবাই লজিক বোঝে একটি নির্বাচন সাজানোর কাজ করে কিভাবে? আপনি শুধু কিছু বাছাই করা আছে একটি সর্বনিম্ন মান. আপনি যে কি করছেন অবগত থাকার. আপনি তা খুঁজে পেতে এবং যখনই আপনি এটা অদলবদল অ্যারে প্রথম মান সঙ্গে বা, না প্রথম value-- অ্যারের মধ্যে পরবর্তী মান. কুল. তাই আপনাকে বলছি হিসাবে ধরনের একটি সংক্ষিপ্ত ক্ষণিক থেকে দেখেছি, আমরা এই আউট pseudocode চলুন. তাই ফিরে আপনি না চান তাহলে একটি টেবিল এ একটি গ্রুপ, প্রত্যেকের গঠন একটু অংশীদার গঠন করতে পারেন, আমি যাচ্ছি আপনি তিন মিনিটের মত বলছি দিতে শুধু মাধ্যমে কথা বলার জন্য যুক্তিবিজ্ঞান, ইংরেজিতে, আমরা বাস্তবায়ন করতে সক্ষম হতে পারে কিভাবে pseudocode হয় একটি নির্বাচন সাজানোর লিখতে. এবং মিছরি আছে. আসা পর্যন্ত এবং ক্যান্ডি পেতে দয়া করে. আপনি ফিরে মধ্যে আছেন এবং আপনি চান ক্যান্ডি, আমি আপনাকে এ ক্যান্ডি নিক্ষেপ করতে পারেন. বাস্তবিক, তোমাদেরকে শীতল না. ওহ দুঃখিত. ঠিক আছে. আমরা যেমন, চাই যদি তাই একটি শ্রেণী, লেখার pseudocode এক যোগাযোগ পারে কিভাবে জন্য এই সমস্যা নেই, শুধু বিনা দ্বিধায়. আমি শুধু কাছাকাছি যেতে এবং করব, যাতে, গ্রুপ জিজ্ঞাসা এর পরের লাইনে জন্য আমরা কি কাজ করা উচিত. আপনাকে বলছি শুরু করতে চান তাহলে বন্ধ, প্রথম জিনিস কি আপনি চেষ্টা করছেন না করতে এই প্রোগ্রাম সমাধানের একটি উপায় বাস্তবায়ন বেছে বেছে একটি তালিকা বাছাই? শুধু আমরা অনুমান চলুন শুরু করা যাক একটি অ্যারের, ঠিক আছে? শ্রোতা: আপনি কিছু তৈরি করতে চান সাজান [শ্রবণাতীত] আপনি আছেন যে আপনার সম্পূর্ণ অ্যারে মাধ্যমে চলমান. Andi Peng: রাইট. সুতরাং আপনি পুনরুক্তি করতে চান চলুন ভাষার স্থান মাধ্যমে, ডান? অতি মহৎ. আপনাকে বলছি আমাকে দিতে চান পরবর্তী পিছন, হ্যা লাইনে. শ্রোতা: তাদের পরীক্ষা সব ক্ষুদ্রতম জন্য. Andi Peng: এখন পর্যন্ত আমরা যেতে. সুতরাং আমরা মধ্য দিয়ে যেতে এবং চেক করতে চান সর্বনিম্ন মান ঠিক আছে, কি দেখতে? আমি যে লইস যাচ্ছি "মিনিট." আপনাকে বলছি পরে কি চাও আপনি সর্বনিম্ন মূল্য পেয়েছি? শ্রোতা: [শ্রবণাতীত] Andi Peng: সুতরাং আপনি করতে চান করতে যাচ্ছেন যে অ্যারের প্রথম সঙ্গে এটি সুইচ, ঠিক আছে? যে আমি বলতে যাচ্ছি, শুরুতে. ঠিক আছে. তাই এখন আপনি প্রথম আনা করেছি যে এক, আপনি কি যে পরে কাজ করতে চান না? তাই এখন আমরা জানি যে এখানে এই এক ঠিক আছে, ক্ষুদ্রতম মান হতে হবে? তারপর আপনি একটি অতিরিক্ত বাকি আছে পাঁচমিশালী যে অ্যারের. তাই যদি আপনি যদি, এখানে কাজ করতে চান কি বলছি আমাকে পরের লাইন দিতে চান? শ্রোতা: তখন আপনি পুনরুক্তি করতে চান অ্যারের বাকি মাধ্যমে. Andi Peng: হ্যা. আর তাই মাধ্যমে iterating কী ধরনের আমরা সম্ভবত প্রয়োজন হবে পরোক্ষভাবে? কি ধরনের-- শ্রোতা: ওহ, একটি অতিরিক্ত পরিবর্তনশীল? Andi Peng: সম্ভবত লুপ জন্য আরেকটি, ঠিক আছে? তাই আমরা সম্ভবত চান চলুন এর মাধ্যমে মহান পুনরুক্তি করতে. এবং তারপর আপনি ফিরে যেতে চলুন এবং সম্ভবত আবার সর্বনিম্ন পরীক্ষা, ঠিক আছে? এবং যদি আপনি পুনরায় রাখতে যাচ্ছেন এই, loops, কারণ শুধু যাচ্ছে ঠিক আছে, চলমান রাখা? তাই আপনাকে বলছি, আমরা দেখতে পারেন শুধু একটি সাধারণ pseudocode হয় আছে আমরা চাই কিভাবে এই প্রোগ্রাম দেখুন. এখানে এই বারবার, আমরা কি সাধারণত আমাদের কোড লেখার প্রয়োজন আমরা একটি মাধ্যমে পুনরুক্তি করতে চান তাহলে কাঠামো অ্যারে, কি ধরনের? আমি Christabel মনে ইতিমধ্যে এই আগে বলেন. শ্রোতা: লুপ জন্য একটি. Andi Peng: লুপ জন্য একটি? ঠিক. তাই এটা সম্ভবত হয় একটি লুপ জন্য হতে যাচ্ছে. পরোক্ষভাবে যাচ্ছে এখানে একটি চেক কি? সাধারণত, আপনি না পরীক্ষা করতে চান তাহলে কিছু কিছু বিষয় যা কিনা else-- শ্রোতা: তাহলে. Andi Peng: একটি, ডান? এখানে অদল-বদল ও তারপর, আমরা করব পরে পুনরালোচনা ডেভিড কারণ পাশাপাশি বক্তৃতায় যে মাধ্যমে গিয়েছিলাম. এবং তারপর দ্বিতীয় বারবার implies-- শ্রোতা: লুপ জন্য আরেকটি. Andi Peng: ঠিক, লুপ জন্য --another. আমরা খুঁজছেন যদি তাই সঠিকভাবে এই সময়ে, আমরা আমরা সম্ভবত করছি দেখতে পারেন লুপ জন্য একটি নেস্টেড প্রয়োজন যাচ্ছে সেখানে একটি কন্ডিশনাল স্টেটমেন্ট দিয়ে এবং তারপর কোড একজন প্রকৃত টুকরা যে মূল্যবোধের অদলবদল যাচ্ছে. তাই আমি শুধু সাধারণত লিখিত করেছি এখানে একটি pseudocode কোড. এবং তারপর আমরা আসলে চলুন শারীরিক, একটি শ্রেণী হিসেবে এই আজ বাস্তবায়নের চেষ্টা. এর এই আইডিই ফিরে যাওয়া যাক. উহ ওহ. কেন সেখানে not-- হল যে. ঠিক আছে. দুঃখিত, আমার একটি বিট আরো জুম করার চেষ্টা করা যাক. আমরা শুরু করছি. আমি এখানে কি করছি সকল আমি তৈরি করেছি হয় নামক একটি প্রোগ্রাম "নির্বাচন / sort.c." আমি নয়টি একটি অ্যারের তৈরি করেছি মান, 4, 8, 2, 1, 6, 9, 7, 5, 3. বর্তমানে, হিসাবে আপনি করতে পারেন তারা unordered হয়, দেখতে. এন সংখ্যা হতে যাচ্ছে আপনি মান পরিমাণ বলে আপনি আপনার অ্যারের মধ্যে আছে. এই ক্ষেত্রে, আমরা নয়টি মান আছে. আর আমি শুধু এখানে লুপ জন্য একটি পেয়েছেন যে পাঁচমিশালী অ্যারে আউট ছাপে. এবং শেষে, আমি একটি পেয়েছেন শুধু সেটা ছাপে আবার আউট যে লুপ. তাই তাত্ত্বিকভাবে, এই প্রোগ্রাম যদি শেষে, সঠিকভাবে কাজ করছে না, আপনি একটি লুপ জন্য মুদ্রিত দেখতে হবে যা 1, 2, 3, 4, 5, 6, 7, 8, 9 যাতে সব কিছু ঠিকঠাক আছে. তাই আমরা এখানে আমাদের pseudocode পেয়েছেন. আমি শুধু আছি চাচ্ছি কেউ চান না স্বেচ্ছাসেবকদের জন্য অনুরোধ যেতে যাচ্ছে তাহলে কি টাইপ করার ঠিক সম্পর্কে বলুন আমরা, প্রথম, শুধু বারবার করতে চান এই অ্যারে শুরুতে মাধ্যমে? আমি কোড লাইন কী সম্ভবত এখানে প্রয়োজন যাচ্ছে? শ্রোতা: [শ্রবণাতীত] Andi Peng: হ্যা, মনে ফ্রি চাচ্ছি দুঃখিত, আপনি বইয়ের নাম আপ অনুভূতি স্ট্যান্ড করতে হবে না আপনার ভয়েস একটি বিট বাড়াতে বিনামূল্যে. শ্রোতা: int তোমার সমান জন্য 0-- Andi Peng: হ্যা, ভাল. শ্রোতা: আমি অ্যারের দৈর্ঘ্য কম হয়. Andi Peng: তাই রাখা , এখানে মনে আমরা কারণ একটি ফাংশন আছে না যে আমাদের একটি অ্যারের দ্বারা বলে, আমরা ইতিমধ্যে একটি আছে যে দোকানে যে মান. রাইট? আরেকটি বিষয় রাখা একটি অ্যারের মধ্যে mind-- মধ্যে নয়টি মান, ইনডেক্স কি হয়? এর ঠিক এই অ্যারে থেকে 3 0 ছিলাম. আপনি সর্বশেষ দেখতে সূচক আসলে 3. এটা আছে, যদিও 4 না অ্যারের মধ্যে চারটি মান. এখানে তাই, আমরা খুব সতর্ক হতে হবে দৈর্ঘ্য জন্য কি আমাদের অবস্থা হতে যাচ্ছে. শ্রোতা: এটা এন বিয়োগ 1 হবে না? Andi Peng: এটা যাচ্ছে ঠিক এন বিয়োগ 1,. যে অর্থে, কেন এটি এন এর বিয়োগ 1, সবাই? অ্যারে শূন্য সূচিবদ্ধ হয়, কারণ এটা. তারা 0 থেকে আরম্ভ হয় এবং 1 এন বিয়োগ পর্যন্ত চালানো. হ্যা, এটা একটি বিট চতুর. ঠিক আছে. এবং তারপর-- শ্রোতা: Isnt'1 যে ইতিমধ্যে যদিও যত্ন নেয়া, শুধু বেশি বা কম "বলার অপেক্ষা রাখে না করে সমান কম "ও ঠিক বলছে" কিভাবে? " Andi Peng: যে একটি কী সত্যিই ভাল প্রশ্ন. তাই ঠিক. তবে, আমরা পথ যে চেক এই মুহুর্তে বাস্তবায়ন, আপনি দুটি মান তুলনা করা প্রয়োজন. সুতরাং আপনি আসলে চান "যাও" ফাঁকা ছেড়ে চলে যান. আপনি তুলনা যদি কারণ এই এক, আপনার যাচ্ছেন না এটা পরে কিছু আছে ঠিক আছে, তুলনা? হ্যা. সুতরাং i ++. এর মধ্যে আমাদের বন্ধনী যোগ করা যাক. ওহো. গ্রেট. তাই আমরা শুরুতে আছে আমাদের বাইরের লুপ. তাই এখন আমরা সম্ভবত চান থাকার জন্য একটি পরিবর্তনশীল তৈরি ক্ষুদ্রতম মান সম্পর্কে অবগত, ডান? কেউ আমাকে দিতে চান তা করতে হবে যে কোড লাইন? আমরা চলুন তাহলে আমরা কী করতে হবে কিছু সঞ্চয় করতে চান? রাইট. যে জন্য হয়তো একটি ভাল নাম "Temp" be-- হবে সম্পূর্ণই আদৌ হয়তো আরো যথাযোগ্যভাবে হবে নামে একজন, আমরা ক্ষুদ্রতম value-- চান শ্রোতা: ন্যূনতম. Andi Peng: কমপক্ষে, সেখানে আমরা যেতে. কমপক্ষে ভাল হবে. তাই এখানে, আমরা কি এটি আরম্ভ করতে চান? এই একটু চতুর. কারণ এ মুহূর্তে এই অ্যারের শুরুতে, ডান, কিছু লাগছিল না? স্বয়ংক্রিয়ভাবে তাই কি, তাহলে আমরা, শুধু আমি 0 সমান করছি আমরা আরম্ভ করতে চান কি আমাদের প্রথম সর্বনিম্ন মান? শ্রোতা: আমি. Andi Peng: আমি ঠিক. Christabel, কেন আমরা চাই না আমি এটি আরম্ভ করতে? শ্রোতা: ভাল, কারণ আমরা 0 দিয়ে শুরু করছি. আমরা তুলনা কিছুই আছে, কারণ তাই এটা সর্বনিম্ন 0 হচ্ছে শেষ হয়ে যাবে যাও. Andi Peng: ঠিক. তাই সে ঠিক ঠিক. আমরা না আসলে আছে এখনো কিছু দিকে তাকিয়ে আমরা আমাদের সর্বনিম্ন মান কি না জানি না. আমরা শুধু এটি আরম্ভ করতে চান আমি যা, বর্তমানে, অধিকার এখানে. আর আমরা অবিরত হিসাবে এই অ্যারের নিচে নামাও, আমরা প্রতিটি সঙ্গে, দেখতে পাবেন অতিরিক্ত পাস, আমি সংখ্যা বৃদ্ধি হবে. আর তাই যে সময়ে, আমি সম্ভবত যাচ্ছে নূন্যতম হতে চান, এটা যাই হোক না কেন হতে যাচ্ছে কারণ পাঁচমিশালী অ্যারের শুরুতে. কুল. তাই এখন আমরা যোগ করতে চাই একটি এখানে লুপ জন্য যে মাধ্যমে পুনরুক্তি করা যাচ্ছে পাঁচমিশালী, বা এই অ্যারের বাকি. কেউ আমাকে দিতে চাই না তা করতে হবে যে কোড লাইন? Hint-- আমরা এখানে কি প্রয়োজন না? কি লুপ জন্য এই সালে যেতে যাচ্ছে? হ্যা. শ্রোতা: তাই আমরা চাই চাই একটি ভিন্ন পূর্ণসংখ্যা আছে, আমরা বাকি মাধ্যমে চালাচ্ছেন কারণ পরিবর্তে আমি অ্যারে, তাই হয়ত এর জে. Andi Peng: হ্যা, J আমার ভাল শোনাচ্ছে. সমান? শ্রোতা: সুতরাং, কারণ আমি হতে প্লাস 1 হবে আপনি পরবর্তী মান থেকে শুরু করছি. এবং তারপর তাই আবার end--, জে হয় এন বিয়োগ 1, এবং তারপর ঞ ++ কম. Andi Peng: গ্রেট. এবং তারপর এখানে, আমরা চাই চলুন আমাদের শর্ত পূরণ হয় কিনা তা পরীক্ষা করার জন্য, ঠিক আছে? আপনি চান, কারণ নূন্যতম মূল্য পরিবর্তন এটা আসলে ছোট হলে কি ডান, সাথে তুলনা করছি? তাই আমরা এখানে চাইতে যাচ্ছি? দেখুন. বিবৃতির কি ধরনের আমরা সম্ভবত যাচ্ছি TI যদি ব্যবহার করতে চান আমরা কিছু চেক করতে চান? শ্রোতা: একটি বিবৃতি যদি. Andi Peng: যদি একটি বিবৃতি. সুতরাং if-- ও হতে যাচ্ছে কি আমরা ভিতরে চান যে শর্ত আমাদের If Statement এর? শ্রোতা: তাহলে J মান i-- মূল্যের চেয়ে কম হয় Andi Peng: ঠিক. সুতরাং if-- তাই এই অ্যারে "অ্যারে" বলা হয়. গ্রেট. যে কি ছিল অ্যারে যদি তাই? আবার বলো. শ্রোতা: অ্যারে-J কম হলে অ্যারে-আমি, তারপর আমরা কমপক্ষে পরিবর্তন হবে. তাই কমপক্ষে J হবে. Andi Peng: যে জানার জন্য? ঠিক আছে. আর এখন এখানে নিচে, আমরা আসলে ঠিক আছে, swap 'বাস্তবায়ন করতে চান? সুতরাং, বক্তৃতায়, প্রত্যাহার দায়ূদ যখন যে তিনি the-- কি ছিল অদলবদল করার চেষ্টা ছিল এটিকে কমলার রস এবং milk-- শ্রোতা: যে স্থূল ছিল. Andi Peng: হাঁ, যে ধরনের স্থূল ছিল. কিন্তু এটি একটি প্রশংসনীয় ভাল ছিল ধারণা সময় প্রদর্শক. তাই এখানে আপনার মান মনে. আপনি একটি অ্যারের পেয়েছেন কমপক্ষে, আমি একটি অ্যারের, অথবা আমরা এখানে অদলবদল করার চেষ্টা করা হোক. এবং সম্ভবত আপনি সেগুলি ঢালা পারবেন না একই সময়ে একে অপরের, ডান? সুতরাং আমরা যাচ্ছি এখানে তৈরি করতে প্রয়োজন সঠিকভাবে মূল্যবোধের অদলবদল করার জন্য? শ্রোতা: একটি অস্থায়ী পরিবর্তনশীল. Andi Peng: একটি অস্থায়ী পরিবর্তনশীল. সুতরাং এর int- টেম্প না দেওয়া. এই একটি ভাল হবে, দেখুন দাঁড়ান চাচ্ছি সময়, যে কি ছিল? ঠিক আছে. সুতরাং এই একটি ভাল হত সময় পরিবর্তনশীল "টেম্প." নাম সুতরাং এর int- টেম্প না দেওয়া. আমরা কি যাচ্ছি এখানে সমান temp সেট? শ্রোতা: ন্যূনতম? Andi Peng: এটি একটি বিট চতুর. এটা আসলে শেষ পর্যন্ত কোন ব্যাপার না. এটা কি কোন ব্যাপার না যাতে আপনি অদলবদল করে নিন যতদিন না পর্যন্ত আপনি নিশ্চিত করছি হিসাবে আপনি আছেন আপনি সোয়াপিং তা সম্পর্কে অবগত থাকার. শ্রোতা: এটা অ্যারে-আমি অনেক কিছু হতে পারে. Andi Peng: হ্যা, এর অ্যারে-আমি কাজ করতে দিন. এবং তারপর পরের লাইন কি কোডের আমরা এখানে আছে চান? শ্রোতা: অ্যারে-আমি অ্যারে-জে সমান. Andi Peng: এবং সর্বশেষে? শ্রোতা: অ্যারে-J অ্যারে-আমি সমান. শ্রোতা: অথবা অ্যারে-জে সমান অ্যারে-temp-- বা, টেম্প. Andi Peng: ঠিক আছে. তাই আসুন এই রান দেওয়া এবং দেখতে এটা কাজ করতে যাচ্ছে. যে কোথায় কী ঘটছে? ওহ, যে একটি সমস্যা. আমরা করছি, লাইন 40, দেখুন অ্যারে-J ব্যবহার করার চেষ্টা? কিন্তু যেখানে শুধুমাত্র এ জে অস্তিত্ব আছে? শ্রোতা: লুপ জন্য. Andi Peng: রাইট. তাই আমরা কি করতে প্রয়োজন যাচ্ছি? শ্রোতা: the-- বাইরে এটি সংজ্ঞায়িত শ্রোতা: হ্যাঁ, আমি তোমাকে আছে অনুমান বিবৃতিতে, ডান যদি অন্য ব্যবহার করতে? তাই মত, যদি minimum-- ঠিক আছে, আমার মনে হয় যাক. Andi Peng: বলছি, চেষ্টা একটি যাক এর নেওয়া আমরা এখানে কিছু কি করতে পারেন দেখতে? শ্রোতা: ঠিক আছে. নূন্যতম সমান না হয়, তাহলে নূন্যতম যদি j-- তাই এখনও i-- তারপর আমরা অদলবদল করতে হবে না. Andi Peng: আমি যে সমান করে? আপনি কি এখানে বলতে চাই না? শ্রোতা: অথবা হ্যা, যদি নূন্যতম হ্যা, না সমান আমি না. Andi Peng: ঠিক আছে. ভাল যে আমাদের সমস্যা, ধরনের, solves. কিন্তু যে এখনও সমাধান না J থেকে j-- তাহলে কি সমস্যা এটা বাইরে অস্তিত্ব নেই, কি আমরা এটা দিয়ে কি করতে চান না? বাইরে তা মেনে নেবে? এর এই চলমান চেষ্টা করা যাক. উহ ওহ. আমাদের সাজানোর কাজ করছে না. আপনি, আমাদের প্রাথমিক দেখতে পারেন অ্যারে যারা মান ছিল. এবং পরে তা থাকা উচিত 1, 2, 3, 4, 5, 6, 7, 8, 9 হয়েছে. এটা কাজ করছে না. ওহ. আমরা কি করবো? শ্রোতা: ডিবাগ. Andi Peng: ঠিক আছে, আমরা যে চেষ্টা করে দেখতে পারেন. আমরা ডিবাগ করতে পারেন. একটি বিট জুম আউট. আসুন আমাদের ব্রেকপয়েন্ট সেট. এর ঠিক করার মত যাওয়া যাক. আমরা ইতিমধ্যে জানি যে কারণ তাই এই লাইন, 15 22 মাধ্যমে, আমি করছি সব কারণ working-- হয় শুধু মাধ্যমে এবং printing-- iterating আমি এগিয়ে যান এবং যে থামিয়া যাবে. এর লাইন 25 এ শুরু করা যাক. OOP, আমার যে পরিত্রাণ পেতে যাক. শ্রোতা: সুতরাং ব্রেকপয়েন্ট এর ডিবাগ যেখানে শুরু? Andi Peng: বা স্টপ. শ্রোতা: বা স্টপ. Andi Peng: হ্যা. আপনি একাধিক ব্রেকপয়েন্ট সেট করতে পারেন এবং এটা শুধু এক থেকে অন্য তিড়িং লাফ পারেন. কিন্তু এই ক্ষেত্রে আমরা জানি না যেখানে ত্রুটি ঘটছে. তাই আমরা ঠিক করতে চান উপরে নিচে থেকে শুরু. হাঁ. ঠিক আছে. সুতরাং এখানে এই লাইন, আমরা এ পদক্ষেপ পারেন. আপনি, এখানে নিচে দেখতে পারেন আমরা একটি অ্যারের পেয়েছেন. যারা মান হয় অ্যারের মধ্যে হয়. আপনি কি দেখতে পাচ্ছেন, যে কিভাবে সূচক 0, এটা , ওহ value-- অনুরূপ আমি জুম করার চেষ্টা করে চলেছি. দুঃখিত, এটা সত্যিই কঠিন অ্যারে ইনডেক্স 0 see-- করতে, আমরা 4 একটি মান আছে এবং তারপর তাই ঘোষণা, and so on. আমরা আমাদের স্থানীয় ভেরিয়েবল আছে. এই মুহূর্তে আমি সমান আমরা এটা হতে চান যা 0,. আর তাই এর মাধ্যমে পদবিন্যাস রাখা যাক. আমাদের সর্বনিম্ন, 0 সমান যা আমরা এটা হতে চান. এবং তারপর আমরা আমাদের দ্বিতীয় লিখুন লুপ, অ্যারে-J অ্যারে-আমি চেয়ে কম হয় তাহলে, যা কিছুই বলতে পারলাম না. সুতরাং আপনি কিভাবে দেখতে হয়নি যে এড়ানো উপর? শ্রোতা: তাই যদি উচিত সর্বনিম্ন, সব কিন্তু যে পক্ষে ভালো লুপ জন্য প্রথম ভিতরে হতে? Andi Peng থে, কারণ আপনি এখনও পরীক্ষা করতে চান. আপনি প্রতি একটি তুলনা করতে চান সময়, আপনি এটি দিয়ে চালানো, এমনকি পরে. আপনি শুধু এটা করতে চান না প্রথম পাস-থ্রু তে. আপনার সাথে কি করতে চান আবার প্রতিটি অতিরিক্ত পাস. তাই আপনার জন্য চেক করতে চান ভিতরে আপনার অবস্থা. তাই আমরা ঠিক করতে যাচ্ছেন এখানে মাধ্যমে চলমান রাখতে. আমি বলছি আপনি ফ্লাইন. এটা আসলে কি আছে যে যখন আপনি, আপনার শর্তাধীন চেক করছি আপনি চেক করছি না সঠিক সূচক জন্য. তাই এই মুহূর্তে আপনার জন্য চেক করছি J অ্যারে সূচক অ্যারে কম হয় আমি এর সূচী. কিন্তু আপনি কি এ পর্যন্ত করছেন লুপ জন্য শুরুতে? আপনি আমি সমান J সেটিং নেই? হ্যাঁ, তাই আমরা আসলে যা করতে পারেন এখানে ডিবাগার প্রস্থান. সুতরাং আসুন আমাদের pseudocode কটাক্ষপাত করা যাক. For-- আমরা চলুন আমি 0 সমান এ শুরু. আমরা 1 এন বিয়োগ পর্যন্ত যেতে চলুন. এর পরীক্ষা করা যাক, আমরা যে সঠিক ছিল? হাঁ, যে সঠিক ছিল. তাই এখানে ভিতরে, আমরা করছি একটি সর্বনিম্ন মান তৈরি করতে যাচ্ছে এবং আমি যে সমান সেট. আমরা যে কি? হাঁ, যে করেনি. এখন আমাদের ভেতরের জন্য লুপ, আমরা করছি J করতে যাচ্ছে আমি এন বিয়োগ 1 সমান. আমরা যে কি? প্রকৃতপক্ষে, আমরা তা-ই করেছিলেন. সুতরাং যাইহোক, আমরা কি হয় এখানে তুলনা? শ্রোতা: J প্লাস 1. Andi Peng: ঠিক. এবং তারপর আপনি সেট করতে চান চলুন J প্লাস 1 পাশাপাশি সমান আপনার সর্বনিম্ন. তাই আমি সত্যিই দ্রুত যে মাধ্যমে গিয়েছিলাম. আপনাকে বলছি বুঝতে না কেন এটা J প্লাস 1 এর? ঠিক আছে. আপনার অ্যারের মধ্যে, তাই মাধ্যমে আপনার প্রথম পাস, আপনার লুপ জন্য, int জন্য আমি 0 সমান, এর মাত্র দিন এই এখনো পরিবর্তন করা হয় নি অনুমান. আমরা সম্পূর্ণভাবে একটি অ্যারে আছে, মাত্র চার পাঁচমিশালী উপাদান, ডান? সুতরাং আমরা আমি 0 সমান আরম্ভ করতে চান. আর আমি যাচ্ছে শুধু এই লুপের মাধ্যমে চালানো. আর তাই প্রথম পাস, আমরা চলুন "মিনিট" নামক একটি পরিবর্তনশীল আরম্ভ করার যে এটাও একটা কারণ, আমি সমান আমরা একটি সর্বনিম্ন মূল্য আছে না. সুতরাং যে পাশাপাশি 0 বর্তমানে সমান. এবং তারপর আমরা মধ্য দিয়ে যেতে চলুন. এবং আমরা আবার পুনরুক্তি করতে চান. এখন আমরা পেয়েছি যে তা আমাদের সর্বনিম্ন আমরা মাধ্যমে পুনরুক্তি করতে চান, হয় তুলনা যদি আবার সঠিক, দেখতে? সুতরাং J, এখানে, যাচ্ছে সমান আমি, 0 যা. এবং তারপর যদি অ্যারের J প্লাস আমি যা কম, পরের ওভার যে এক কি আপনার বর্তমান সর্বনিম্ন চেয়ে মূল্য আপনি অদলবদল করতে চান, হয়. তাই শুধু আমরা করেছি বলে আসুন 2, 5, 1, 8, মত, পেয়েছিলাম. এই মুহূর্তে, আমি সমান 0 এবং জে 0 সমান. এবং যে আমাদের সর্বনিম্ন মান. অ্যারে-J তাহলে প্লাস i-- এক যদি তাই যে আমরা এ খুঁজছেন এক পরে , এটি আগে এক তার চেয়ে অনেক বেশী এটা সর্বনিম্ন হয়ে যাচ্ছে. তাই আমরা এখানে 5 দেখতে যে কম নয়. তাই এটি 5 নাও হতে যাচ্ছে. আমরা 1 ঠিক আছে, 2 তুলনায় কম দেখতে? তাই এখন আমরা আমাদের সর্বনিম্ন জানি যে 0, 1, 2 সূচক মান হতে যাচ্ছে. হ্যা? এবং তারপর আপনি, এখানে নিচে পেতে হলে আপনি সঠিক মূল্যবোধের অদলবদল করতে পারেন. তাই আপনাকে বলছি শুধু J জমিদারি ছিল যখন আগে, আপনি এক সময়ে খুঁজছেন ছিল না এরপর. আপনি এ খুঁজছেন সেটা একই মান, যা এটা শুধু কিছু করছেন না কেন হয়. যে সবাই জানার, কেন আমরা যে প্লাস আছে 1 প্রয়োজন? ঠিক আছে. এখন এটা করতে মাধ্যমে এর শুধু চালানো যাক নিশ্চিত কোড বাকি সঠিক. কেন যে ঘটছে? আহ, এটা ঠিক এখানে কমপক্ষে এর. আমরা ভুল মূল্য তুলনা করা হয়. ওহ না. ওহ হ্যাঁ, এখানে আমরা নিচে ছিল পাশাপাশি ভুল মান সোয়াপিং. আমরা আমি এবং জে এ খুঁজছেন সেটা. যারা আমরা নিচ্ছিলাম বেশী. আমরা আসলে অদলবদল করতে চান সর্বনিম্ন, বর্তমান সর্বনিম্ন, যাই হোক না কেন সঙ্গে এক বাইরে. আর আপনাকে বলছি নিচে দেখতে পারেন এখানে আমরা একটি সাজানো অ্যারের আছে. এটা শুধু কি ছিল আসলে যখন যে আমরা নিচ্ছিলাম আমরা তুলনা হয় মান, আমরা সঠিক মান এ খুঁজছেন ছিল না. আমরা একই দিকে তাকিয়ে ছিল এখানে, আসলে এটা সোয়াপিং না. আপনি পরের এক তাকান আছে এটা করতে এবং তারপর আপনি অদলবদল করতে পারেন. সুতরাং যে ধরনের ছিল কি আগে আমাদের কোড bugging. আর কি আমি এখানে কি সবকিছু হয় ডিবাগার আপনার জন্য কাজ করতে পারে আমি শুধু তা, বোর্ড, এটা সহজ কারণ চেষ্টা করার চেয়ে বরং দেখতে ডিবাগার জুমইন. যে সবাই জানার? কুল. ঠিক আছে. আমরা যে বিষয়ে কথা সরানো যাবে asymptotic স্বরলিপি, যা বলার অপেক্ষা রাখে না শুধু একটি অভিনব উপায় এই প্রকারের সমস্ত রানটাইম. তাই আমি বক্তৃতায়, ডেভিড জানেন, রানটাইম উপর অক্ষত. এবং তিনি পুরো সূত্র মাধ্যমে গিয়েছিলাম এর রানটাইম নিরূপণ কিভাবে. যে সম্পর্কে কোন উদ্বেগ. আপনি কি সত্যিই জানতে আগ্রহী হলে যে কাজ করে কিভাবে, অধ্যায় পর আমার সাথে কথা বলতে দ্বিধা বোধ করবেন না. আমরা ভিতর দিয়ে হেটে যেতে পারেন একসঙ্গে সূত্র. কিন্তু সব আপনাকে বলছি সত্যিই আছে জানি এন 2 ওভার ছক যে হয় n ছক হিসাবে একই জিনিস. বৃহত্তম সংখ্যা কারণ, সূচক, সবচেয়ে বৃদ্ধি. আর তাই আমাদের উদ্দেশ্যে, আমরা যত্নশীল সব ক্রমবর্ধমান যে দৈত্য সংখ্যা. তাই কি ভাল ক্ষেত্রে হয় নির্বাচন সাজানোর রানটাইম? আপনি চলুন একটি তালিকা মাধ্যমে বারবার এবং তারপর মাধ্যমে বারবার যে তালিকার বাকি, কত বার আছে আপনি সম্ভবত যাচ্ছে সবচেয়ে খারাপ ক্ষেত্রেই এ যদি ভাল, মাধ্যমে চালানো sorry--? হয়ত ভাল প্রশ্ন জিজ্ঞাসা, খারাপ ক্ষেত্রে কি নির্বাচন সাজানোর রানটাইম. শ্রোতা: n ছক. Andi Peng: এটি এন অধিকার, ছক আছে. এই ভালো হয় তাই একটি সহজ উপায় মনে করতে, আপনি loops জন্য নেস্টেড দুটি আছে যে কোনো সময়, n ছক হতে যাচ্ছে. আপনি না শুধুমাত্র কারণ আবার মাধ্যমে চলমান, আপনি ফিরে যেতে হবে কাছাকাছি এবং এটি মাধ্যমে চালানো আবার ভাষার মান জন্য ভিতরে. যে ক্ষেত্রে, আপনি এন চালাচ্ছেন বার এন, দুঃখিত হচ্ছে ÑÑ যা, ছক nn বার, n ছক সমান, যা. এবং সাজানোর একটি বিট অর্থে অনন্য এটা এই তাহলে ব্যাপার না যে মান যাতে ইতিমধ্যেই আছে. এটা এখনও কোন পথে মাধ্যমে চালানো যাচ্ছে. এর ঠিক এই 1, 2, 3, 4 ছিলাম. তথাপি এটি ছিল কিনা বা না অর্ডার, এটা এখনও মাধ্যমে স্থাপিত হবে এবং এখনও সর্বনিম্ন মূল্য চেক. এটি তৈরি করা হয়েছে হবে চেক একই সংখ্যা প্রতি একক সময়, এমনকি এটা যদি আসলে কিছু স্পর্শ করা হয়নি. যেমন একটি ক্ষেত্রে, ভাল এবং খারাপ রানটাইম আসলে সমতুল্য. তাই প্রত্যাশিত রানটাইম নির্বাচন সাজানোর, যা আমরা চিহ্ন দ্বারা নামকরণ থেটা, থেটা, এই ক্ষেত্রে, এছাড়াও n ছক হবে. এই তিনজনই n ছক হবে. কেন সবাই স্পষ্ট রানটাইম n ছক হয়? ঠিক আছে. তাই আমি শুধু দ্রুত চালানো যাচ্ছে না বিশৃঙ্খলভাবে বাকি মাধ্যমে. জন্য এলগরিদম বাবল, মনে sort-- এই প্রথম এক ছিল ডেভিড বক্তৃতায় উপর গিয়েছিলাম. মূলত, আপনি ধাপে সম্পূর্ণ তালিকা মাধ্যমে এবং আপনি শুধু আপনার swap-- একটি সময়ে দুটি সুবিধাগুলি তুলনা করুন. আর এক, যদি বেশী থাকে আপনার চেয়ে শুধু তাদের অদলবদল. এই বৃহত্তর সুতরাং, যদি আপনি অদলবদল হবে. আমি ডান এখানে অফিসিয়াল পেয়েছেন. তাই আসুন শুধু আপনি 8, 6, 4, 2 ছিল বলা যাক. আপনি 8 এবং 6 তুলনা চাই. আপনি তাদের অদলবদল করতে হবে চাই. আপনি 8 এবং একটি 4 তুলনা হবে. আপনি তাদের অদলবদল করতে হবে চাই. আপনি 8 অদলবদল থাকে এবং 2, সেইসাথে তাদের পরিবর্তন. যেমন একটি অর্থে সুতরাং, আপনি দেখতে পারেন একটি সময় দীর্ঘ সময়কালে অকেজো, কিভাবে বুদ্বুদের মান ধরনের যা শেষ হয়, আমরা তা কেন কল বাবল সাজান. আমরা শুধু আবার মাধ্যমে চালানো হবে আমাদের দ্বিতীয় পাস, এবং আমাদের তৃতীয় পাস, এবং আমাদের চতুর্থ পাস. মূলত, বাবল সাজান শুধু রান আপনি কোন আরো বিনিময়সমূহ করতে না হওয়া পর্যন্ত. যে অর্থে তাই, এই মাত্র এটা জন্য সাধারণ pseudocode হয়. কোন উদ্বেগ, এই সব অনলাইন হতে হবে. আমরা আসলে এই পুনরালোচনা করা হবে না. আমরা শুধু একটি পাল্টা আরম্ভ 0 আরম্ভ করা হয় যে পরিবর্তনশীল. আর আমরা সম্পূর্ণ অ্যারে মাধ্যমে বারবার. আর একটি মান এই যদি হচ্ছে ÑÑ যদি মান, যে মূল্য তার চেয়ে অনেক বেশী আপনি তাদের অদলবদল চলুন. এবং তারপর আপনি ঠিক আছেন বর্তা যাচ্ছে. এবং আপনি গণনা করতে যাচ্ছেন. আর আপনি শুধু করছেন রাখতে যাচ্ছেন এই পাল্টা বেশী সময় যার মানে 0, চেয়ে প্রত্যেক সময় আপনি বিনিময় করা আছে, আপনি যেতে চান জানি ফিরে এবং আবার পরীক্ষা. আপনি যদি জানেন যে পর্যন্ত চেক রাখতে চান যে আপনি আর অদলবদল করতে হবে না. তাই সবচেয়ে ভাল এবং সবচেয়ে খারাপ কি আছে বুদ্বুদ সাজানোর জন্য runtimes? আর hint-- এই আসলে ভিন্ন অর্থে নির্বাচন সাজানোর থেকে এই দুটি উত্তর একই না হয়. এ ঘটতে পারে সে সম্পর্কে চিন্তা করুন একটি ক্ষেত্রে এটি আগে থেকেই সাজানো ছিল তাহলে. এবং আমার মনে হয় কি এটা যদি ঘটতে পারে ক্ষেত্রে যা এটা সাজানো যায়নি. এবং আপনি কি ধরনের চালাতে পারেন কেন মাধ্যমে যে ঘটছে. আমি 30 মত, বলছি দেব সেকেন্ডের যে আমার মনে হয়. ঠিক আছে. কেউ কি একটি অনুমান আছে বুদবুদ সাজানোর খারাপ ক্ষেত্রে রানটাইম? হ্যা. শ্রোতা: এটা, মত, এন বার হবে এন বিয়োগ 1 বা ওই জাতীয় কিছু? ভালো লেগেছে, এটি সঞ্চালিত হয় প্রতিটি সময়, এটা একটি swap 'র কম, মত, ঠিক যাই হোক না কেন যে এটা ছিল. Andi Peng: হ্যাঁ, তাই আপনি একেবারে ঠিক. আর এই একটি ক্ষেত্রে যা হয় আপনার উত্তর আসলে আরো জটিল ছিল একটির আমরা দিতে হবে. তাই এটা আমি run-- যাচ্ছে এখানে এই সব মুছে দিতে চলেছে. সবাই ভাল? আমি এই মুছে দিতে পারেন? ঠিক আছে. আপনি এন মাধ্যমে চালানো চলুন বার প্রথমবার, তাই না? তাঁরা মাধ্যমে চালানো চলুন এন বিয়োগ 1 সেকেন্ড সময়, ঠিক আছে? এবং তারপর আপনি রাখতে যাচ্ছেন এন খনি 2, ইত্যাদি ইত্যাদি, যাচ্ছে. ডেভিড যেখানে একটি বক্তৃতা, এই করেনি, আপনি ঐ সমস্ত মান আপ যোগ করা হলে, আপনি কিছু যে পেতে করার মত yeah-- মূলত শুধু কমিয়ে দেয় যা 2, ওভার এন নিচে ছক. আপনি একটি পেতে যাচ্ছেন সেখানে অদ্ভুত ভগ্নাংশ. আর তাই শুধু জানি যে এন সবসময় ছক ভগ্নাংশ অগ্রগণ্য. আর তাই এই ক্ষেত্রে, খারাপ রানটাইম n ছক হবে. এটা সাজানো ছিল অর্ডার, আপনি কি মনে করেন অদল-বদলের কাজটি প্রতি একক সময় করতে হবে. সম্ভাব্য কী হবে, সেরা ক্ষেত্রে রানটাইম? তালিকায় আগে থেকেই ছিল, শুধু বলে চলুন শুরু করা যাক যাতে, রানটাইম কি হবে? শ্রোতা: এন. Andi Peng: এটা ঠিক, এন. আর কেনই বা এটি এন হয়? শ্রোতা: আপনি কারণ শুধু প্রতিটি একবার পরীক্ষা আছে. Andi Peng: ঠিক. সম্ভাব্য সর্বোত্তম রানটাইম তাই এই তালিকায় আগে থেকেই ছিল যদি সাজানো, এর 1, 2, 3 বলা যাক 4-- আপনি শুধু মধ্য দিয়ে যেতে হবে, আপনি, পরীক্ষা হবে আপনি ওহ, তারা সব প্যান, দেখতে হবে. আমি অদলবদল করতে হত না. আমি কাজ করছি. সুতরাং যে ক্ষেত্রে, এটা ঠিক এর n বা ধাপের সংখ্যা আপনি শুধু প্রথম তালিকায় চেক করা ছিল. এবং পরে, আমরা এখন আঘাত সন্নিবেশ সাজানোর, যেখানে অ্যালগরিদম ডিভাইড মূলত হয় এটি একটি সাজানো এবং পাঁচমিশালী অংশ মধ্যে. এবং তারপর একের পর এক, পাঁচমিশালী মান তাদের উপযুক্ত ঢোকানো তালিকার শুরুতে অবস্থানের. সুতরাং উদাহরণস্বরূপ, আমরা একটি আছে 3 তালিকা, 5, 2, 6, 4 আবার. আমরা এটা বর্তমানে যে জানেন পাঁচমিশালী আমরা শুধু করেছি কারণ এটি এ খুঁজছেন শুরু. আমরা দেখব এবং আমরা জানি যে প্রথম মান, ডান সাজানো হয়? আপনি শুধুমাত্র একটি অ্যারের খুঁজছেন আকার এক, যদি আপনি এটি সাজানো যে জানেন. তখন আমরা জানি যে অন্য চার পাঁচমিশালী হয়. আমরা মধ্য দিয়ে যেতে এবং আমরা যে মান দেখতে. চল যাই. 5 এর যে মান দেখুন? আমরা এটা কটাক্ষপাত. আমরা 3 এটি তুলনা. আমরা এটা তার চেয়ে অনেক বেশী জানি যে 3, তাই আমরা যে সাজানো যে জানেন. তাই এখন আমরা জানি যে প্রথম দুই সাজানো এবং গত তিন না করাই বাঞ্ছনীয়. আমরা 2 কটাক্ষপাত. আমরা প্রথম 5 সঙ্গে এটি পরীক্ষা. এটা 5 এর চেয়ে কম? তা না হয়. সুতরাং আমরা নতমুখ রাখা আছে. তারপর আপনি 3 বন্ধ 2 পরীক্ষা. এটা এর চেয়ে কম? না. তাই আপনি যদি একটি 2 সন্নিবেশিত করা হয়েছে জানি সামনে মধ্যে এবং 3 ও 5 উভয় আউট push করা আছে. 6 এবং 4 আবার এই কাজ. আর আমরা শুধু, মূলত চেক রাখা আমরা শুধু পরীক্ষা, যেখানে, চেক. এবং এটা সঠিক যে না হওয়া পর্যন্ত অবস্থান, আমরা ধরনের মাত্র সঠিক অবস্থানে সেটিকে সন্নিবেশ, যা তা নামে যেখান থেকে এসেছিলেন হয়. সুতরাং যে শুধু অ্যালগরিদম, pseudocode সহজাতভাবে ধরনের, আমরা বাস্তবায়ন করবে কিভাবে একটি সন্নিবেশ সাজান. Pseudocode এখানে. এটা সব অনলাইন. কোন উদ্বেগ আপনাকে বলছি হয় তাহলে এই কপি করার চেষ্টা করছে. তাই আবার, একই question-- কি ভাল এবং খারাপ রানটাইম হবে সন্নিবেশ সাজানোর জন্য? এটা শেষ প্রশ্নের অনুরূপ. আমি 30 মত, বলছি দেব সেকেন্ড পাশাপাশি এই সম্পর্কে চিন্তা. কেউ করতে চান না ঠিক আছে আমার খারাপ রানটাইম দিতে? হ্যা. শ্রোতা: n ছক. Andi Peng: n ছক হচ্ছে. আর কেনই বা n ছক হয়? শ্রোতা: এর মধ্যে কারণ বিপরীত ক্রমে, আপনি হচ্ছে ÑÑ যা, এন বার মধ্য দিয়ে যেতে এন Andi Peng: হাঁ, ঠিক. বুদ্বুদ সাজানোর হিসাবে তাই একই জিনিস. এই তালিকা করা হয় তাহলে ক্রম সাজানো, আপনি আছেন প্রথম একবার পরীক্ষা করতে যাচ্ছেন. এবং তারপর সাথে ভাষার অতিরিক্ত মূল্য, আপনি আছেন আছে যাচ্ছে বিরুদ্ধে এটি পরীক্ষা করতে ডান প্রতিটি একক মান? আর তাই পুরাপুরি, আপনি করতে যাচ্ছেন একটি পা Pass বার অন্য এন, যা পাস n ছক. কি সেরা কেস সম্পর্কে কি? হ্যা. শ্রোতা: এন বিয়োগ 1, কারণ প্রথম এক ইতিমধ্যে ছক. Andi Peng: সুতরাং, বন্ধ. উত্তর আসলে এন হয়. প্রথমটি হল, যখন কারণ সাজানো, এটা আসলে না পারে আমরা শুধু এ, lucked আউট যে উদাহরণস্বরূপ, যে 2 ক্ষুদ্রতম সংখ্যা হতে ঘটেছে. কিন্তু যে সবসময় হবে না. 2 ইতিমধ্যে শুরুতে সাজানো হয় তাহলে কিন্তু আপনি, চেহারা এবং এখানে একটি 1 আছে 1 এটা আচমকা যাচ্ছে. এবং এটি শেষ করতে যাচ্ছে আপ পথে নম্বর পজিশনে হচ্ছে. , শ্রেষ্ঠ কেস দৃশ্যকল্প মধ্যে তাই এটা আসলে শুধু এন হতে যাচ্ছে. যদি আপনি 1, 2, 3, 4, 5, 6, 7, 8, আপনি আছেন মাধ্যমে চালানো যাচ্ছে যে সমগ্র তালিকায় একবার সবকিছু ঠিক আছে কিনা তা পরীক্ষা করার জন্য. চলমান প্রত্যেককে স্পষ্ট পাশাপাশি নির্বাচনের বার? আমি মাধ্যমে যাচ্ছি জানি এই সত্যিই দ্রুত. কিন্তু আপনি যদি জানেন যে জানেন সাধারণ ধারণা, আপনি ভাল হওয়া উচিত. ঠিক আছে. তাই আমি ঠিক মত, হয়তো বলছি দেব, একটি মিনিট আপনার প্রতিবেশীদের সাথে কথা বলতে কি শুধু কিছু প্রধান পার্থক্য প্রকারের এই ধরনের মধ্যে. আমরা যে শীঘ্রই উপর যাবেন. শ্রোতা: ঠিক আছে, ওহ. Andi Peng: হ্যা. ঠিক আছে. কুল, এর একটি শ্রেণী হিসেবে reconvene যাক. ঠিক আছে. তাই এই ছিল ধরনের একটি অর্থে সবিস্তার প্রশ্ন যে তাদের উত্তর প্রচুর আছে. এবং আমরা সংক্ষেপে তাদের কিছু উপর যাবেন. আমি শুধু আপনাকে বলছি পেতে চেয়েছিলেন পৃথকীকৃত সে সম্পর্কে চিন্তা বিশৃঙ্খলভাবে সব তিন ধরনের. তখন আমি বললাম, এছাড়াও, একটি মহান শোনা কি সাজান একত্রীকরণ question--? বড় প্রশ্ন, যে কারণ কি আমরা পরের আচ্ছাদন করছি. সুতরাং সাজানোর একত্রীকরণ যে ফাংশন এক সাজান খুব ভিন্নভাবে অন্যান্য প্রকারের থেকে. আপনাকে বলছি see-- পারেন ডেভিড যে ডেমো কি হয়নি তিনি সব শান্ত ছিল যেখানে একত্রীকরণ কিভাবে দেখা গোলমালের সাজান অসীম, মত, দৌড়ে অন্য দুটি ধরনের তুলনায় দ্রুততর? ঠিক আছে. সুতরাং যে একত্রীকরণ কারণ এর সাজান যে ডিভাইড কার্যকরী এবং আমরা করেছি যে ধারণা বশীভূত বক্তৃতায় অনেক বিষয়ে কথা বলত. আমরা কাজ করতে চাই যে অর্থে স্মার্ট, আপনি বিভক্ত করা, না কঠিন এবং সমস্যার বশীভূত, এবং তাদের বিরতি নিচে, এবং তারপর, তাদের একত্রে ভাল জিনিস সবসময় এরকম. একত্রীকরণ যে ভাবে তাই সাজান মূলত কাজ করে এটি একটি ভাগ যে হয় অর্ধেক পাঁচমিশালী অ্যারে. এবং তারপর এটা অ্যারে দুই অর্ধেক পেয়েছিলাম. আর এটা শুধু ঐ দুটি অর্ধ অসুস্থ. এটা শুধু যে, অর্ধেক বিভাজক রাখে অর্ধেক, অর্ধেক সবকিছু সাজানো না হওয়া পর্যন্ত এবং তারপর পৌনঃপুনিকভাবে এটি সব একসঙ্গে রাখে. সুতরাং যে সত্যিই বিমূর্ত. সুতরাং এই pseudocode শুধুমাত্র একটি বিট হয়. যে জানার এটি চলমান পথ? সুতরাং আপনি একটি আছে যাক এন উপাদানের অ্যারের, ডান? এন 2 চেয়ে কম হয়, তাহলে আপনি আসতে পারেন. কারণ আপনি জানেন যে আছে কিনা শুধুমাত্র এক জিনিস, এটা সাজানো হবে. অন্যথায়, আপনি বাম অর্ধেক, এবং তারপর আপনি ডান অর্ধেক বাছাই, এবং তারপর আপনি একত্রীকরণ. যে সত্যিই সহজ মনে হচ্ছে, যখন সুতরাং, বাস্তবে, এটা সম্পর্কে চিন্তা অনুমোদিত ধরনের. আপনি ভালো থাকেন কারণ, ভাল, যে ধরনের নিজেই চলমান. রাইট? এটা নিজেই চলমান. সুতরাং যে অর্থে, ডেভিড স্পর্শ বর্গ মধ্যে recursion উপর. এবং যে একটি ধারণা আমরা আরো সম্পর্কে আলোচনা করব. এটা এই যে, এই দুটি লাইন এখানে, আসলে শুধু প্রোগ্রাম এটা বলার নিজেই চালাতে বিভিন্ন ইনপুট সঙ্গে. তাই বরং নিজেই চালাতে চেয়ে n উপাদান সম্পূর্ণতা, আপনি সেটিকে ভেঙ্গে যাবে বাম এবং ডান অর্ধেক অর্ধেক এবং তারপর আবার এটি চালানোর জন্য. এবং তারপর আমরা, দৃশ্যত এটা তাকান করব আমি চাক্ষুষ শিক্ষার্থী নই, কারণ. এটা আমার জন্য ভাল কাজ করে. তাই আমরা এখানে একটি চাক্ষুষ উদাহরণ তাকান করব. ছয় এর আমরা একটি অ্যারে আছে বলে উপাদান, 3, 5, 2, 6, 4, 1, সাজানো না. ঠিক আছে, এই পৃষ্ঠায় একটি অনেক আছে. আপনাকে বলছি তাকান পারেন, তাই যদি এখানে প্রথম ধাপে, 3, 5, 2, 6, 4, 1, আপনি অর্ধেক এটি বিভক্ত করতে পারেন. আপনি 3, 5, 2, 6, 4, 1 আছে. আপনি এই আপনি aren't-- জানি যে তারা সাজানো বা না থাকেন তাহলে জানি না, তাই আপনি অর্ধেক, তাদের নিচে ভঙ্গ রাখা, অর্ধেক, অর্ধেক, অবশেষে পর্যন্ত, আপনি শুধুমাত্র একটি উপাদান আছে. আর এক উপাদান সবসময় সঠিক, সাজানো হয়? তাই আমরা জানি যে 3, 5, 2, 4, 6, 1, নিজেরাই, সাজানো হয়. আর এখন আমরা তাদের একসঙ্গে ফিরে লাগাতে পারেন. সুতরাং আমরা 3, 5 জানি. আমরা চাই যারা একত্রে. আমরা যে সাজানো জানেন. এখনও আছে 2 এর. আমরা একসাথে 4 ও 6 লাগাতে পারেন. আমরা, যে সাজানো যে জানেন তাই আমরা একসাথে যে করা. আর 1 আছে. এবং তারপর আপনি শুধু তাকান এখানে ডান এই দুই অর্ধেক. আপনি 3, 5, 2, 2, 3, 5 আছে. আপনি শুধু তুলনা করতে পারেন সবকিছু শুরু হয়. আপনি এই সাজানো জানি যে কারণ এবং আপনি যে সাজানো যে জানেন. আমি তখন আপনি এমনকি করতে হবে না 5 তুলনা, আপনি শুধু 3 সুবিধাগুলি তুলনা করুন. আর 2 তাই, 3 কম হয় আপনি 2 শেষ পর্যন্ত যেতে হবে জানি. ওইখানে একই জিনিস. 1 এখানে যেতে হবে. যখন আপনি যান এবং তারপর করা একসাথে ঐ দুটি মান, আপনি এই সাজানো হয় জানেন এবং আপনি যে সাজানো হয় যে জানেন. তারপর 1 এবং 2, 1 2 তুলনায় কম. 1 যে আপনি বলে এই প্রান্তে যেতে হবে এমনকি 3 বা 5 এ খুঁজছেন ছাড়া. এবং তারপর 4, আপনি ঠিক করতে পারেন তা এখানে সঠিক যায়, পরীক্ষা. আপনি 5 তাকান আছে না. 6 সঙ্গে একই জিনিস. আপনি জানেন 6-- এটা ঠিক যে যাচাই করা হবে না. আর তাই যে ভাবে, আপনি আছেন শুধু নিজেকে বাঁচান পদক্ষেপ অনেকটা আপনি তুলনা করছি. আপনি প্রতি তুলনা করতে হবে না অন্যান্য উপাদান বিরুদ্ধে উপাদান. আপনি শুধু তাদের বিরুদ্ধে তুলনা আপনার বিরুদ্ধে এটি তুলনা করতে চাইবে. সুতরাং যে একটি বিমূর্ত ধারণা ধরনের. কোন উদ্বেগ, এটা ঠিক নয় মোটামুটি ঠিক এখনো আপনি আঘাত. কিন্তু সাধারণত, এই হল কিভাবে একটি একত্রীকরণ সাজানোর কাজ. প্রশ্ন, দ্রুত প্রশ্ন, আমি উপর সরানো আগে? হ্যা. শ্রোতা: সুতরাং আপনি যে আপনি নিতে বললেন 1, এবং তারপর 4, এবং 6 এবং তাদের করা. সুতরাং those-- নেই না হয় আপনি তাদের এ খুঁজছেন না পুরো হিসাবে পৃথক উপাদান, যেমন? Andi Peng: হ্যা. তাই কি ঘটছে আপনি যে মূলত একটি ব্র্যান্ড নতুন অ্যারে তৈরি হয়. সুতরাং আপনি এখানে, আমি জানি যে আকার 3 দুই অ্যারে, ডান? তাই আপনি যদি জানেন যে আমার সাজানো অ্যারের ছয়টি উপাদান প্রয়োজন আছে. তাই আপনি শুধু একটি তৈরি মেমরি নতুন পরিমাণ. সুতরাং আপনি যে ধরনের মত আছেন , মেমরি অপব্যবহারে হচ্ছে কিন্তু যে কোন ব্যাপার না এটা এত ছোট কারণ. তাই আপনি যদি 1 তাকান এবং আপনি 2 তাকান. এবং আপনি 1 কম 2 পারে. তাই আপনি যদি 1 যেতে হবে জানি যে ঐ সব শুরুতে. এমনকি আপনি প্রয়োজন হবে না 3 ও 5 তাকান. তাই আপনি যদি 1 সেখানে যায় জানি. তারপর আপনি মূলত 1 চোয়াল বন্ধ. এটা আমাদের জন্য মৃত, মত. তারপর আমরা শুধু 2 আছে, 3, 5, এবং তারপর 4 এবং 6. এবং তারপর আপনি যে জানেন তুলনা 4 এবং 2, ওহ, 2 সেখানে যেতে হবে. সুতরাং আপনি 2 নিচে অকস্মাৎ, আপনি এটা বন্ধ চপ. অতএব আপনি শুধু 3 আছে এবং 4 ও 6 5. এবং আপনি এটা বন্ধ চপ রাখতে আপনি অ্যারের মধ্যে তাদের করা পর্যন্ত. শ্রোতা: তাই আপনি শুধু সবসময় আছেন [শ্রবণাতীত] তুলনা? Andi Peng: ঠিক. সুতরাং যে অর্থে, আপনি আছেন শুধু তুলনা, মূলত, অন্যান্য সংখ্যা বিরুদ্ধে এক নম্বর. এবং আপনি কি জানেন, কারণ এটা, আপনি সাজানো যে মাধ্যমে সন্ধান করতে হবে না সংখ্যার সকল. আপনি শুধু প্রথম এক তাকান আছে. এবং তারপর আপনি শুধু অকস্মাৎ করতে পারেন তাদের নিচে, আপনি জানেন, কারণ তারা অন্তর্গত করতে হবে যেখানে তারা অন্তর্গত. হ্যা. ভালো প্রশ্ন. এবং তারপর আপনি কোন একটি বিট উচ্চাভিলাষী, এই কোড তাকান বিনা দ্বিধায়. এই আসলে পেশীশক্তির আমরা একত্রীকরণ সাজানোর লিখতে হবে কিভাবে. এবং আপনি এটা খুব ছোট, দেখতে পারেন. পিছনে কিন্তু ধারনা এটা প্রশংসনীয় জটিল হয়. তাই আপনি যদি এই আউট আঁকার মত যদি মনে করেন আপনার হোমওয়ার্ক আজ রাতে, বিনা দ্বিধায়. ঠিক আছে. তাই দায়ূদ বক্তৃতায় এই উপর গিয়েছিলাম. সেরা ক্ষেত্রে কি হয় রানটাইম, খারাপ ক্ষেত্রে রানটাইম, একত্রীকরণ এবং সাজানোর আশা রানটাইম? কয়েক সেকেন্ডের মনে. এই বেশ কঠিন, কিন্তু ধরনের আপনি এটি সম্পর্কে স্বজ্ঞাত মনে করে. ঠিক আছে. শ্রোতা: খারাপ ক্ষেত্রে এন লগ এন? Andi Peng: ঠিক. আর কেনই বা তা যা n log n. শ্রোতা: এটা না কারণ এটি ব্যাখ্যা মূলকভাবে দ্রুত হয়ে তাই এটি যে একটি ফাংশন মত পরিবর্তে সহজভাবে এন হচ্ছে ছক বা কিছু? Andi Peng: ঠিক. তাই কারণ কেন এই রানটাইম এন লগ আপনি কি আছে কারণ এন ধাপগুলি সব করছেন? আপনি শুধু ডান, অর্ধেক এটি চপ করছেন? আর তাই আমরা করছেন যখন এরকম সব যে, লগ অর্ধেক একটি সমস্যা বিভাজক হয়, অর্ধেক, অর্ধেক, আরো অর্ধেক. আর যে অর্থে, আপনি যা করতে পারেন ধরনের রৈখিক মডেল নিষ্কাশন যে আমরা ব্যবহার করে থাকেন. আপনি চপ যখন কারণ অর্ধেক জিনিষ, এটি একটি পাসওয়ার্ড ভুলে গেছেন?. যে শুধু গাণিতিক এর এটা প্রতিনিধিত্বমূলক প্রণালী. এবং পরিশেষে, তাহলে শেষে, আপনি আছেন শুধু গত এক পাস মাধ্যমে উপার্জন ঠিক আছে, যাতে তাদের সব করা? এবং যাতে আপনি শুধু আছে যদি এক জিনিস পরীক্ষা, যে এন. তাই আপনি যে ধরনের আছেন দুটি একসঙ্গে গুন. আপনি যে চূড়ান্ত পেয়েছেন তাই এটা এন একটি লগ সাথে এখানে নিচে n জন্য পরীক্ষা এখানে আপ. আর আপনি সংখ্যাবৃদ্ধি তাদের, যে এন এন পাসওয়ার্ড ভুলে গেছেন?. তাই সবচেয়ে ভালো এবং খারাপ কেস ক্ষেত্রে এবং সব হল n log n প্রত্যাশিত. এটা অন্য সাজান মত এছাড়াও. এটা নির্বাচন সাজানোর মত এটা যে অর্থে কি ব্যাপার না আপনার তালিকায় এটি শুধু যাচ্ছে, হয় একই জিনিস প্রতি একক সময় করতে. ঠিক আছে. যদিও, আপনাকে বলছি দেখতে পারেন হিসাবে সুতরাং আমরা এন এর মাধ্যমে সর্বস্বান্ত করেছি যে প্রকারের ছক, এটা খুব কার্যকর নয়. এবং এমনকি এই এন লগ n হল সবচেয়ে বেশি কার্যকরী না. আপনাকে বলছি জানতে আগ্রহী হন, সাজান মেকানিজম আছে তারা যাতে কার্যকর হয় প্রায় মূলত ফ্ল্যাট রানটাইম. আপনি কিছু লগ n এর পেয়েছেন. আপনি পাসওয়ার্ড ভুলে গেছেন? কিছু লগ n এর পেয়েছেন. আমরা তাদের উপর স্পর্শ না এই মুহূর্তে এই ক্লাসে. কিন্তু আপনি যদি না জানতে আগ্রহী হলে, কি, google বিনা দ্বিধায় সবচেয়ে বেশি কার্যকরী বাছাই প্রক্রিয়া. আমি আছে, জানি না কিছু সত্যিই মজার বেশী, করার মত কিছু সত্যিই আছে মানুষ যে মজার বেশী. এবং যদি আপনি কিভাবে ভাবছি তারা কখনো যে চিন্তা. আপনি কিছু অতিরিক্ত আছে, তাই যদি google সময়, উপর, কিছু মজার উপায় কী যে পাশাপাশি লোক দক্ষ ways-- মানুষ বিশৃঙ্খলভাবে বাস্তবায়ন করতে সক্ষম হয়েছে. ঠিক আছে. আর এখানে শুধু একটি সহজ সামান্য চার্ট. আমি যে ব্যঙ্গ 0 আগে, আপনি সব জানেন আপনার রুমে সম্ভবত চেষ্টা করা হবে যে মুখস্থ. সুতরাং যে আপনাকে বলছি জন্য সেখানে চমৎকার. শুধু made-- যে যুক্তি দিতে ভুলবেন না কেন ঐ সংখ্যার ঘটছে ছিল. আপনি সবসময় হারিয়ে করছি, শুধু করতে নিশ্চিত করুন যে আপনি প্রকারের হয় কি জানেন. এবং আপনি এর মাধ্যমে চালানো যাবে আপনার মনের মধ্যে তাদের কেন ঐ জিনিসটা উত্তর যারা উত্তর হয়. ঠিক আছে. সুতরাং আমরা সরাতে চলুন অবশেষে, অনুসন্ধান করার জন্য, উপর. কারণ আপনাকে যারা যারা pset পড়া আছে, অনুসন্ধানের এছাড়াও অংশ এই সপ্তাহে এর সমস্যা সেট. আপনি বাস্তবায়ন করতে বলা হবে অনুসন্ধান দুই ধরনের. এক একটি রৈখিক অনুসন্ধান এবং এক একটি বাইনারি অনুসন্ধান করা হয়. তাই রৈখিক অনুসন্ধান মোটামুটি সহজ. আপনি শুধু উপাদান অনুসন্ধান করতে চান যদি আপনি এটি পেতে একটি তালিকা দেখতে. আপনি শুধু মাধ্যমে বারবার আছে. এবং এটা কিছু সমান হলে, আপনি সঠিক, তা আসতে পারে? কিন্তু এক সবচেয়ে আছেন যে নিয়ে কথা বলতে আগ্রহী বাইনারি অনুসন্ধান করা হয়, যা ঠিক আছে, হয় বিভক্ত করা এবং প্রক্রিয়া বশীভূত যা ডেভিড বক্তৃতায় প্রদর্শক ছিল. ফোন বই উদাহরণ মনে রেখো তিনি আপ আনয়ন রাখে যে, তিনি যে ধরনের লড়াই যে এক এই গত বছর একটি বিট, আপনি অর্ধেক সমস্যা বিভক্ত যেখানে, অর্ধেক, অর্ধেক, আবার এবং আবার, যদি আপনি যা খুঁজছেন তা খুঁজে না পাওয়া পর্যন্ত? এবং যদি আপনি পেয়েছেন পাশাপাশি যে রানটাইম. আর যেহেতু আপনি দেখতে পারেন, এটা উল্লেখযোগ্যভাবে আরো দক্ষ অনুসন্ধান অন্য কোনো ধরনের তুলনায়. তাই আমরা সম্পর্কে যেতে হবে যে ভাবে একটি বাইনারি অনুসন্ধান বাস্তবায়ন হয়, আমরা একটি অ্যারের ছিল, সূচক 0 থেকে 6, সাত উপাদান, আমরা right--, মাঝখানে সন্ধান করতে পারেন দুঃখিত, আমাদের প্রশ্ন তাহলে first-- আমরা প্রশ্ন জিজ্ঞাসা করতে চান তাহলে, না অ্যারে, 7 উপাদান থাকে একথাও ঠিক যে, মানুষের হচ্ছে, এবং হচ্ছে একটি ছোট অ্যারে যেমন, এটা আমাদের জন্য সহজ হ্যাঁ বলার. কিন্তু উপায় একটি বাইনারি বাস্তবায়ন অনুসন্ধান মাঝখানে দেখুন হবে. আমরা সূচক 3 হয় যে জানেন মাঝখানে, আমরা কারণ সাত উপাদান আছে জানি. কি 7 2 দ্বারা বিভক্ত? আপনি অতিরিক্ত 1 যে চোয়াল বন্ধ করতে পারেন. আপনি মাঝখানে 3 পেয়েছেন. তাই 7 সমান 3 অ্যারে? এটা ঠিক আছে, না হয়? কিন্তু আমরা চেক একটি দম্পতি করতে পারেন. 3 কম 7 তুলনায় বা এর অ্যারে 7 তার চেয়ে অনেক বেশী 3 অ্যারে? এবং আমরা তা কম 7 তুলনায় যে জানেন. সুতরাং আমরা জানি ওহ, এটা হবে, যে বাম অর্ধেক হবে না. আমরা এটা হতে হবে জানি ডান অর্ধেক, তাই না? তাই আমরা ঠিক অর্ধেক অ্যারের বন্ধ চপ করতে পারেন. আমরা এমনকি আছে না আর এটি তাকান. আমরা জানি যে কারণ আমাদের সমস্যা অর্ধেক আমরা উত্তর হল জানি আমাদের সমস্যা ডান অর্ধেক. তাই আমরা ঠিক এখন যে তাকান. তাই এখন আমরা তাকান বাকি কি মাঝখানে. সূচকের 5. আমরা আবার একই চেক করতে এবং আমরা এটি ছোট দেখতে. তাই আমরা যে বাম দিকে তাকিয়ে আছি. এবং তারপর আমরা যে চেক করুন. অ্যারে মান হয় 7 সমান সূচক 4? ইহা. সুতরাং আমরা সত্য ফিরে কারণ পারেন আমরা আমাদের তালিকায় মান পাওয়া. আমি মাধ্যমে গিয়েছিলাম উপায় আছে সবাই যে জানার জন্য? ঠিক আছে. আমি ভালো, হয়তো বলছি দেব তিন, চার মিনিটের জিনিসটা কিভাবে এই pseudocode করতে. তাই আমি একটি লিখতে আপনাকে জিজ্ঞাসা কল্পনা ফিরে যে ফাংশন বলা অনুসন্ধান () একটি মান, একটি বুলিয়ান মান, যে মত ছিল সত্য বা false-- আপনি যদি পাওয়া যায় নি সত্য মান, আপনি না করে থাকেন তাহলে মিথ্যা. এবং তারপর আপনি ছিল মান উত্তীর্ণ আপনি মান, মধ্যে খুঁজছেন সেটা যা অ্যারে ওহ, আমি স্পষ্টভাবে করা হয় ভুল জায়গায় যে. ঠিক আছে. সকল অবস্থাতেই, যে থাকতে হবে মান ঠিক করতে হয়েছে. এবং তারপর কোন int n সংখ্যা যে অ্যারের মধ্যে উপাদানের. কিভাবে আপনি চেষ্টা সম্পর্কে যেতে হবে যে সমস্যা pseudocode করতে? আমি আপনার মত বলছি দেব তিন মিনিট যে কাজ করতে. না, আমি only-- আছে মনে হয় হ্যাঁ, ঠিক আপ এখানে কেউ নেই. শ্রোতা: I Can? Andi Peng: হ্যাঁ, আমি তোমাকে পেয়েছিলাম. যে কাজ করছে? ঠিক আছে শান্ত হও. ঠিক আছে. ঠিক আছে বলছি, আমরা করছি এটি নিয়ন্ত্রিত যাচ্ছে. ঠিক আছে. সুতরাং আমরা এই সুদৃশ্য পেয়েছেন অনুমান এটি এন মান সঙ্গে সামান্য অ্যারে. আমি লাইন আঁকা হয়নি. কিন্তু আমরা কীভাবে তা করবেন এই লেখার চেষ্টা? কেউ করতে চান না আমার প্রথম লাইন দিতে? আপনি আমাকে দিতে চান এই pseudocode প্রথম লাইন. শ্রোতা: [শ্রবণাতীত] শ্রোতা: আপনি চাই চাই এর মাধ্যমে বারবার শ্রোতা: শুধু আরেকটি লুপ জন্য? শ্রোতা: --for. Andi Peng: সুতরাং এই এক একটি বিট চতুর. আপনি চান মনে করেন সম্পর্কে এই লুপ চলমান রাখতে এবং উপর আবার যখন পর্যন্ত? শ্রোতা: [শ্রবণাতীত] পর্যন্ত মান যে মান সমান হয়. Andi Peng: ঠিক. সুতরাং আপনি আসলে শুধু লিখতে পারেন আমরা আরও এটাকে সহজ করে. আমরা ঠিক ঠিক, যখন একটি লুপ করতে পারেন? তাই আপনি শুধু লুপ থাকতে পারে আমরা এটি একটি সময় যে জানেন. কিন্তু এই মুহূর্তে জন্য, আমি যাচ্ছি কি দিয়ে - "লুপ" বলতে? লুপ কি until-- আমাদের শেষ শর্ত? আমি এই কথা শুনে মনে হয়. আমি কেউ এটা বলতে শুনেছি. শ্রোতা: মূল্যবোধ মাঝখানে সমান. Andi Peng: এটা আবার বলতে. অথবা যতক্ষন না,: শ্রোতা মূল্য আপনি অনুসন্ধান করছেন জন্য মধ্যম মান সমান. Andi Peng: এটা সেখানে না তাহলে কি হবে? কেমন হয়, যদি আপনি অনুসন্ধান করছেন মূল্য এই অ্যারের মধ্যে আসলে নয়? শ্রোতা: আপনি 1 ফিরে. Andi Peng: কিন্তু আমরা কি চান না আমরা যদি একটি শর্ত আছে, যদি না হওয়া পর্যন্ত লুপ? হ্যা. শ্রোতা: শুধুমাত্র একটি মান আছে না হওয়া পর্যন্ত? Andi Peng: আপনি লুপ until-- তাই আপনি যে জানেন ঠিক আছে, একটি সর্বোচ্চ মূল্য আছে যাচ্ছে? আর আপনি চলুন জানি যে সঠিক একটি ন্যূনতম মান, আছে? এছাড়াও, যে এমন কিছু কারণ আমি আগে বলতে ভুলে গেছি যে এমন কিছু বিষয় বাইনারি অনুসন্ধান সম্পর্কে সমালোচনামূলক আপনার অ্যারের ইতিমধ্যেই সাজানো হয়. এরকম কোন উপায় নেই, কারণ এই তারা শুধু র্যান্ডম মান হন তাহলে. এক, যদি আপনি জানেন না অন্যান্য চেয়ে বড়, ঠিক আছে? তাই আপনি কি জানেন যে আপনার সর্বোচ্চ এবং আপনার মিনিট ঠিক আছে, এখানে আছেন? আপনি সামঞ্জস্য হতে যাচ্ছেন তাহলে আপনার মিনিট এবং mid-- আপনার সর্বোচ্চ এর ঠিক অনুমান করা যাক আপনার মধ্য মূল্য অধিকার এখানে হয় আপনি মূলত চলুন লুপ আপনার নূন্যতম না হওয়া পর্যন্ত ঠিক আছে, আপনার সর্বোচ্চ হিসাবে একই, বা সম্পর্কে আপনার সর্বোচ্চ আপনার সর্বনিম্ন হিসাবে একই নয়. রাইট? এটি ঘটে যখন কারণ, আপনি জানেন যে আপনি শেষ পর্যন্ত একই মান আঘাত করেছি. তাই আপনি যদি আপনার মিনিট পর্যন্ত লুপ করতে চান , কম বা ওহো চাচ্ছি সমান না কম বা তার সমান কম, সর্বোচ্চ around-- অন্যান্য উপায়. যে জানার হয়নি? আমি যে অধিকার পেতে কয়েক চেষ্টা করে নেন. কিন্তু লুপ আপনার সর্বোচ্চ মান পর্যন্ত মূলত প্রায় কম এর চেয়ে বড় বা আপনার নূন্যতম সমান, ডান? আপনি জানেন যে যখন আপনি converged থাকেন যে. শ্রোতা: যখন would আপনার সর্বোচ্চ মান হল সর্বনিম্ন কম হতে? Andi Peng: আপনি রাখতে পারবেন যদি , এটা সামঞ্জস্য যা আমরা যাচ্ছি কি এই কাজ করা. এটা কি অর্থপূর্ণ? নূন্যতম এবং সর্বোচ্চ শুধু আমরা সম্ভবত হয় পূর্ণসংখ্যার চান বর্তা তৈরি করতে আমরা খুঁজছেন যেখানে ট্র্যাক. অ্যারে বিদ্যমান কারণ নির্বিশেষে আমরা কি করছেন. ভালো লেগেছে, আমরা আসলে শারীরিকভাবে না হন ঠিক আছে, অ্যারে কাটছে? আমরা শুধু সামঞ্জস্য করছি যেখানে আমরা খুঁজছেন. এটা কি অর্থপূর্ণ? শ্রোতা: হ্যাঁ. Andi Peng: ঠিক আছে. যে আমাদের জন্য লুপ শর্ত থাকে, তাহলে আমরা এই লুপ এর ভিতরে কি চাও? আমরা কি অনুপস্থিত হতে যাচ্ছে? তাই এই মুহূর্তে, আমরা পেয়েছেন একটি সর্বোচ্চ এবং একটি সর্বনিম্ন, ঠিক আছে, সম্ভবত এখানে কোথাও আপ তৈরি. আমরা সম্ভবত চান চলুন ডান মধ্যাংশ এটি? কিভাবে আমরা হতে যাচ্ছি মাঝখানে খুঁজে পেতে সক্ষম? Mathematical-- কী শ্রোতা: সর্বোচ্চ প্লাস 2 দ্বারা বিভক্ত মিনিট. Andi Peng: ঠিক. এটা কি অর্থপূর্ণ? আর আপনাকে বলছি কেন আমরা দেখতে না আমরা এই কেন শুধু use-- করা হয়নি পরিবর্তে করছেন শুধু এন 2 দ্বারা বিভক্ত? এন একটি মান, কারণ এটা যে একই থাকার যাচ্ছে. রাইট? কিন্তু আমরা আমাদের সর্বনিম্ন সমন্বয় হিসাবে এবং সর্বাধিক মান, তারা পরিবর্তন করতে যাচ্ছেন. এবং এর ফলে আমাদের মাঝখানে খুব পরিবর্তন করতে যাচ্ছে. আমরা চাই সুতরাং যে কেন এখানে এই অধিকার কি. ঠিক আছে. এবং তারপর, এখন যে আমরা হাঁ our-- পেয়েছি. শ্রোতা: শুধু একটি দ্রুত question-- যখন আপনি সর্বনিম্ন এবং সর্বোচ্চ বলে, আমরা অভিমানী হয় এটি আগে থেকেই সাজানো? Andi Peng: হাঁ, যে আসলে একটি একটি বাইনারি অনুসন্ধান জন্য পূর্বশর্ত, আপনি যে এটা সাজানো জানতে. কেন সাজান যা, আপনি লিখতে আপনার সমস্যা আপনার বাইনারি অনুসন্ধান আগে সেট. ঠিক আছে. তাই এখন আমরা যেখানে আমাদের মিডপয়েন্ট জানেন যে , কি আপনি এখানে কাজ করতে চান না? শ্রোতা: আমরা তুলনা করতে চান অন্য এক যে. Andi Peng: ঠিক. তাই আপনি তুলনা করতে যাচ্ছেন মান মধ্য, ডান? আর যে তা বলতে না আমাদের আমরা তুলনা যখন? আমরা কি পরে কাজ করতে চান না? শ্রোতা: মান বড় হয় মধ্য তুলনায়, আমরা তা কেটে চান. Andi Peng: ঠিক. মূল্য বৃহত্তর যদি তাই মধ্য তুলনায়, আমরা করছি এই পরিবর্তন করতে চান যাচ্ছে সর্বনিম্ন ও Maxes, ডান? কি আমরা পরিবর্তন চাই না? আমরা জানি, তাই যদি মান কোথাও এখানে, আমরা পরিবর্তন করতে পারি না? আমরা আমাদের পরিবর্তন করতে চান নূন্যতম অধিকার, মধ্য হতে? এবং তারপর অন্য, এটা এই যে যদি অর্ধেক, কি আমরা পরিবর্তন চাই না? শ্রোতা: আপনার সর্বোচ্চ. Andi Peng: হ্যা. এবং তারপর আপনি শুধু চলুন , ডান looping রাখতে? এখন যেহেতু, এক পুনরাবৃত্তির পর মাধ্যমে, আপনি এখানে একটি সর্বোচ্চ পেয়েছেন. এবং তারপর আপনি একটি মধ্য পুনঃগণনা পারেন. এবং তারপর আপনি তুলনা করতে পারেন. আর আপনি বর্তা চলুন মিনিট এবং Maxes পর্যন্ত মূলত দিয়েছেন. আপনি যে জানেন এবং যে যখন আপনি এটা শেষ আঘাত করেছি. আর যদি আপনি তা খুঁজে পাওয়া যাচ্ছে অথবা আপনি যে সময়ে না আছে. এই সবাই জানার জন্য? ঠিক আছে. এটা বেশ গুরুত্বপূর্ণ আপনি হবে, কারণ আপনার কোড আজ রাতে এই লিখতে. কিন্তু আপনি যদি না একটি প্রশংসনীয় ভাল আছে আপনি কাজ করা উচিত কি অর্থে, কোনটা ভাল. ঠিক আছে. সুতরাং আমরা সাত সম্পর্কে পেয়েছেন মিনিট অধ্যায় বাকি. তাই আমরা যে বিষয়ে কথা বলতে যাচ্ছেন আমরা কাজ করব যে এই pset. তাই pset দুটি অর্ধ বিভক্ত করা হয়. প্রথমার্ধে জড়িত একটি খুঁজে বাস্তবায়ন যা আপনি একটি রৈখিক অনুসন্ধান লিখুন, একটি বাইনারি অনুসন্ধান, এবং একটি বাছাই আলগোরিদিম. তাই এই প্রথম একটি pset যেখানে সময় বলা কি আমরা আপনাকে বলছি প্রদান করা হবে বন্টন কোড, কোড, যা আমরা প্রাক লিখিত আছে যে, কিন্তু শুধু বন্ধ কিছু টুকরা বাকি জন্য আপনার লেখার শেষ করতে. আপনি যদি এই তাকান যখন আপনাকে বলছি, তাই কোড, আপনি কি সত্যিই ভয় পেতে পারে. আপনি, Ahh, আমি চাই শুধু করছি যে কি করছেন জানি না, আমি চাই, যে মনে হয়, জানি না তাই জটিল, Ahh, শিথিল. ঠিক আছে. বৈশিষ্ট পড়ুন. বৈশিষ্ট ঠিক আপনাকে ব্যাখ্যা করতে হবে এই প্রোগ্রামের সব কি করছেন. উদাহরণস্বরূপ, generate.c একটি প্রোগ্রাম যে আপনার pset সাথে আসতে হবে. আপনি আসলে এটা স্পর্শ আছে, কিন্তু না আপনি এটা করছে তা বুঝতে হবে. আর generate.c, এটা করছে সব হয় হয় র্যান্ডম সংখ্যার উৎপাদিত অথবা আপনি একটি ভালো, এটি একটি বীজ দিতে পারেন যে সময় লাগে prearranged সংখ্যা, এবং এটা আরো সংখ্যা উৎপন্ন করা. সুতরাং একটি নির্দিষ্ট উপায় আছে generate.c বাস্তবায়ন যা আপনি শুধু সংখ্যার একটি গুচ্ছ করতে পারেন আপনি আপনার অন্য পদ্ধতি উপর পরীক্ষা করার জন্য. তাই আপনি যদি চান, এর জন্য উদাহরণস্বরূপ, আপনার খুঁজে পরীক্ষা, আপনি generate.c চালানোর চায়, সংখ্যার একটি গুচ্ছ উৎপন্ন এবং তারপর আপনার সাহায্যকারী ফাংশন চালানো. আপনি যেখানে আপনার সাহায্যকারী ফাংশন আসলে শারীরিকভাবে কোড লেখা. এবং একটি লাইব্রেরী ফাইল হিসাবে সাহায্যকারী মনে জানতে পারেন যে আহ্বান করা হয় লেখার. তাই helpers.c মধ্যে এবং, আপনি পাবেন অনুসন্ধান এবং বাছাই না. এবং তারপর মূলত আপনাকে চলুন শুধু একসাথে তাদের সব করা. কিভাবে বৈশিষ্ট আপনাকে বলতে হবে কমান্ড লাইনে যে করা. আর আপনি কি না তা পরীক্ষা করতে সক্ষম হবেন বা না আপনার বাছাই এবং অনুসন্ধান কাজ করছে. কুল. কেউ ইতিমধ্যে শুরু হয়েছে এবং সম্মুখীন সমস্যা বা প্রশ্ন তারা এই সঙ্গে এই মুহূর্তে আছে? ঠিক আছে. শ্রোতা: অপেক্ষা করুন. আমার একটা প্রশ্ন আছে. Andi Peng: হ্যা. শ্রোতা: তাই আমি শুরু করছেন helpers.c মধ্যে রৈখিক অনুসন্ধান এবং এটি সত্যিই কাজ করা হয়নি. কিন্তু পরে, আমি মনে করি আমরা শুধু খুঁজে পাওয়া তা মুছে দিন এবং বাইনারি অনুসন্ধান করতে হবে. এটা কাজ করে না যদি এটা কোন ব্যাপার না? Andi Peng: সংক্ষিপ্ত উত্তর নেই. কিন্তু যেহেতু আমরা not-- আছেন শ্রোতা: কিন্তু কেউ এর আসলে চেক. Andi Peng: আমরা চেষ্টা করছি না দেখতে যাচ্ছে. কিন্তু আপনি সম্ভবত করতে চান নিশ্চিত করুন যে আপনার সন্ধানের কাজ করছে. আপনার রৈখিক যদি কারণ অনুসন্ধান কাজ করে না, তাহলে সম্ভাবনা আপনার বাইনারি হয় অনুসন্ধান পাশাপাশি কাজ করতে যাচ্ছে না. আপনি একই আছে, কারণ তাদের উভয়ের মধ্যে যুক্তিবিজ্ঞান. আর না, এটা কোন ব্যাপার না. সুতরাং শুধুমাত্র লোক আপনি চালু করব সাজান এবং বাইনারি অনুসন্ধান হয়. হ্যা. এবং এছাড়াও, বাচ্চাদের অনেক ছিল helpers.c কম্পাইল করার চেষ্টা করছে. আপনি আসলে অনুমতি দেওয়া হয় না যে কি, helpers.c কারণ একটি প্রধান ফাংশন নেই. আর তাই আপনি শুধুমাত্র উচিত আসলে কম্পাইল করা কল এটি কারণ, উৎপন্ন এবং এটি helpers.c এবং এটি মধ্যে ফাংশন. যে ডিবাগ তোলে তাই গুঁতা ব্যাথা. কিন্তু যে আমরা যা করতে হবে কি. শ্রোতা: আপনি ঠিক ঠিক, সব করতে? Andi Peng: আপনি ঠিক করতে পারেন হ্যা, সেইসাথে সব করতে. ঠিক আছে. সুতরাং যে কি পরিপ্রেক্ষিতে এটা pset আপনি সব কাজ করতে চাইছে. যদি আপনার কোন প্রশ্ন থাকে, তাহলে বোধ অধ্যায় পর আমাকে জিজ্ঞাসা বিনামূল্যে. আমি 20 মিনিটের মত, জন্য অপেক্ষা করে থাকব. আর হ্যা, আপনি pset এর সত্যিই যে খারাপ না. আপনাকে বলছি ঠিক করা উচিত. এই মাত্র নির্দেশাবলী অনুসরণ করুন. কাইন্ড কথাটি, একটা ধারনা আছে, কি উচিত ঘটছে করা এবং আপনাকে জরিমানা করা হবে. খুব ভয় পেও না. কোড একটি অনেক আছে ইতিমধ্যে সেখানে লেখা. যদি আপনি না খুব ভয় পেও না যে সব মানে কি বুঝতে. এটি একটি অনেক আছে, এটি সম্পূর্ণই সূক্ষ্ম. আর অফিস ঘন্টা আসা. আমরা আপনাকে একটি কটাক্ষপাত সাহায্য করব. শ্রোতা: অতিরিক্ত সঙ্গে ফাংশন, আমরা যারা সন্ধান করেন? Andi Peng: হ্যা, ঐ কোড আছে. 15 এর খেলা, অর্ধেক ইন এটা আপনার জন্য ইতিমধ্যে লেখা. সুতরাং যারা ফাংশন হয় ইতিমধ্যে কোড. হাঁ. ঠিক আছে. ওয়েল, ভাগ্য ভাল. এটা একটি ঘৃণ্য দিন. তাই আশা করছি আপনাকে বলছি খুব মনে হয় না ভিতরে থাকা এবং কোডিং সম্পর্কে খারাপ.