[موسیقی بجانے] ANDI پینگ: سیکشن کے ہفتے 3 میں خوش آمدید. تمام آنے کے لئے شکریہ، آپ لوگ، اس سے پہلے شروع ہونے کے وقت آج. ہم نے ایک اچھا، کم مل گیا ہے مباشرت گروپ نے آج. تو امید ہے کہ ہم سے ملے گی ختم، شاید، ابتدائی، تھوڑا سا آج جلدی. اتنی جلدی، کچھ ایجنڈا آج کے لئے اعلانات. ہم شروع کرنے سے پہلے، ہم ہیں صرف جانے کے لئے جا کچھ مختصر رسد مسائل، pset کے سوالات، debrief، اس طرح کی چیزیں. اور پھر ہم میں صحیح کودو گے. ہم GDB نامی ایک ٹھیک کرنے والا کھولتا استعمال کریں گے ہمارے کوڈ، debunking شروع جس میں ڈیوڈ دوسرے دن لیکچر میں بیان. ہم قسم کی چار اقسام جائیں گے. ہم بہت تیزی سے چلے جائیں گے وہ خوبصورت انتہائی رہے ہیں. لیکن جانتے ہیں کہ تمام سلائیڈوں اور ماخذ کوڈ ہمیشہ آن لائن ہیں. پس، اپنے مطالعہ میں، آزاد محسوس کرتے ہیں واپس جاؤ اور اس پر ایک نظر لے. ہم کے ذریعے جائیں گے asymptotic سنکیتن، جس صرف ایک پسند ہیں طریقہ ہے کہہ کے "runtimes اور،" ہم بڑی اے، ہے جہاں جس ڈیوڈ لیکچر میں بیان. اور ہم بھی ومیگا، ہے جس کم پابند رن ٹائم ہے. اور ہم تھوڑا سا زیادہ بات کریں گے میں گہرائی سے کس طرح ان کے کام کے بارے میں. اور آخر میں، ہم، بائنری تلاش چلے جائیں گے کیونکہ پہلے سے ہی ہے جو تم میں سے ایک بہت کچھ آپ کی psets میں glanced شاید جانتے ہیں کہ کہ آپ pset میں ہے کہ ایک سوال ہے. تو تم سب خوش ہو جائے گا ہم یہ آج احاطہ کرتا ہے کہ. اور آخر میں، کے مطابق آپ سیکشن کی رائے، میں نے اصل میں کے بارے میں 15 منٹ چھوڑ آخر صرف پر جانے کے لئے pset3 کی رسد، کوئی سوال، شاید ہدایت کا تھوڑا سا، اگر آپ، ہم پروگرامنگ شروع کرنے سے پہلے. تو کے ذریعے حاصل کرنے کی کوشش کریں بہت تیزی سے مواد. اور پھر ہم نے کچھ وقت خرچ کر سکتے ہیں pset کے لئے مزید سوالات لے. ٹھیک ہے. جلدی سے، تو صرف چند ہم نے پہلے اعلانات آج شروع. سب سے پہلے، کرنے کے لئے کا خیر مقدم آپ psets کے دو کے ذریعے. میں your-- ہاں، چلو پر ایک نظر لیا کہ ایک کے لئے تعریف کی ایک گول حاصل. اصل میں، مجھے سچ میں تھا بہت متاثر. مجھے تم لوگوں کے لئے پہلے pset درجہ بندی گزشتہ ہفتے اور تم لوگوں کو ناقابل یقین تھا. انداز نقطہ پر تھا چند تبصرے علاوہ. یقین ہے کہ آپ ہمیشہ مکمل کر چکا ہے اپنے کوڈ تبصرہ. لیکن آپ کی psets نقطہ پر تھے. اور اس کو برقرار رکھنے. اور اس کے لئے grader کے لئے اچھا ہے تم لوگوں کو ڈال رہے ہیں کہ دیکھیں اپنے انداز میں زیادہ سے زیادہ کی کوشش میں آپ کے کوڈ میں اور آپ کے ڈیزائن آپ کو دیکھنے کے لئے کے لئے ہم چاہتے ہیں کہ. تو میں نے میرا شکریہ ادا ساتھ گزر رہا ہوں TAS کے آرام کے لئے. تاہم موجود ہیں چند debrief سوالات میں صرف اس پر جانے کے لئے چاہتے ہیں دونوں میری زندگی بنا دے گا اور دیگر کی ایک بہت TAS 'تھوڑا سا آسان رہتا ہے. سب سے پہلے، میں نے محسوس کیا اس ماضی کے کتنے week-- پر check50 چل رہا ہے تم سے پہلے آپ کے کوڈ جمع کرائیں؟ ٹھیک ہے. تو سب check50 کر کیا جانا چاہئے، اصل میں ہم ایک راز because-- ہماری درست کے حصے کے طور check50 چلاتے ہیں آپ کے کوڈ کی جانچ کے لئے سکرپٹ. آپ کے کوڈ میں ناکام رہا ہے اگر ایسا ہے تو check50، تمام امکانات میں، یہ شاید جا رہا ہے کے ساتھ ساتھ ہمارے چیک ناکام. کبھی کبھی آپ لوگوں کو درست جواب ہے. کی طرح، لالچی میں، کچھ آپ صحیح تعداد ہے، آپ کو صرف کچھ اضافی چیزیں باہر پرنٹ. اور یہ کہ اضافی چیزیں اصل میں چیک ناکام ہو جاتا ہے، کمپیوٹر نہیں ہے کیونکہ واقعی اس کے لئے لگ رہا ہے کیا پتہ. اور تو یہ صرف، کے ذریعے چلایا جائے گا آپ کی پیداوار نہیں ہے کہ کو دیکھنے کے ہم جواب کی توقع ہے سے ملنے ہو، اور یہ غلط ہے کے موقع پر. اور میں ہوا جانتے ہیں کہ آپ مقدمات میں سے کچھ اس ہفتے. تو میں واپس اور دستی طور پر چلا گیا سب کے کوڈ regraded. اگرچہ مستقبل میں، ، اس بات کا یقین براہ مہربانی آپ چلا رہے ہیں کہ آپ کے کوڈ پر 50 کی جانچ پڑتال. یہ ضلعی حکومت کے لئے ایک درد کی طرح ہے کیونکہ regrade دستی واپس جانے کے لئے اور حاصل کرنے کے لئے ہر ایک کے لئے ہر ایک pset کے واحد، تھوڑا یاد مثال. تو میں نے کسی بھی پوائنٹس اتار نہیں کیا. مجھے شاید اتار لیا لگتا ہے ایک یا ڈیزائن کے لئے دو. اگرچہ مستقبل میں، اگر آپ، check50 میں ناکام رہے پوائنٹس لے جایا جائے گا درست کرنے کے لئے بند. مزید برآں، کی psets ہیں دوپہر میں جمعہ کی وجہ سے. میں نے ایک سات منٹ نہیں ہے ہم آپ کو دے کہ دیر رعایتی مدت. ہارورڈ وقت کے مطابق، انہوں نے کی اجازت دی کر رہے ہیں سات منٹ دیر سب کچھ کرنے کے لئے ہو. تو یہاں ییل میں، ہم کریں گے اس کے ساتھ ساتھ پر عمل پیرا. لیکن بہت زیادہ، 12:07 پر، اپنے pset میں نہیں ہے تو، اس کے دیر سے نشان لگا دیا گیا کیا جا رہا ہے. جبکہ تو یہ نشان لگا دیا گیا کے طور پر دیر، TA-- ہوں اب بھی آپ کی psets گریڈنگ کیا جا رہا. تو آپ کو اب بھی ایک گریڈ ظاہر دیکھیں گے. تاہم، میں جانتے ہیں کہ سمسٹر کے آخر، تمام دیر psets صرف ہو جائے گا خود کار طریقے سے کمپیوٹر کی طرف سے بھیجنا. ہم نے دو وجوہات کی بناء پر ایسا. ایک، کبھی کبھی ہم حاصل ڈین بہانے کی طرح، معذور، بعد میں اس پر میں نے ابھی تک کے بارے میں نہیں جانتے. تو ہم گریڈنگ کر رہے ہیں اس بات کو یقینی بنانے کے لئے پسند صرف اس صورت میں سب کچھ، کی طرح، میں ہوں ایک ڈین کی عذر لاپتہ. اور دوسری بات، میں رکھنا دماغ، اگر آپ اب بھی کر سکتے ہیں ایک pset کے چھوڑ کہ مکمل گنجائش پوائنٹس ہے. اور اس طرح ہم گریڈ کرنا چاہوں آپ psets کے تمام صرف اپنے دائرہ کار کی بات کو یقینی بنانے ہے کہ وہاں اور آپ کو ان کی کوشش کر رہے. یہ دیر ہو گئی ہے یہاں تک کہ اگر، آپ کو اب بھی کروں گا گنجائش پوائنٹس کے لئے کریڈٹ حاصل، مجھے لگتا ہے. کہانی ہے کی اتنی اخلاقی، بنانے یقینی بنائیں کہ آپ کی psets پر وقت میں ہیں. اور وہ وقت میں نہیں ہیں تو، یہ بہت اچھا نہیں ہے کہ معلوم ہے. جی ہاں، میں پر منتقل کرنے سے پہلے، کسی کو ہے pset کے رائے کے بارے میں کوئی سوال ہے؟ جی ہاں. سامعین: آپ کو ہم کہتے تھے psets کے ایک چھوڑ کر سکتے ہیں؟ ANDI پینگ: جی ہاں. تو نو کی psets مجموعی ہے سمسٹر کے دوران. اور آپ کی گنجائش ہے تو points-- تو گنجائش، صرف ہے بہت زیادہ، آپ کو کوشش کر رہے ہیں مسئلہ، آپ کو وقت میں ڈال رہے ہیں آپ ہے کہ دکھائے جا رہے ہیں مظاہرہ آپ رپورٹ میں پڑھا ہے. یہ بہت زیادہ گنجائش ہے. اور آپ کو پورا کر رہے ہیں گنجائش پوائنٹس، ہم سب سے کم چھوڑ کر سکتے ہیں مکمل گنجائش سے ایک. تو اس کو اپنے فائدہ میں ہے مکمل کریں اور ہر pset کوشش. یہاں تک کہ upload-- کوئی بھی تو ان تمام اپ لوڈ، کام کرتے ہیں. اور پھر ہم امید ہے کہ کرنے کے قابل ہو جائے گا آپ ان پوائنٹس میں سے کچھ واپس دے. ٹھنڈا. کوئی سوال؟ عظیم. دوم، دفتر چند hours-- دفتر کے اوقات کے بارے میں فوری نوٹ. تو سب سے پہلے، ابتدائی ہفتے میں آتے ہیں. کوئی بھی نہیں کبھی سوموار دفتر کے اوقات. Christabel کرنے آئے تھے دفتری اوقات گزشتہ رات. جی ہاں، Christabel. اور ہم نے دفتر میں کیا تھا گھنٹے گزشتہ رات، Christabel؟ سامعین: ہم نے آئس کریم تھا. ANDI پینگ: تو ٹھیک ہے، ہم نے دفتری اوقات میں آئس کریم گزشتہ رات. مجھے لگتا ہے کہ تم سے وعدہ نہیں کر سکتے ہیں ہم دفتر کے اوقات میں آئس کریم کرنا پڑے گا ہر ہفتے، میں تم سے وعدہ کر سکتے ہیں نمایاں طور پر ایک ہو جائے گا ہے TA تناسب کرنے کے لئے بہتر طالب علم. پر legit کی طرح، یہ ایک سے تین طرح ہے. ، کے ساتھ اس کے برعکس جبکہ جمعرات، آپ کے بارے میں 150 مل گیا ہے واقعی بچوں اور کوئی آئس کریم پر زور دیا. اور یہ صرف کسی کے لئے پیداواری نہیں ہے. کہانی کی اتنی اخلاقی، جلد آ رہا ہے دفتری اوقات اور اچھی چیزیں کرنے کے لئے کیا ہو گا. اس کے علاوہ، سوالات پوچھنا تیار آتے ہیں. تمہیں معلوم ہے؟ سے قطع نظر جو TAS، میں ، کہہ رہا ہے لگتا ہے کہ، ہم ایک جوڑے طلباء حاصل کر رہا ہے 10:50، کی طرح، میں جمعرات کو میں آنے والے رپورٹ پڑھنے کے نہیں میری مدد کی طرح کیا جا رہا ہے، میری مدد. بدقسمتی سے اس نقطہ پر، ہے زیادہ نہیں ہم آپ کی مدد کرنے کے لئے کر سکتے ہیں. اتنی جلدی ہفتے میں آ. دفتری اوقات کے اوائل آو. سوالات پوچھنا تیار ہو کر آئیں. کے طور پر، یقین ہے کہ آپ بات کو یقینی بنائیں ایک طالب علم، کہاں ہیں آپ کو ایسا کرنے کی ضرورت ہے کہ TAS، آپ کے ساتھ رہنمائی کر سکتے ہیں کیا دفتر کے اوقات ہے جو چاہئے الاٹ کی جائے. دوسری بات، تو میں پروفیسروں جانتے ٹیسٹ کے ساتھ ہمیں تعجب کرنا چاہتے. میں ایک پروفیسر تھا ان یو، کی طرح، راہ کی طرف سے، کہ وسط مدتی یاد آپ کو اگلے پیر ہے. جی ہاں، مجھے لگتا ہے کہ وسط مدتی بارے میں معلوم نہیں تھا. تو میں نے اس لئے جا رہا ہوں TA کہ آپ سب اس کوئز یاد دلاتا ہے آپ کو معلوم ہے، کیونکہ 0--، ہم سی ایس ہیں. اب ہم کیا arrays کے ہے کہ، آپ کو ملتا ہے اس کوئز 0 کیوں، اہ، 1 کا کوئز نہیں؟ ٹھیک ہے. اوہ، میں نے اس سے ایک پر کچھ منہ دبا ہںسنا ہے. ٹھیک ہے. تو کوئز 0 تو 14 اکتوبر جائے گا آپ پیر بدھ کے سیکشن میں ہو اور 15 اکتوبر میں ہو تو منگل جمعرات سیکشن. اس کے لئے لاگو نہیں ہوتا ہارورڈ میں تم میں سے ان میں آپ سب کو ہو جائے گا لگتا who-- 14th پر آپ quizzes ہے لے. تو جی ہاں، اگلے ہفتے، تو ڈیوڈ، لیکچر میں،، ہے جی ہاں، اس کے بارے میں تو کوئز اگلے ہفتے، آپ کو تمام کیونکہ حیران نہیں کیا جائے گا آپ کے حصے کے پاس آیا اور آپ جانتے ہیں کہ آپ کوئز 0 دو ہفتوں میں ہے. اور ہم کا جائزہ لینے پڑے گا سیشن اور سب کچھ. کے بارے میں کوئی تشویش نہیں اس کے لئے خوف زدہ کیا جا رہا ہے. کوئی سوال ذہن میں کوئی سوال سے پہلے تمام کے بارے میں رسد مسائل پر، گریڈنگ، دفتر کے اوقات، حصوں؟ جی ہاں. سامعین: کوئز ہے تو لیکچر کے دوران ہونے جا رہا؟ ANDI پینگ: جی ہاں. کوئز تو، مجھے لگتا ہے کہ، 60 اس وقت سلاٹ میں الاٹ منٹ آپ کو صرف لے لیں گے لیکچر ہال میں. تو آپ میں آنے کے لئے نہیں ہے ایک بے ترتیب 7:00 PM، کی طرح، پر. یہ سب اچھا ہے. جی ہاں. ٹھنڈا. بالکل ٹھیک. تو ہم کرنے جا رہے ہیں آپ کو ایک تصور کو متعارف کرانے ڈیوڈ قسم پہلے سے ہی ہے کہ اس ہفتے اس گزشتہ ہفتے لیکچر میں پر کو چھو لیا. یہ GDB کہا جاتا ہے. اور کس طرح تم میں سے بہت، میں جبکہ آپ کی psets لکھنے کا کورس، کا کہنا ہے کہ ایک بڑے بٹن محسوس کیا ہے آپ IDE سب سے اوپر پر "ڈیبگ"؟ ٹھیک ہے. تو اب ہم اصل معلوم کرنے کے لئے حاصل کریں گے کیا اس بٹن کے اسرار اصل کرتا ہے. اور میں یہ ایک ہے، آپ کو اس بات کی ضمانت خوبصورت، خوبصورت چیز. اب تک، مجھے لگتا ہے کہ اپ تو دو چیزیں ہو گیا ہے طالب علموں کو عام طور پر کیا گیا ہے کی psets ٹھیک جب کر. ایک، وہ یا تو میں شامل printf کے - () تاکہ ہر چند لائنوں، وہ ایک printf () میں شامل - اوہ، اس متغیر کیا ہے؟ اوہ، اس متغیر کیا ہے now-- اور آپ کی قسم کے بڑھنے دیکھیں آپ کے کوڈ کا یہ چلتا ہے کے طور پر. یا بچوں ایسا دوسرا طریقہ ہے وہ صرف پوری بات لکھتے ہیں کہ اور پھر آخر میں اس طرح جانا. امید ہے کہ یہ کام کرتا ہے. میں آپ کو اس بات کی ضمانت، GDB بہتر ہے ان طریقوں میں سے دونوں کے مقابلے میں. جی ہاں. تو یہ اپنے نئے سب سے اچھی دوست ہو جائے گا. یہ ایک خوبصورت چیز ہے کیونکہ کہ ضعف ڈسپلے دونوں کیا آپ کے کوڈ کر رہا ہے ایک مخصوص نقطہ پر کے طور پر اچھی طرح سے کیا کے طور پر آپ متغیر کر رہے ہیں، ان کی اقدار کیا ہیں کی طرح، اس مخصوص نقطہ پر. اور اس طرح میں، آپ واقعی میں کر سکتے ہیں آپ کے کوڈ میں breakpoints کے مقرر. آپ کو لائن کی طرف سے لائن کے ذریعے چلا سکتے ہیں. اور GDB صرف کے لئے پڑے گا آپ،، آپ کے لئے ظاہر کیا آپ کے متغیر کے ، وہ کیا کر رہے ہیں، کیا کوڈ میں ہو رہا ہے. اور اس طرح میں، یہ ہے اتنا آسان دیکھنے کے لئے کیا printf سے ING کی بجائے رہا ہے یا آپ کے بیانات لکھ. تو ہم بعد میں اس کی ایک مثال کروں گا. تو یہ تھوڑا سا خلاصہ ہے. کوئی تشویش نہیں، ہم نے مثالیں کروں گا. اور تو بنیادی طور پر، تین سب سے بڑے، آپ GDB میں کی ضرورت ہو گی افعال سب سے زیادہ استعمال کیا جاتا ہے پیچھے اگلا، دوسرا، زیادہ قدم ہے، اور بٹنوں میں قدم. میں اوپر سے سر کرنے جا رہا ہوں وہاں، اصل میں، اب. تو تم لوگ سب دیکھ سکتے ہیں کہ یا میں نے ایک تھوڑا سا میں زوم چاہئے؟ پیٹھ میں، آپ دیکھ سکتے ہیں؟ میں زوم چاہئے؟ بس تھوڑا سا؟ ٹھنڈا، ٹھیک ہے. ہم وہاں جا رہے. ٹھیک ہے. تو میں نے، میرے یہاں، ہے لالچی کے لئے عمل. اور تم لوگوں کی ایک بہت لکھا جبکہ کہ form-- جبکہ لوپ میں لالچی ایسا کرنے کے لئے ایک بالکل قابل قبول طریقہ ہے یہ صرف کرنے کے لئے ہے ایک اور طریقہ اندازہ لگانے والے modulo ہے میں تقسیم. تو آپ کر سکتے ہیں کی وجہ سے آپ قدر اور اس کے بعد آپ باقی ہے. اور پھر آپ صرف کر سکتے ہیں یہ سب ایک ساتھ شامل. میں کیا کر رہا ہوں کی منطق ہے یہاں ہر کسی کو احساس بنانے، ہم شروع کرنے سے پہلے؟ اس قسم کی؟ ٹھنڈا. عظیم. یہ ایک خوبصورت شہوانی، شہوت انگیز ٹکڑا ہے کوڈ کے، میں کہنا چاہوں گا. جیسا کہ میں نے ڈیوڈ، میں، نے کہا تھوڑی دیر کے بعد، لیکچر، آپ تمام کوڈ کو دیکھ کر شروع کر دیں گے بہت خوبصورت ہے کہ کچھ کے طور. اور کبھی کبھی آپ کو خوبصورت دیکھ کر کوڈ، اس طرح ایک عجیب احساس ہے. تاہم، اس کوڈ کو بہت ہے حالت خوبصورت، اسے صحیح طریقے سے کام نہیں کرتا. تو اس پر check50 چلاتے ہیں دو. 50 20-- OOP چیک کریں. 2؟ کہ pset2 ہے؟ جی ہاں. اوہ، pset1 کے. ٹھیک ہے. تو ہم check50 چلاتے ہیں. اور تم لوگ یہاں دیکھ سکتے ہیں کے طور پر، یہ مقدمات کے ایک جوڑے میں ناکامی ہے. اور تم میں سے بعض کے لئے آپ کا مسئلہ سیٹ کر کے کورس، آہ، یہ کیوں کام نہیں کر رہا، جیسے تم. کیوں یہ کچھ کے لئے کام کر رہا ہے اقدار نہیں بلکہ دوسروں کے لئے؟ ویسے، GDB آپ کے اعداد و شمار کی مدد کرنے کی جا رہی ہے کیوں ان آدانوں کام نہیں کر رہے تھے. ٹھیک ہے. تو، میں سے ایک دیکھتے ہیں میں check50 میں ناکام گیا چیک 0.41 کی ان پٹ قیمت تھی. درست جواب تاکہ آپ کو ہو رہی چاہئے 4. بلکہ اس کی بجائے میں چھپائی رہا ہوں غلط ہے جس میں 3 ن، ہے. تو، صرف دستی طور پر اس کو چلانے کے check50 کام کر رہا ہے بات کو یقینی بنانا. کی ./greedy کرتے ہیں. افوہ، میں لالچی بنانے کے لئے ہے. ہم وہاں جا رہے. اب ./greedy. کتنا واجب الادا ہے؟ کی 0.41 کرتے ہیں. اور جی ہاں، ہم یہاں دیکھتے ہیں یہ 3 لکھنا ہے کہ جب درست جواب، حقیقت میں، 4 ہونا چاہئے. تو GDB میں داخل کرتے ہیں اور ہم کس طرح دیکھیں اس مسئلہ فکسنگ کے بارے میں جا سکتے ہیں. میں پہلا قدم تو ہمیشہ اپنے کوڈ ٹھیک توڑ مقام مقرر کرنے کے لئے ہے، یا ایک نقطہ جس میں آپ کمپیوٹر یا کرنا چاہتے ہیں ٹھیک کرنے والا کھولتا کو دیکھ کر شروع کرنے کے لئے. اگر آپ ایسا کرتے تو واقعی نہیں آپ کا مسئلہ کیا ہے، عام طور پر، عام بات ہے کہ ہم کرنا چاہتے ہیں کیا اہم ہماری توڑ مقام مقرر کرنے کے لئے ہے. تو تم لوگ اس کو دیکھنے کے کر سکتے ہیں تو وہیں سرخ بٹن، جی ہاں، کہ مجھ سے قائم کیا گیا تھا ایک مرکزی تقریب کے لئے توڑ مقام. میں اس پر کلک کریں. اور پھر میں نے اپنے ڈیبگ بٹن تک جا سکتے ہیں. میں اس کے بٹن کو مارا. میں کر سکتے ہیں تو مجھ سے واپس باہر زوم. ہم وہاں جا رہے. تو ہم، یہاں، حق پر ایک پینل ہے. میں واپس، لوگ معافی چاہتا ہوں، آپ واقعی اچھی طرح نہیں دیکھ سکتا. لیکن بنیادی طور پر، تمام اس صحیح پینل کر رہا ہے دونوں روشنی ڈالی کا ٹریک رکھنے ہے کوڈ کے مطابق ہے جس میں لائن، کمپیوٹر اس وقت چل رہا ہے، کے طور پر اچھی طرح سے آپ متغیرات میں سے سب کے طور پر یہاں نیچے. تو آپ کو سینٹ، سکے، (ن) ہے، تمام مختلف چیزیں کرنے کے لئے کا اعلان کر دیا اس مقام پر. کوئی تشویش نہیں، کیونکہ ہم اصل میں نہیں ہے ابھی تک کوئی متغیر ان initialized ہے. ، آپ کے کمپیوٹر میں تو آپ کمپیوٹر صرف دیکھ رہا ہے، اوہ، 32767 آخری بار استعمال کیا تقریب تھی میرے کمپیوٹر میں میموری کی جگہ کے. سینٹ فی الحال ہے جہاں تو ہے. لیکن کوئی ایک بار آپ کو، کوڈ کو چلانے کے initialized یہ ہونا چاہئے. تو کی طرف سے، لائن کے ذریعے جانے لائن، یہاں کیا چل رہا ہے. ٹھیک ہے. یہاں تو تین ہیں میں نے صرف وضاحت کی ہے کہ بٹن. تم، کھیلتے ہیں، یا رن تقریب ہے بٹن، آپ، کے بٹن پر قدم ہے اور آپ کو بھی بٹن میں قدم ہے. اور بنیادی طور پر، تینوں کی انہیں صرف اپنے کوڈ کے ذریعے جانا اور مختلف چیزیں. تو عام طور پر، جب آپ ٹھیک رہے، ہم صرف کھیل کو مارا نہیں کرنا چاہتا، کھیل صرف چلایا جائے گا کیونکہ اس کے آخر میں آپ کے کوڈ. اور پھر آپ کو اصل میں نہیں پتہ ہے کیا آپ کا مسئلہ آپ ایک سے زیادہ breakpoints کے قائم جب تک ہے. آپ ایک سے زیادہ breakpoints کے مقرر کیا ہے تو، یہ صرف خود کار طریقے سے کریں گے ایک توڑ مقام سے چلایا، اگلے کرنے کے لئے، کرنے کے لئے اگلے. لیکن اس معاملے میں ہم نے صرف یہ ہے کہ ایک، ہم نے کی وجہ اپنے طریقے سے کام کرنے کے لئے چاہتے ہیں نیچے سے اوپر نیچے کی طرف سے. تو ہم نے اس کو نظر انداز کرنے کے بٹن پر جا رہے ہیں حق اب اس پروگرام کے مقاصد کے لئے. تقریب کے دوران مرحلہ تو ہر ایک لائن سے زیادہ اقدامات اور آپ کو بتاتا ہے کمپیوٹر کر رہا ہے. تقریب میں مرحلہ ہے اصل تقریب میں اس کوڈ کی آپ کی لائن پر ہے. لہذا مثال کے طور، printf طرح ()، یہ ٹھیک ہے، ایک تقریب ہے؟ میں جسمانی طور پر قدم کرنا چاہتے تھے تو printf کے () تقریب میں، میں نے اصل میں کا ایک ٹکڑا میں چلے جائیں گے printf کے () لکھا گیا ہے اور دیکھ رہا تھا جہاں کوڈ وہاں کیا ہو رہا ہے. لیکن عام طور پر، ہم فرض ہے کہ ہم آپ کو دے کہ کوڈ کام. ہم () کام کر رہا ہے printf کا فرض. ہم GetInt () کام کر رہا ہے کہ فرض. تو کوئی ضرورت کے وہاں ہے ان کے افعال میں قدم. لیکن افعال ہے تو تم اپنے آپ کو لکھنا ہے کہ آپ کی جانچ کرنا چاہتے ہیں کہ پر کیا ہو رہا ہے، آپ کو قدم کے لئے چاہتے ہیں اس تقریب میں. تو اب ہم صرف جا رہے ہیں کوڈ کا یہ ٹکڑا پھلانگنا. تو دیکھتے ہیں. اوہ، پرنٹ، "اوہ Hai کی، کس طرح زیادہ تبدیلی واجب الادا ہے؟ " ہم پرواہ نہیں کرتے. ہم اس کام کر رہا ہے معلوم، تو ہم اس سے زیادہ قدم. تو (ن)، ہماری فلوٹ ہے کہ ہم initialized-- ہے یا declared-- سب سے اوپر، اب ہم ہیں GetFloat کے کرنے کے لئے اس کے برابر (). تو اس سے زیادہ قدم دو. اور ہم دیکھیں نیچے یہاں، پروگرام ایک قدر ان پٹ کے لئے مجھے فورا ہے. تو ان پٹ ہم چاہتے ہیں کی قیمت دو 0.41 ہے جو، یہاں کی جانچ کرنے کے. عظیم. تو اب (ن) تم لوگ دیکھتے ہیں یہاں، bottom-- میں یہ ہے stored-- وجہ سے ہم ابھی تک گول نہیں ہے، یہ ہے اس طرح وشال میں محفوظ 0،4099999996 ہے کہ فلوٹ، کرنے کے لئے کافی قریب ہے جس میں ہمارے مقاصد، اب، 0.41 کرنے کے لئے. اور پھر ہم بعد کے طور پر دیکھیں گے ہم پروگرام پھلانگے جاری، یہاں کے بعد، ن بن گیا گول اور سینٹ 41 بن گیا ہے. عظیم. تاکہ ہم اپنے پکڑ دھکڑ کے کام جانتے ہیں کہ. ہم جانتے ہیں کہ سینٹ کی صحیح تعداد، تو ہم ہے کہ معلوم ہے کہ واقعی نہیں مسئلہ. تو ہم نکلنے جاری اس پروگرام میں. ہم یہاں جانا. اور تو کوڈ کے اس لائن کے بعد، ہم نے ہم کتنے حلقوں پتہ ہونا چاہیئے. ہم سے زیادہ قدم. اور آپ کو ہم، حقیقت میں، ایک ہے دیکھیں سہ ماہی ہم 25 چکاہے ہے کیونکہ 41 ہمارے ابتدائی قیمت سے. اور ہم نے اپنے سینٹس 16 باقی ہیں. سب کس طرح سمجھ ہے پروگرام کے ذریعے کر رہی ہے اور کیوں سینٹ اب 16 ہو گیا ہے اور کیوں، اب، سککوں 1 بن گیا ہے؟ ہر کوئی اس منطق مندرجہ ذیل ہے؟ ٹھنڈا. ، اس بات کا تو کے طور پر پروگرام کے کام کر رہے ہیں، ٹھیک ہے؟ ہم یہ بالکل کر رہا ہے جانتے ہیں ہم اس کے لئے کیا چاہتے ہیں. اور ہم اصل میں نہیں کیا اوہ، باہر پرنٹ کرنے کے لئے ہے، کیا اس وقت سینٹ، ہے اس نقطہ پر سککوں ہے. ہم پروگرام کے ذریعے جا جاری. پھلانگنا. ٹھنڈا. ہم آف ڈائمز سے زیادہ جانا. عظیم. ہم نے اسے لے لیا ہے کہ دیکھیں ایک پیسہ کے لئے $ 0.10 سے دور. اور اب ہم دو سککوں ہے. یہ صحیح ہے. ہم پیسے سے زیادہ جانا اور ہم دیکھیں ہم چھوڑ سینٹ مل گیا ہے. ہمم، کہ عجیب بات ہے. یہاں پروگرام میں، میں چاہیے تھا میرے پیسے منہا ہے. شاید میں صرف نہیں تھا اس لائن ٹھیک کر. اور افسوس، آپ دیکھ سکتے ہیں یہاں، کیونکہ ہم جانتے ہیں ہم قدم رکھ رہے ہیں کہ لائنوں 32 اور 33 کے ذریعے، کہ جہاں ہمارے پروگرام ہے غلط طریقے سے متغیر بھاگنا پڑا. تو ہم نظر آتے ہیں اور اوہ، میں دیکھ سکتے ہیں، میں یہاں سینٹ تفریق ہوں، لیکن میں واقعی میں نہیں ہوں میری سکے قیمت میں اضافہ. میں سینٹ اضافہ کر رہا ہوں. اور میں شامل کرنے کے لئے نہیں کرنا چاہتے سینٹ، میں سککوں پر شامل کرنا چاہتے ہیں. تو ہم سکے کہ بدل جاتا ہے تو، ہم ایک ورکنگ پروگرام مل گیا ہے. میں check50 چلاتے ہیں کر سکتے ہیں. آپ کو صرف GDB حق کے باہر سے باہر نکلیں کر سکتے ہیں یہاں اور پھر check50 چلاتے ہیں. میں صرف یہ کر سکتے ہیں. میں لالچی بنانے کے لئے ہے. 0.41. اور یہاں، یہ پرنٹنگ کے صحیح جواب. تم لوگوں کو دیکھ سکتے ہیں کے طور پر تو، GDB ایک بہت طاقتور آلہ ہے ہم اتنا کوڈ ہے جب چل رہا ہے اور بہت سے متغیر اس کے طور پر، ہمارے لئے مشکل ہے کہ ایک انسان، کا ٹریک رکھنے کے لئے. GDB میں کمپیوٹر، ٹھیک کرنے والا کھولتا، کی صلاحیت ہے ہر چیز کا ٹریک رکھنے کے لئے. میں شاید Visionaire میں، تم لوگ، معلوم کچھ انقطاع گناہ مارا ہو سکتا ہے آپ چلا رہے تھے کیونکہ اپنے صف کی حد سے باہر. سیزر کی مثال میں، ہے بالکل وہی جو میں یہاں کیا نافذ کر دیا ہے. تو میں نے کے لئے چیک کرنے کے لئے بھول کیا تو کیا ہوگا میں دو کمانڈ لائن دلائل کی ضرورت نہیں تھی. میں صرف اس چیک میں پیش نہیں کیا گیا. میں Debug-- چلاتے ہیں اور اس طرح میں مقرر میرے توڑ مقام وہاں صحیح سے. میں ٹھیک چلانے. ٹھیک ہے. جی ہاں. تو اصل میں، GDB چاہیے تھا وہاں مجھ سے کہا ہے وہاں ایک انقطاع غلطی تھی. مجھے کیا ہو رہا ہے پتہ نہیں ہے وہیں، لیکن میں نے اسے بھاگ گیا جب یہ کام کر رہا تھا. آپ کے ذریعے کوڈ کی لائنیں چلانے کب اور GDB بس اچانک، تم پر چھوڑ سکتا ہے جاؤ اور سرخ غلطی ہے دیکھو کیا. یہ، ارے، آپ کو بتا دونگا انقطاع غلطی تھی، جس سے آپ تک رسائی حاصل کرنے کی کوشش کا مطلب ہے کہ موجود ہی نہیں تھی کہ ایک صف میں جگہ. جی ہاں. اگلے مسئلہ میں تو اس ہفتے مقرر، تم لوگ شاید ایک بہت پڑے گا متغیر کے ارد گرد تیرتا. آپ اس بات کا یقین کے لئے نہیں جا رہے ہیں وہ سب کے سب ایک مخصوص موڑ پر مطلب. تو GDB واقعی figuring میں مدد ملے گی وہ سب کے سب برابر ہیں باہر اور ضعف کو دیکھنے کے لئے کے قابل ہونے کی وجہ سے. کسی کس طرح الجھن میں ہے اس میں سے کسی کام کر رہا تھا؟ ٹھنڈا. بالکل ٹھیک. تو اس کے بعد، ہم ہیں حق گوتا لگا کرنے کے لئے جا میں مختلف چار ہیں اس ہفتے کے لئے ہر قسم کی اقسام. کس طرح تم میں سے بہت سے پہلے کے تمام، ہم شروع کرنے سے پہلے، pset3 لئے پوری رپورٹ پڑھا ہے؟ ٹھیک ہے. میں تم لوگوں پر فخر ہے. اس کلاس میں سے نصف، کی طرح ہے جس میں آخری بار کے مقابلے میں نمایاں طور پر زیادہ ہے. تو ہے کہ، بہت اچھا ہے کیونکہ جب ہم مواد کے بارے میں بات lecture-- یا معذرت میں، section-- میں مجھے پسند ہے اس کی ایک بہت سے منسلک کرنے کی pset پر واپس جائیں کیا ہے اور آپ چاہتے ہیں کہ کس طرح اپنے pset میں اس پر عمل درآمد. آپ کر آتے ہیں تو رپورٹ پڑھ، یہ کروں گا آپ کو سمجھنے کے لئے بہت آسان ہو جائے مجھے کہنا ہے کہ جب کے بارے میں بات کر رہا ہوں، ارے ارے، یہ ایک بہت ہی ہو سکتا ہے اس طرح لاگو کرنے کے لئے اچھی جگہ. پڑھا ہے جو تم میں سے ان لوگوں کو تو آپ pset کے حصے کے طور پر، جانتے ہیں کہ رپورٹ، آپ کو حاصل کرنے کے لئے جا رہے ہیں قسم کی ایک قسم لکھیں. تو یہ بہت مددگار ثابت ہو سکتا آپ کی ایک بہت آج کے لئے. تو ہم کے ساتھ شروع کریں گے، بنیادی طور پر، سب سے زیادہ سادہ قسم کی طرح، انتخاب کی طرح. کے لئے مخصوص الگورتھم ہم اس کے بارے میں جانے گا کہ کس طرح is-- داؤد میں ان کے ذریعے چلا گیا لیکچر، تو میں نے فوری طور پر کے ساتھ منتقل کریں گے یہاں آپ کو، بنیادی طور پر ہے اقدار کی ایک صف ہے. اور پھر آپ کو مل جائے سب سے چھوٹی ناچھانٹا ہوا قیمت اور آپ کو اس کی قیمت کے ساتھ تبادلہ پہلی ناچھانٹا ہوا قیمت. اور پھر آپ صرف بار بار کرتے رہیں آپ کی فہرست کے باقی حصوں کے ساتھ. اور یہاں ایک بصری وضاحت ہے کہ کام کریں گے کہ کس طرح کی. ہم تھے تو مثال کے طور پر، شروع کرنے کے لئے پانچ عناصر کی ایک سرنی، انڈیکس کے ساتھ 4 0، 3، 5، 2، 6، اور 4 اقدار تو اب صف میں رکھا، ہم صرف فرض کرنے جا رہے ہیں وہ سب کے سب ہیں ناچھانٹا ہوا ہم دوسری صورت میں تجربہ کیا نہیں ہے کیونکہ. تو کس طرح ایک انتخاب کی طرح کرے گا کام ہے کہ سب سے پہلے کریں گے مکمل طور پر کے ذریعے چلانے کے ناچھانٹا ہوا صف کے. یہ سب سے چھوٹی قیمت کو منتخب کریں گے. اس صورت، 3، صحیح اب، سب سے چھوٹی ہے. یہ 5 ہو جاتا ہے. nope کیا، 5 than-- بڑا نہیں ہے یا معذرت، 3 than-- کم نہیں ہے. تو کم از کم قیمت اب بھی 3 ہے. اور پھر آپ کو 2 کے لئے حاصل. اوہ، دیکھتا کمپیوٹر، 2 کم 3 ہے. 2 اب کم از کم قیمت ہونا ضروری ہے. اور تو ہے کہ سب سے پہلے قیمت کے ساتھ 2 سویپ. تو ایک پاس کرنے کے بعد، ہم یقینا دیکھتے ہیں 2 اور 3 تبدیل کر رہے ہیں. اور ہم صرف کر جاری رکھنے کے لئے جا رہے ہیں یہ ایک بار پھر صف کے باقی حصوں کے ساتھ. تو ہم صرف کے ذریعے چلانے کے لئے جا رہے ہیں صف کے آخری چار اشاریہ جات. ہم نے 3 ہے دیکھیں گے اگلے کم از کم قیمت. تو ہم 4 کے ساتھ اس کا تبادلہ کرنے جا رہے ہیں. اور پھر ہم صرف رکھنے کے لئے جا رہے ہیں آخر میں، جب تک کے ذریعے چل رہا ہے، آپ ایک کے مطابق صف میں حاصل ہے جس میں 2، 3، 4، 5، اور 6 تمام حل کر رہے ہیں. سب منطق سمجھ ہے ایک انتخاب کی طرح کام کرتا ہے کہ کس طرح کی؟ آپ کو صرف کسی قسم کا ہے ایک کم از کم قیمت کا. تم نے کیا ہے کے ٹریک رکھ رہے ہیں. آپ اسے تلاش اور جب، آپ کو اس کا تبادلہ صف میں سب سے پہلے کی قیمت کے ساتھ یا، پہلی قدر صف میں اگلے قیمت. ٹھنڈا. تو تم لوگ طرح کے طور پر ایک مختصر جھلک سے دیکھا، ہم اس سے باہر pseudocode کے لئے جا رہے ہیں. تو پیٹھ میں تم لوگوں کے لئے چاہتے ہیں تو ایک میز پر ایک گروپ، ہر کسی کو فارم ایک چھوٹا سا ساتھی تشکیل کر سکتے ہیں، میں جا رہا ہوں آپ کو تین منٹ کی طرح لوگوں کو دینے کے لئے بس کے ذریعے بات کرنے کے لئے منطق، انگریزی میں، ہم لاگو کرنے کے قابل ہو سکتا ہے کہ کس طرح pseudocode کے ایک انتخاب کی طرح لکھنے کے لئے. اور کینڈی ہے. آئے اور کینڈی حاصل کریں. آپ کی پیٹھ میں ہو اور اگر آپ چاہتے ہیں کینڈی، میں آپ کو کینڈی پھینک کر سکتے ہیں. اصل میں، you-- ٹھنڈا کرنا. اوہ معاف کیجئے. ٹھیک ہے. ہم کے طور پر، کرنے کے لئے چاہتے ہیں تو ایک کلاس، لکھنے pseudocode کے ایک سے رابطہ ہو سکتا ہے کہ کس طرح اس مسئلہ، صرف آزاد محسوس کرتے ہیں. میں صرف ارد گرد جاؤ اور گا، ترتیب میں، گروپ سے دعا گو ہیں کی اگلی لائن کے لئے ہم کیا کرنا چاہئے. تم لوگوں کو شروع کرنے کے لئے چاہتے ہیں تو بند، سب سے پہلی چیز کیا ہے آپ کرنے کی کوشش کر رہے ہیں جب ایسا کرنے کے لئے اس پروگرام کو حل کرنے کا ایک طریقہ پر عملدرآمد مہیا ایک فہرست ترتیب کرنے کے لئے؟ صرف ہم فرض چلو ایک سرنی، ٹھیک ہے؟ سامعین: آپ کو کچھ پیدا کرنے کے لئے چاہتے ہیں قسم کے [اشراوی] آپ ہیں اپنے پورے صف کے ذریعے چل رہا ہے. ANDI پینگ: دائیں. تو آپ iterate کرنا چاہتے ہیں جا رہے ہیں ہر جگہ کے ذریعے، ٹھیک ہے؟ اتنی عظیم. تم لوگوں کو مجھے دینا چاہتے ہیں تو اگلے پیٹھ میں، جی ہاں آتا. سامعین: ان کی جانچ پڑتال تمام چھوٹی کے لئے. ANDI پینگ: وہاں ہم جا. تو ہم کے ذریعے جانے کے لئے اور کی جانچ کرنا چاہتے کم از کم قیمت کا حق، کیا دیکھ رہے ہو؟ میں کہ abbreviate کرنے کے لئے جا رہا ہوں "منٹ." تم لوگوں کے بعد کیا کرنا چاہتے ہیں آپ کم از کم قیمت مل گیا ہے؟ سامعین: [اشراوی] ANDI پینگ: تو آپ چاہتے ہیں کے لئے جا رہے ہیں اس صف کی پہلی کے ساتھ سوئچ، ٹھیک ہے؟ یہی ہے جو میں کہنے جا رہا ہوں، آغاز ہے. بالکل ٹھیک. تو اب آپ سب سے پہلے تبدیل کیا ہے کہ ایک، کیا اس کے بعد تم کیا کرنا چاہتے ہو؟ تو اب ہم جانتے ہیں کہ یہ یہاں ایک حق، سب سے چھوٹی قیمت ہونا ضروری ہے؟ پھر آپ کو ایک اضافی آرام ناچھانٹا ہوا ہے کہ صف کے. تو آپ کو اگر آپ، یہاں کیا کرنا چاہتے ہیں لوگ میرے اگلی لائن دینے کے لئے چاہتے ہیں؟ سامعین: تو پھر آپ iterate کرنا چاہتے ہیں صف کے باقی کے ذریعے. ANDI پینگ: جی ہاں. اور اس طرح کے ذریعے iterating کرتا ہے قسم کے ہم شاید ضرورت ہو گی کا مطلب؟ کس قسم of-- سامعین: اوہ، ایک اضافی متغیر؟ ANDI پینگ: شاید لوپ کے لئے ایک، ٹھیک ہے؟ تو ہم شاید کرنا چاہتے ہیں جا رہے ہیں through-- عظیم iterate کرنا. اور پھر آپ کو واپس جانے کے لئے جا رہے ہیں اور شاید پھر کم از کم چیک، ٹھیک ہے؟ اور آپ کو بار بار رکھنے کے لئے جا رہے ہیں اس، loops کے وجہ سے صرف جا صحیح، چل رہا رکھنے کے لئے کس طرح؟ تو تم لوگ، ہم دیکھ سکتے ہیں کے طور پر صرف ایک عام pseudocode کے ہے ہم چاہتے ہیں کہ کس طرح اس پروگرام کو دیکھنے کے لئے. یہاں یہ میں iterate، ہم کیا کریں عام طور پر اپنے کوڈ میں لکھنے کی ضرورت ہے ہم نے ایک کے ذریعے iterate کرنا چاہتے ہیں تو ساخت کی صف، کس قسم کی؟ مجھے لگتا ہے کہ Christabel پہلے اس نے کہا. سامعین: لوپ کے لئے ایک. ANDI پینگ: لوپ کے لئے ایک؟ بالکل. تو شاید یہ ہے ایک لوپ کے لئے جا رہا. مطلب کے لئے جا رہا یہاں ایک چیک کیا ہے؟ عام طور پر، آپ کو چیک کرنا چاہتے ہیں تو کچھ کچھ ہے تو else-- سامعین: تو. ANDI پینگ: ایک تو، ٹھیک ہے؟ یہاں تبادلہ اور پھر، ہم کریں گے ، بعد میں زیادہ جانا ڈیوڈ کیونکہ اس کے ساتھ ساتھ لیکچر میں اس کے ذریعے چلا گیا. اور پھر دوسرے میں iterate implies-- سامعین: لوپ کے لئے ایک. ANDI پینگ: بالکل، لوپ کے لئے --another. ہم تلاش کر رہے ہیں تو صحیح طریقے سے اس میں، ہم ہم شاید ہیں کہ دیکھ سکتے ہیں لوپ کے لئے ایک جالی دار کی ضرورت کرنے جا وہاں ایک مشروط بیان کے ساتھ اور پھر کوڈ کے اصل ٹکڑا ہے کہ اقدار تبادلہ ہو رہا. تو میں صرف عام طور پر لکھا ہے یہاں ایک pseudocode کے کوڈ. اور پھر ہم اصل میں جا رہے ہیں جسمانی طور پر کرنے کے لئے، ایک طبقے کے طور پر، یہ آج لاگو کرنے کی کوشش. اس IDE میں واپس جانے. اہ اوہ. کیوں not-- یہ ہے. ٹھیک ہے. معذرت، مجھے تھوڑا سا زیادہ میں زوم کرنے کی کوشش کریں. ہم وہاں جا رہے. میں یہاں کیا کر رہا ہوں مجھے پیدا کیا ہے ہے نامی ایک پروگرام "انتخاب / sort.c." میں نو کی ایک سرنی پیدا کیا ہے اقدار، 4، 8، 2، 1، 6، 9، 7، 5، 3. فی الحال، کے طور پر آپ کر سکتے ہیں وہ بے ترتیب ہیں، دیکھیں. ن نمبر ہونے جا رہا ہے کہ آپ اقدار کی رقم بتاتا آپ کو آپ کی صف میں ہے. اس صورت میں، ہم نے نو اقدار ہیں. اور میں یہاں صرف لوپ کے لئے ایک مل گیا ہے کہ ناچھانٹا ہوا صف باہر پرنٹ. اور آخر میں، میں نے بھی کے لئے ایک مل گیا ہے صرف ایک بار پھر اسے باہر پرنٹ ہے کہ لوپ. تو نظریاتی طور پر، اس پروگرام ہے آخر میں، درست طریقے سے کام کر رہا ہے، آپ کو ایک لوپ کے لئے چھپی ہوئی دیکھنا چاہیئے جس میں 1، 2، 3، 4، 5، 6، 7، 8، 9 ترتیب میں تمام درست طریقے سے ہو. تو ہم یہاں ہمارے pseudocode مل گیا ہے. میں صرف ہوں to-- کسی چاہتا ہے رضاکاروں کے لئے سے دعا گو ہیں جانے کے لئے جا تو کیا ٹائپ بالکل مجھے بتاو ہم سب سے پہلے، صرف iterate کرنا چاہتے ہیں اس صف کے آغاز کے ذریعے؟ ہوں کوڈ کے مطابق کیا ہے شاید یہاں کی ضرورت جا رہے ہیں؟ سامعین: [اشراوی] ANDI پینگ: جی ہاں، لگتا ہے مفت to-- معذرت، آپ up-- احساس کھڑے کرنے کی ضرورت نہیں آپ کی آواز تھوڑا سا بلند کرنے کے لئے آزاد. سامعین: int میں برابر کے 0-- ANDI پینگ: جی ہاں، اچھا. سامعین: میں صف کی لمبائی سے بھی کم ہے. ANDI پینگ: تو میں رکھنا ، یہاں اعتراض ہم کیونکہ ایک تقریب نہیں ہے ہمیں ایک صف کی لمبائی کو بتاتا ہے، ہم پہلے سے ہی ایک ہے کہ ذخیرہ ہے کہ قیمت. ٹھیک ہے؟ ایک اور بات رکھنے کے لئے ایک صف میں mind-- میں نو اقدار کے، اشاریہ جات کیا ہیں؟ صرف اس صف 3 0 تھا کا کہنا ہے کہ. آپ کو آخری کہ دیکھیں انڈیکس کو اصل 3. یہ وہاں ہے، اگرچہ، 4 نہیں ہے صف میں چار اقدار. یہاں تو، ہم بہت ہوشیار رہنا ہوگا حد کے لئے کیا ہماری حالت کے ہونے جا رہا ہے. سامعین: یہ ن مائنس 1 نہیں ہو گا؟ ANDI پینگ: یہ جا رہا ہے بالکل ن مائنس 1،. اس کا احساس، کیوں یہ ن مائنس 1، سب؟ arrays کے صفر حساب سے ترتیب ہیں، کیونکہ یہ ہے. انہوں نے 0 میں شروع اور 1 ن مائنس تک چلانے. جی ہاں، یہ تھوڑا سا مشکل ہے. ٹھیک ہے. اور پھر-- سامعین: Isnt'1 کہ پہلے سے اگرچہ کی دیکھ بھال لیا، صرف زیادہ یا کم "نہیں کہہ کی طرف سے برابر کم "اور صرف کہہ" کرنے کے لئے؟ " ANDI پینگ: یہ ایک ہے بہت اچھا سوال. تو، جی ہاں. بلکہ، ہم راستے ہیں جانچ پڑتال حق پر عمل درآمد، تم دونوں اقدار کا موازنہ کرنے کی ضرورت ہے. تو آپ کو اصل کرنا چاہتے ہیں "کرنے کے لئے" خالی چھوڑ دیں. آپ کا آپس میں موازنہ کیونکہ اگر یہ ایک، آپ کو نہیں جا رہے ہیں اس کے بعد کچھ بھی صحیح، کا آپس میں موازنہ کرنے کے لئے؟ جی ہاں. تو میں + +. میں ہمارے بریکٹ شامل ہیں. افوہ. عظیم. تو ہم آغاز ہے ہماری بیرونی لوپ کی. تو اب ہم شاید کرنا چاہتے ہیں رکھنے کے لئے ایک متغیر کی تخلیق سب سے چھوٹی قیمت کے ٹریک، ٹھیک ہے؟ کسی نے مجھے دینے کے لئے چاہتا ہے ایسا کریں گے کہ کوڈ کے مطابق؟ ہم جا رہے ہیں تو ہم کیا ضرورت ہے کچھ پر محفوظ کرنا چاہتے ہیں؟ حق. اس کے لیے ہو سکتا ہے کہ ایک بہتر نام "عارضی" be-- گا مکمل طور پر works-- شاید زیادہ بجا طور پر ہو جائے گا نامی ایک، ہم سب سے چھوٹی قدر چاہتے ہیں تو سامعین: کم از کم. ANDI پینگ: منٹ، ہم وہاں چلتے ہیں. منٹ اچھا ہو جائے گا. اور اس طرح یہاں، ہم کیا کریں اس کی ابتدا کرنا چاہتے ہیں؟ یہ تھوڑا سا مشکل ہے. کیونکہ حق اب اس صف کے آغاز، آپ صحیح، کچھ بھی نہیں دیکھا ہے؟ خود کار طریقے سے کیا،، تو ہم صرف 0 کے برابر ہو ہم ابتدا کرنا چاہتے ہیں کیا کے لئے ہماری پہلی کم از کم قیمت؟ سامعین: میں. ANDI پینگ: میں، بالکل. Christabel، ہم کیوں چاہتے ہیں میں اس کی ابتدا کرنے کے لئے؟ سامعین:، اچھی طرح سے، کیونکہ ہم 0 ساتھ شروع کر رہے ہیں. ہم آپس میں موازنہ کرنے کے لئے کچھ بھی نہیں ہے کیونکہ یہ کم از کم 0 ہونے کی وجہ سے ختم ہو جائے گی سے. ANDI پینگ: بالکل. تو وہ بالکل صحیح ہے. ہم اصل میں نہیں ہے کیونکہ ، ابھی تک کچھ دیکھا ہم ہماری کم از کم قیمت ہے کیا نہیں جانتے. ہم صرف اس کی ابتدا کرنا چاہتے ہیں میں، جس میں، فی الحال، یہیں ہے. اور ہم کے طور پر جاری اس صف نیچے منتقل، ہم ہر ایک کے ساتھ، دیکھیں گے کہ اضافی پاس، میں دھیرے بڑھتا. اور اس طرح اس نقطہ پر، میں شاید جا رہا ہے کم از کم ہونا چاہتے ہیں، یہ جو کچھ بھی ہو جا رہا ہے ناچھانٹا ہوا صف کے آغاز ہے. ٹھنڈا. تو اب ہم شامل کرنا چاہتے ہیں یہاں لوپ کے لئے ہے کے ذریعے iterate کرنے جا ناچھانٹا ہوا، یا اس صف کے باقی. کسی نے مجھے دینے کے لئے چاہتا ہے ایسا کریں گے کہ کوڈ کے مطابق؟ Hint-- ہم یہاں کیا نیچے کی ضرورت ہے؟ کیا لوپ کے لئے اس میں جانے کے لئے جا رہا ہے؟ جی ہاں. سامعین: تو ہم چاہتے ہیں ایک مختلف عددی ہے، ہم باقی کے ذریعے چل رہا ہے کر رہے ہیں کیونکہ اس کی بجائے میں کی صف، تو ہو سکتا ہے کے J. ANDI پینگ: جی ہاں، J مجھ سے اچھا لگتا ہے. برابر ہے؟ سامعین: تو اس کی وجہ، میں پلس 1 گا آپ کو اگلے کی قیمت میں شروع کر رہے ہیں. اور پھر تو پھر end-- کرنے، J ہے ن مائنس 1، اور پھر J + + کے مقابلے میں کم. ANDI پینگ: عظیم. اور پھر یہاں، ہم کرنا چاہتے ہیں جا رہے ہیں ہماری حالت سے ملاقات کی ہے تو دیکھنے کے لئے چیک کرنے کے لیے، ٹھیک ہے؟ آپ کرنا چاہتے ہیں کی وجہ سے کم از کم قدر تبدیل اس کے مقابلے میں اصل چھوٹا ہے تو کیا آپ صحیح، لئے اس کا موازنہ کر رہے ہیں؟ تو کیا ہم یہاں کرنا چاہتے ہیں جا رہے ہیں؟ کو دیکھنے کے لئے کی جانچ پڑتال کریں. بیان کے کس قسم کی ہم شاید جا رہے ہیں TI تو استعمال کرنا چاہتے ہیں ہم کچھ کی جانچ پڑتال کرنا چاہتے ہیں؟ سامعین: ایک بیان ہے. ANDI پینگ: ایک تو بیان. تو if-- اور ہونے جا رہا ہے ہم اندر چاہتے ہیں کہ حالت ہماری اگر بیان کی؟ سامعین: تو J کی قدر مائنس مائنس کی قیمت سے بھی کم ہے ANDI پینگ: بالکل. تو if-- تو اس سرنی "سرنی." کہا جاتا ہے عظیم. وہ کیا تھا صف تو؟ پھر سے کہو. سامعین: صف-J سے کم ہے تو سرنی میں، پھر ہم منٹ کو تبدیل کریں گے. تو کم از کم J ہو جائے گا. ANDI پینگ: احساس ہے کہ ہے؟ ٹھیک ہے. اور اب یہاں نیچے، ہم اصل میں صحیح، سویپ کو لاگو کرنا چاہتے ہیں؟ تو، لیکچر میں، یاد ڈیوڈ، جب کہ وہ the-- کیا تھا تبادلہ کوشش کر رہا تھا اندازہ لگانے والے سنتری کا رس اور milk-- سامعین: یہ کہ مجموعی تھا. ANDI پینگ: جی ہاں، اس قسم کے مجموعی تھا. لیکن یہ ایک بہت اچھا تھا تصور وقت کا مظاہرہ. تو یہاں آپ کی اقدار کے بارے میں سوچنا. تم نے ایک صف ملا ہے منٹ، میں ایک صف، یا ہم یہاں تبادلہ کرنے کی کوشش کر رہے تھے جو کچھ بھی. اور آپ کو شاید میں ڈال نہیں کر سکتے ہیں ایک ہی وقت میں ایک دوسرے کے، ٹھیک ہے؟ تو ہم جا رہے ہیں یہاں بنانے کے لئے کی ضرورت ہے صحیح اقدار تبادلہ کرنے کے لئے؟ سامعین: ایک عارضی متغیر. ANDI پینگ: ایک عارضی متغیر. تو INT temp کی کرتے ہیں. یہ ایک بہتر ہو گا، ملاحظہ کریں واہ to-- وقت، وہ کیا تھا؟ ٹھیک ہے. تو یہ ایک بہتر ہوتا ہے وقت متغیر "temp کی." نام سے تو INT temp کی کرتے ہیں. ہم کو کیا جا رہے ہیں یہاں کے برابر TEMP مقرر؟ سامعین: کم از کم؟ ANDI پینگ: یہ تھوڑا سا مشکل ہے. یہ اصل میں آخر میں کوئی فرق نہیں پڑتا. یہ کوئی فرق نہیں پڑتا حکم آپ میں تبادلہ کرنے کے لئے منتخب جب تک آپ کو اس بات کا یقین کر رہے ہیں کے طور پر تم ہو آپ گماگمن رہے ہیں کا ٹریک رکھنے. سامعین: یہ صف میں ہو سکتا ہے. ANDI پینگ: جی ہاں، کی صف میں کرتے ہیں. اور پھر اگلی لائن ہے کوڈ کے ہم یہاں کرنا چاہتے ہیں؟ سامعین: سرنی میں صف-J برابر. ANDI پینگ: اور آخر میں؟ سامعین: صف-J سرنی میں برابر. سامعین: یا سرنی-J برابر سرنی temp-- یا، temp کی. ANDI پینگ: ٹھیک ہے. تو اس کو چلانے اور دیکھیں یہ کام کرنے جا رہا ہے تو. کہاں ہو رہا ہے؟ اوہ، یہ ایک مسئلہ ہے. ہم ہیں، لائن 40 پر، ملاحظہ کریں سرنی-J استعمال کرنے کی کوشش؟ لیکن جہاں صرف میں J موجود ہے؟ سامعین: لوپ کے لئے میں. ANDI پینگ: دائیں. تو کیا ہم ایسا کرنے کی ضرورت جا رہے ہیں؟ سامعین: the-- باہر اس کی وضاحت سامعین: جی ہاں، میں آپ کے پاس لگتا ہے بیان، ٹھیک ہے ایک استعمال کرنے کے لئے؟ تو جیسے، اگر minimum-- ٹھیک، مجھے سوچنے دو. ANDI پینگ: پرو، کوشش ایک نظر چلو لینے کے لئے ، ہم یہاں کچھ کیا کر سکتے ہیں دیکھتے؟ سامعین: ٹھیک ہے. کم از کم برابر نہیں ہے تو کم از کم ہے تو j-- تو اب بھی میں ... تو ہم تبادلہ کرنے کی ضرورت نہیں کرے گا. ANDI پینگ: میں نے اس کے برابر ہے؟ تم یہاں کیا کہنا چاہتے ہو؟ سامعین: جی ہاں یا، اگر کم از کم جی ہاں، برابر نہیں میں کرتا ہے. ANDI پینگ: ٹھیک ہے. ٹھیک ہے کہ ہمارے مسائل، قسم کے، حل کرتی ہے. لیکن جو ابھی تک حل نہیں ہے J بعد j-- تو کیا ہوتا ہے کا مسئلہ اس کے باہر کا کوئی وجود نہیں، کیا آپ کو ہم اس کے ساتھ کیا کرنا چاہتے ہیں؟ باہر اس کا اعلان کریں؟ یہ چلانے کی کوشش کرتے ہیں. اہ اوہ. ہماری طرح کام نہیں کر رہا. اگر آپ کو ہماری ابتدائی دیکھ سکتے ہیں سرنی ان اقدار تھا. اور اس کے بعد یہ ہونا چاہئے 1، 2، 3، 4، 5، 6، 7، 8، 9 میں کیا گیا. یہ کام نہیں کر رہا. آہ. ہم کیا کریں؟ سامعین: ڈیبگ. ANDI پینگ: ٹھیک ہے، ہم اس کی کوشش کر سکتے ہیں. ہم ڈیبگ کر سکتے ہیں. تھوڑا سا باہر زوم. ہمارے توڑ مقام مقرر کرتے ہیں. کی like-- ٹھیک چلتے ہیں. ہم نے پہلے ہی جانتے ہیں کہ وجہ تو ان لائنوں، 15 22 کے ذریعے، میں کر رہا ہوں ہے کیونکہ working-- ہیں بس کے ذریعے اور printing-- iterating کر میں آگے بڑھو اور اس کو چھوڑ کر سکتے ہیں. کی لائن 25 میں شروع کرتے ہیں. OOP، مجھے اس سے چھٹکارا حاصل کرنے کی اجازت. سامعین: تو توڑ مقام کی بگ جہاں شروع ہوتا ہے؟ ANDI پینگ: یا رک جاتا ہے. سامعین: یا رک جاتا ہے. ANDI پینگ: جی ہاں. آپ ایک سے زیادہ breakpoints کے مقرر کر سکتے ہیں اور یہ صرف ایک سے دوسرے کود کر سکتے ہیں. لیکن اس معاملے میں ہم نہیں جانتے جہاں غلطی ہو رہا ہے. تو ہم صرف کرنا چاہتے ہیں اوپر سے نیچے کی طرف سے شروع. جی ہاں. ٹھیک ہے. تو یہاں اس لائن، ہم میں قدم کر سکتے ہیں. تم، یہاں نیچے دیکھ سکتے ہیں ہم نے ایک صف ہے. وہ اقدار ہیں صف میں ہیں کہ. تم دیکھتے ہو، کہ کس طرح 0 انڈیکس، یہ ، اوہ قدر کے مساوی ہے میں زوم کرنے کے لئے کوشش کرنے کے لئے جا رہا ہوں. معاف کرنا، یہ بہت مشکل ہے صف 0 انڈیکس میں دیکھتے کرنے کے لئے، ہم 4 کی قدر ہے اور تو آگے اور اسی طرح. ہم اپنے مقامی متغیر ہے. اب میں کے برابر ہے ہم اسے بننا چاہتا ہوں جو 0،. اور اس طرح کے ذریعے نکلنے رکھ دو. ہماری کم سے کم، 0 کے برابر ہے جو ہم نے اسے بننا چاہتا ہوں. اور پھر ہم آپ کے لئے ہماری دوسری داخل لوپ، سرنی-J سرنی میں سے کم ہے تو، جو یہ نہیں تھا. تو آپ کس طرح دیکھا کہ ختم چھوڑا؟ سامعین: تو اگر ہونا چاہئے کم از کم، تمام that-- نہیں کرنا چاہئے کہ لوپ کے لئے سب سے پہلے اندر ہو؟ ANDI پینگ: نہیں، کیونکہ اگر آپ اب بھی جانچ کرنا چاہتے ہیں. آپ کو ہر ایک موازنہ کرنا چاہتا ہوں وقت، آپ کو اس کے ذریعے چلانے کے بعد بھی. آپ کو صرف یہ کرنا چاہتا ہوں نہیں پہلے درہ کے ذریعے پر. آپ کے ساتھ یہ کرنا چاہتا ہوں ایک بار پھر ایک اضافی پاس. تو آپ کے لئے جانچ کرنا چاہتے ہیں اندر آپ کی حالت. تو ہم صرف کرنے کے لئے جا رہے ہیں یہاں کے ذریعے چل رہا رکھنے کے. میں نے لوگوں کو آپ کو ایک اشارہ دے دونگا. یہ حقیقت کے ساتھ کیا کرنا ہے کہ جب آپ کو آپ کی جانچ پڑتال کر رہے مشروط آپ کی جانچ پڑتال نہیں کر رہے ہیں صحیح انڈیکس کے لئے. تو اب آپ کے لئے جانچ پڑتال کر رہے ہیں جے کی سرنی انڈیکس سرنی سے کم ہے میں انڈیکس. لیکن کیا آپ کو سائن اپ کر رہے ہیں لوپ کے لئے کے آغاز؟ تم نے کے برابر J قائم نہیں کر رہے ہیں؟ جی ہاں، تو ہم اصل کر سکتے ہیں یہاں ٹھیک کرنے والا کھولتا باہر نکلیں. تو ہمارے pseudocode میں ایک نظر ڈالیں. For-- ہم جا رہے ہیں میں 0 کے برابر ہے میں شروع. ہم 1 ن مائنس تک جانے کے لئے جا رہے ہیں. کی جانچ پڑتال کرتے ہیں، ہم اس کا حق ہے؟ جی ہاں، اس کا حق تھا. تو یہاں کے اندر، ہم ہیں ایک کم از کم قیمت بنانے کے لئے جا اور میں کہ برابر مقرر. ہم نے ایسا کیا؟ جی ہاں، کیا. اب ہمارے اندرونی کے لئے لوپ میں، ہم ہیں J کیا کرنے جا میں ن مائنس 1 برابر. ہم نے ایسا کیا؟ بے شک، ہم نے کیا ہے. تاہم، ہم یہاں کیا موازنہ کر رہے ہیں؟ سامعین: J پلس 1. ANDI پینگ: بالکل. اور پھر آپ کو قائم کرنے کے لئے چاہتے ہیں کے لئے جا رہے ہیں J پلس 1 کے طور پر اچھی طرح سے کے برابر آپ کم از کم. تو میں واقعی فوری طور پر اس کے ذریعے چلا گیا. تم لوگ سمجھتے ہو کیوں یہ J علاوہ 1 ہے؟ ٹھیک ہے. آپ کی صف میں، میں تو کے ذریعے آپ سب سے پہلے پاس، آپ کے لوپ کے لئے، int کے لئے میں 0 کے برابر ہے، صرف دو یہ ابھی تک تبدیل نہیں کیا گیا فرض. ہم مکمل طور پر، کے ایک صف ہے، صرف چار ناچھانٹا ہوا عناصر، ٹھیک ہے؟ تو ہم نے 0 کے برابر ابتدا کرنا چاہتے ہیں. اور میں جا رہا ہے صرف اس لوپ کے ذریعے چلاتے ہیں. اور تو سب سے پہلے پاس میں، ہم جا رہے ہیں "منٹ" نامی ایک متغیر کی ابتدا کرنے کہ وجہ سے بھی، مجھے برابر ہم نے ایک کم از کم قیمت نہیں ہے. تو اس کے ساتھ ساتھ 0 فی الحال برابر ہے. اور پھر ہم اس کے ذریعے جانے کے لئے جا رہے ہیں. اور ہم پھر iterate کرنا چاہتے ہیں. اب ہم پتہ چلا ہے کہ کیا ہماری کم از کم ہم کے ذریعے iterate کرنا چاہتے ہیں، ہے اس کا موازنہ ہے تو پھر حق، کو دیکھنے کے لئے؟ تو J، یہاں، جا رہا ہے برابر میں، 0 ہے. اور تو سرنی J کے علاوہ میں، جو کم کے طور پر، اگلے ختم ہو چکا ہے کہ ایک ہے کیا آپ موجودہ کم از کم کے مقابلے میں قیمت آپ تبادلہ کرنا چاہتے ہیں، ہے. تو ہم نے کا کہنا ہے کہ چلو 2، 5، 1، 8، طرح، ہے. ٹھیک ہے اب، میں برابر ہے 0 اور J 0 کے برابر ہے. اور یہ کہ ہمارے کم از کم قیمت ہے. سرنی-J تو پلس مائنس مائنس ایک تو کہ ہم دیکھ رہے ہیں ایک کے بعد ہے ، اس سے پہلے ایک سے زیادہ ہے یہ کم از کم بننے جا رہی ہے. لہذا ہم یہاں 5 کہ دیکھیں اس سے کم نہیں ہے. تو یہ 5 نہیں کرنے کے لئے جا رہا ہے. ہم 1 درست، کم 2 ہے دیکھ رہے ہو؟ تو اب ہم ہماری کم از کم جانتے ہیں کہ 0، 1، 2 انڈیکس قدر ہونے جا رہا. جی ہاں؟ اور پھر آپ، یہاں نیچے جب آپ نے درست اقدار کا تبادلہ کر سکتے ہیں. تو تم لوگ صرف J کر رہے تھے جب پہلے، آپ کو ایک میں نہیں دیکھ رہے تھے اس کے بعد. تم دیکھ رہے تھے اسی قدر، جس یہ صرف کچھ بھی نہیں کر گیا ہے. کہ سب کو احساس ہے، کیوں ہم اس کے علاوہ وہاں 1 کی ضرورت ہے؟ ٹھیک ہے. اب یہ کرنے کے لئے کے ذریعے صرف چلانے اس بات کا یقین کوڈ کے باقی درست ہے. یہی وجہ ہے کہ کیا ہو رہا ہے؟ آہ، یہ یہیں منٹ ہے. ہم نے غلط قیمت کا موازنہ کر رہے تھے. ارے نہیں. اوہ ہاں، یہاں نیچے ہم تھے اس کے ساتھ ساتھ غلط اقدار کو گماگمن. ہم میں اور J دیکھ رہے تھے کیونکہ. وہ ہم کی جانچ پڑتال کر رہے تھے ہیں. ہم اصل میں تبادلہ کرنا چاہتے ہیں کم از کم، موجودہ کم از کم، جو کچھ بھی کے ساتھ ایک سے باہر ہے. اور تم لوگ نیچے دیکھ سکتے ہیں کے طور پر یہاں، ہم نے ایک کے مطابق صف ہے. یہ صرف کے ساتھ کیا تھا حقیقت ہے کہ جب ہم جانچ پڑتال کر رہے تھے ہم موازنہ کر رہے تھے اقدار، ہم صحیح اقدار میں نہیں دیکھ رہے تھے. ہم وہی دیکھ رہے تھے یہاں، اصل میں یہ گماگمن نہیں. آپ کو اگلے ایک کو دیکھنے کے لئے ہے یہ کرنے کے لئے اور پھر آپ کو تبادلہ کر سکتے ہیں. اس طرح اس طرح کیا ہے پہلے ہمارے کوڈ bugging سے. اور کیا میں یہاں کیا سب کچھ ہے ٹھیک کرنے والا کھولتا آپ کے لئے کیا کر سکتے ہیں میں صرف اس پر کیا بورڈ، یہ آسان ہے کیونکہ کی کوشش کر رہے کی بجائے دیکھنے کے لئے ٹھیک کرنے والا کھولتا پر میں زوم کرنے. کہ سب کو احساس ہے؟ ٹھنڈا. بالکل ٹھیک. ہم کے بارے میں بات کرنے کے لئے پر منتقل کر سکتے ہیں asymptotic سنکیتن، جس کہہ کے صرف ایک پسند ہیں طریقہ ہے ان قسم کی سب سے runtimes اور. تو میں نے لیکچر میں، ڈیوڈ جانتے ہیں، runtimes اور صلی اللہ علیہ وسلم کو چھو لیا. اور وہ پورے فارمولے کے ذریعے چلا گیا کے runtimes اور حساب کرنے کے لئے کس طرح. اس کے بارے میں کوئی تشویش نہیں. تم واقعی جاننا چاہتے ہیں تو کہ کس طرح کام کرتا، سیکشن کے بعد مجھ سے بات کرنے کے لئے آزاد محسوس کرتے ہیں. ہم آپ کے ذریعے چل سکتے ہیں ایک دوسرے کے ساتھ فارمولوں. لیکن آپ لوگوں کو واقعی کرنا پڑے معلوم ن 2 مربع ہے (ن) مربع کے طور پر ایک ہی بات ہے. سب سے بڑی تعداد کی وجہ سے، مائپادک، سب سے اگتا ہے. اور اس طرح ہمارے مقاصد کے لئے، ہم پرواہ تمام بڑھتی ہوئی ہے کہ وشال تعداد ہے. تو کیا سب سے بہتر صورت ہے انتخاب کی طرح کے رن ٹائم؟ آپ کے پاس کرنے کے لئے جا رہے ہیں ایک فہرست کے ذریعے iterate کرنے کے لئے اور اس کے بعد کے ذریعے iterate کہ فہرست کے باقی، کتنی بار ہو آپ، شاید رہا میں سب سے زیادہ case-- میں کیس بہترین، کے ذریعے چلایا sorry--؟ شاید بہتر سوال یہ ہے پوچھیں کرنے کے لئے، بدترین صورت کیا ہے انتخاب کی طرح کے رن ٹائم. سامعین: (ن) مربع. ANDI پینگ: یہ (ن) کا حق، مربع. اس طرح ہے تو ایک آسان طریقہ سوچنا، آپ loops کے لئے اندر در اندر دو کسی بھی وقت، یہ مربع ن کیا جا رہا ہے. آپ نہیں ہیں صرف اس وجہ سے ایک بار پھر ذریعے چل رہا ہے، آپ کو واپس جانا ہے کے ارد گرد اور اس کے ذریعے چلانے ایک بار پھر ہر قیمت کے لئے اندر. اس صورت میں، آپ کو (ن) چلا رہے ہیں اوقات (ن)، افسوس is-- جس، مربع (ن) اوقات (ن)، مربع ن برابر ہے جس. اور ترتیب دیں بھی تھوڑا سا ہے معنوں میں منفرد یہ تو کوئی فرق نہیں ہے کہ اقدار کے لئے میں پہلے سے ہی ہیں. یہ اب بھی ویسے بھی کے ذریعے چلانے کے لئے جا رہا ہے. صرف یہ 1، 2، 3، 4 تھا کا کہنا ہے کہ. قطع نظر اس میں تھا یا نہیں آرڈر، یہ اب بھی کے ذریعے بھاگ گیا کیا جائے گا اور اب بھی کم از کم قیمت کی جانچ پڑتال. اسے بنایا ہوتا چیک کی ایک ہی تعداد ہر وقت، یہاں تک کہ اگر اصل میں کچھ بھی ہاتھ نہیں چھوتے. ایسی صورت میں تو، سب سے بہترین اور سب سے زیادہ runtimes اور اصل میں برابر ہیں. تو متوقع رن ٹائم انتخاب کی طرح، جو ہم علامت کی طرف سے نامزد تھیٹا کے، تھیٹا، اس معاملے میں، بھی مربع ن کیا جائے گا. ان میں سے تینوں مربع ن کیا جائے گا. کیوں سب واضح ہے رن ٹائم مربع ن ہے؟ بالکل ٹھیک. تو میں صرف فوری طور پر چلانے کے لئے جا رہا ہوں قسم کے باقی کے ذریعے. کے لئے الگورتھم بلبلا، یاد sort-- اس سے پہلے ایک تھا ڈیوڈ لیکچر میں گئے. بنیادی طور پر، آپ کو قدم پوری فہرست کے ذریعے اور آپ کو صرف آپ swap-- ایک وقت میں دو کا آپس میں موازنہ. اور ایک، زیادہ ہے تو آپ کے مقابلے میں صرف ان کے تبادلہ. ان سے زیادہ ہیں تو، آپ کا تبادلہ کریں گے. میں یہیں سرکاری مل گیا ہے. تو صرف آپ 8، 6، 4، 2 تھا کہنے دو. آپ 8 اور 6 موازنہ گا. تم ان کا تبادلہ کرنے کی ضرورت ہے. آپ 8 اور 4 موازنہ کریں گے. تم ان کا تبادلہ کرنے کی ضرورت ہے. آپ 8 تبادلہ کرنا ہے تو 2، کے ساتھ ساتھ ان کو تبدیل. اس طرح کے ایک احساس میں، آپ دیکھ سکتے ہیں، وقت کی ایک طویل مدت کے دوران باہر ادا کیا، کس طرح بلبلا کی اقدار قسم کے ہے جو ختم ہو جاتا ہے، ہم یہ کیوں کہتے ہیں بلبلا طرح. ہم صرف ایک بار پھر ذریعے چلایا جائے گا ہماری دوسری پاس، اور ہماری تیسری پاس، اور ہمارے چوتھے پاس. بنیادی طور پر، بلبلا طرح صرف چلتا ہے آپ کو کوئی مزید سویپ نہیں ہے جب تک. اس معنی میں، یہ صرف ہے اس کے لئے عام طور پر pseudocode کے. کوئی تشویش نہیں، ان تمام آن لائن ہو جائے گا. ہم اصل میں اس پر جانے کے لئے کی ضرورت نہیں ہے. ہم صرف ایک کاؤنٹر کی ابتدا 0 سے شروع ہوتی ہے کہ متغیر. اور ہم پوری صف کے ذریعے iterate. اور ایک قدر اگر یہ is-- تو قیمت، اس قدر سے زیادہ ہے تم ان کا تبادلہ کرنے کے لئے جا رہے ہیں. اور پھر آپ صرف ہو جا رکھنے کے لئے جا رہا. اور آپ کو شمار کرنے جا رہے ہیں. اور آپ کو صرف کر رکھنے کے لئے جا رہے ہیں اس کاؤنٹر زیادہ ہے جبکہ جس کا مطلب ہے 0، کے مقابلے میں ہر وقت آپ کا تبادلہ ہے، آپ کو جانا چاہتے ہیں واپس اور پھر چیک کریں. آپ جانتے ہیں جب تک جانچ پڑتال رکھنے کے لئے چاہتے ہیں کہ آپ کو اب تبادلہ کرنے کی ضرورت نہیں. تو سب سے بہتر اور سب سے زیادہ ہیں کیس بلبلا طرح کے runtimes اور؟ اور hint-- یہ اصل میں مختلف ہے معنوں میں انتخاب کی طرح سے ان دونوں جوابات ہی نہیں ہیں کہ. میں کیا ہوگا کے بارے میں سوچو ایک کیس یہ پہلے ہی کے مطابق کیا گیا تھا تو. اور کے بارے میں کیا سوچتے ہیں یہ تھا تو کیا ہوگا صورت میں جس میں یہ حل نہیں کیا گیا تھا. اور آپ کی قسم چلا سکتے ہیں کیوں کے ذریعے ہو رہا ہے. میں، 30 کی طرح، تم لوگوں کو دے دونگا سیکنڈ اس بارے میں سوچنا. ٹھیک ہے. کوئی کیا میں ایک اندازہ ہے بلبلا طرح کے بدترین کیس رن ٹائم ہے؟ جی ہاں. سامعین: یہ، کی طرح، (ن) بار کیا جائے گا ن مائنس 1 یا اس طرح کچھ؟ کی طرح، یہ چلتا ہے ہر وقت، یہ ایک سویپ کم، کی طرح، صرف ہے جو کچھ بھی یہ تھا. ANDI پینگ: جی ہاں، تو آپ کو مکمل طور صحیح ہو. یہ جس میں ایک کیس ہے آپ جواب اصل میں زیادہ پیچیدہ تھا ایک کے مقابلے میں ہم دینے کی ضرورت ہے. تو یہ ہوں run-- جا رہا ہے یہاں یہ سب کو ختم کرنے جا رہے ہیں. سب اچھا ہے؟ میں نے اس کو مٹا کر سکتے ہیں؟ ٹھیک ہے. تم (ن) کے ذریعے چلانے کے لئے جا رہے ہیں بار پہلی بار، ٹھیک ہے؟ اور وہ کے ذریعے چلانے کے لئے جا رہے ہیں ن مائنس 1 دوسری بار، ٹھیک ہے؟ اور پھر آپ کو رکھنے کے لئے جا رہے ہیں (ن) 2 بونا، وغیرہ، جا. ڈیوڈ جہاں ایک لیکچر، میں نے یہ کیا، آپ کو ان تمام اقدار کو شامل ہے تو، آپ ہے کہ کچھ حاصل like-- yeah-- بنیادی طور پر صرف کم کر دیتا ہے جس میں 2، سے زائد (ن) کے نیچے مربع. آپ کو ایک حاصل کرنے کے لئے جا رہے ہیں وہاں عجیب حصہ. اور اس طرح صرف جانتے ہیں کہ (ن) نے ہمیشہ مربع حصہ زیادہ مقدم ہے. اور تو اس صورت میں، سب سے زیادہ رن ٹائم مربع ن کیا جائے گا. یہ نزولی میں تھا تو آرڈر، آپ کو لگتا ہے کہ، ایک سویپ ہر وقت بنانے کے لئے ہے. ممکنہ طور پر، ہو جائے گا، بہترین صورت رن ٹائم؟ فہرست میں پہلے ہی تھا تو، صرف کا کہنا ہے کہ ترتیب میں، رن ٹائم کیا ہو گا؟ سامعین: (ن). ANDI پینگ: یہ بالکل، (ن) ہے. اور کیوں یہ ن ہے؟ سامعین: کیونکہ آپ صرف ہر بار چیک کرنے کے لیے ہے. ANDI پینگ: بالکل. ، ممکن بہترین رن ٹائم میں تو اس فہرست میں پہلے ہی تھا تو sorted--، کی 1، 2، 3 کا کہنا ہے کہ آپ کو 4-- بس کے ذریعے جائیں گے، آپ، جانچ پڑتال کرے گا آپ اوہ، وہ سب کے سب باہر پین، دیکھیں گے. میں تبادلہ کرنے کی ضرورت نہیں تھی. میرا کام ہوگیا. تو اس صورت میں، یہ صرف ن ہے یا اقدامات کی تعداد آپ کو صرف پہلی فہرست میں چیک کرنے کے لئے تھا. اور اس کے بعد، اب ہم مارا اندراج کی طرح، جہاں الگورتھم کو تقسیم کرنے کی بنیادی طور پر ہے یہ ایک حل اور ناچھانٹا ہوا حصہ میں. اور پھر ایک ایک کرکے، ناچھانٹا ہوا اقدار ہیں ان کی مناسب میں داخل فہرست کے آغاز میں عہدوں. لہذا مثال کے طور، ہم ایک ہیں 3 کی فہرست، 5، 2، 6، 4 بار. ہم اس وقت ہے کہ معلوم ہے ناچھانٹا ہوا ہم صرف ہے کیونکہ اسے دیکھ رہے شروع کر دیا. ہم ایک نظر ڈالیں اور ہم جانتے ہیں کہ پہلی قیمت، حق کے مطابق ہے؟ آپ کو صرف کی ایک سرنی میں تلاش کر رہے ہیں سائز ایک، آپ کو اس کے مطابق ہے جانتے ہیں کہ. تو ہم جانتے ہیں کہ دیگر چار ناچھانٹا ہوا ہے. ہم سے گزرنا اور ہم اس قیمت کو دیکھنے کے. کی واپس چلتے ہیں. 5 اس قدر دیکھ رہے ہو؟ ہم اس پر ایک نظر ڈالیں. ہم نے 3 پر اس کا موازنہ. ہم اس سے زیادہ ہے کہ معلوم ہے 3، تو ہم اس کے مطابق ہے جانتے ہیں کہ. تو اب ہم جانتے ہیں کہ پہلے دو حل اور گزشتہ تین نہیں ہیں. ہم 2 پر ایک نظر ڈالیں. ہم سب سے پہلے 5 کے ساتھ اس کی جانچ پڑتال. یہ 5 سے بھی کم ہے؟ ایسا نہیں ہے. تو ہم نیچے دیکھ رکھنے کے لئے ہے. اس کے بعد آپ 3 سے دور کی جانچ پڑتال 2. اس سے کم ہے؟ نہیں. تو آپ کو ایک 2 داخل کرنے کی ضرورت ہے جانتے ہیں سامنے میں اور 3 اور 5 دونوں باہر دھکیل دیا جائے کرنے کی ضرورت ہے. 6 اور 4 کے ساتھ ایک بار پھر ایسا. اور ہم صرف بنیادی طور پر جانچ پڑتال رکھنا ہم صرف کی جانچ پڑتال جہاں،، چیک کریں. اور یہ حق میں ہے جب تک پوزیشن، ہم اس قسم کی صرف صحیح پوزیشن میں داخل، جو اس کا نام کہاں سے آیا ہے. تو یہ صرف الگورتھم ہے، pseudocode کے SE فی، قسم کی، ہم کو نافذ کرے گا کہ کس طرح ایک اندراج کی طرح. pseudocode کے یہاں ہے. یہ سب ہے آن لائن. کوئی تشویش نہیں تم لوگ ہیں اس کے نیچے کاپی کرنے کے لئے کی کوشش کر رہے. تو ایک بار پھر، اسی question-- کیا سب سے بہترین اور سب سے زیادہ runtimes اور ہو جائے گا اندراج کی طرح ہے؟ یہ آخری سوال پر بہت ملتا جلتا ہے. میں، 30 کی طرح، تم لوگوں کو دے دونگا سیکنڈ کے طور پر اچھی طرح سے اس کے بارے میں سوچنا. کسی کو بھی چاہتا ہے ٹھیک ہے مجھے سب سے زیادہ رن ٹائم دے؟ جی ہاں. سامعین: (ن) مربع. ANDI پینگ: یہ مربع ن ہے. اور کیوں یہ مربع ن ہے؟ سامعین: کیونکہ معکوس ترتیب، آپ کو کرنا پڑے is-- جو، ن اوقات کے ذریعے جانے کے (ن) کے ANDI پینگ: جی ہاں، بالکل. بلبلا طرح میں تو کے طور پر ایک ہی بات. اس فہرست میں ہے تو نزولی ترتیب، تم پہلی بار چیک کرنا ہوگا. اور پھر ساتھ ہر اضافی قیمت، تم ضرورت کے لئے جا کے خلاف اس کی جانچ پڑتال کرنے کے لئے حق ہر ایک کی قیمت؟ اور اس طرح مکمل طور پر، آپ کو بنانے کے لئے جا رہے ہیں ایک ن پاس اوقات ایک دوسرے ن، پاس ہے جس مربع ن ہے. بہترین کیس کے بارے میں؟ جی ہاں. سامعین: ن مائنس 1، کیونکہ سب سے پہلے پہلے ہی مربع ہے. ANDI پینگ: تو، قریب. جواب اصل (ن) ہے. سب سے پہلے ایک ہے کیونکہ حل، یہ واقعی میں نہیں کر سکتے ہیں ہم صرف میں، باہر lucked مثال کے طور پر، 2 سب سے چھوٹی تعداد ہونا ہوا. لیکن کہ ہمیشہ ایسا نہیں ہو گا. 2 پہلے ہی شروع میں حل کیا جاتا ہے لیکن آپ، نظر آتے ہیں اور یہاں ایک 1 ہے 1 ٹکرانا کی جا رہی ہے. اور اسے ختم کرنے کے لئے جا رہا ہے اپ بھی ٹکرا جا. ، بہترین صورت میں تو یہ اصل میں صرف (ن) ہونے جا رہا ہے. اگر آپ کے ذہن 1، 2، 3، 4، 5، 6، 7، 8، تم کے ذریعے چلانے کے لئے جا کہ پورے فہرست بار سب کچھ ٹھیک تو دیکھنے کے لئے چیک کرنے کے لیے. چلانے پر سب واضح ہے کے طور پر اچھی طرح سے انتخاب کے اوقات؟ مجھے کے ذریعے جا رہا ہوں یہ واقعی تیزی سے. لیکن صرف اگر تم جانتے ہو کہ پتہ عام تصورات، آپ اچھا ہونا چاہیئے. ٹھیک ہے. تو میں صرف کی طرح، شاید تم لوگوں کو دے دونگا، ایک منٹ اپنے پڑوسیوں سے بات کرنے ہیں کچھ پر اہم اختلافات کی قسم کی ان اقسام کے درمیان. ہم جلد ہی چلے جائیں گے. سامعین: ٹھیک ہے، اوہ. ANDI پینگ: جی ہاں. ٹھیک ہے. ٹھنڈا، ایک طبقے کے طور پر دوبارہ قیام دو. ٹھیک ہے. تو یہ تھا قسم کی ایک معنوں میں کھلی ختم سوال کہ ان کے جوابات کے بہت سے ہے. اور ہم مختصر طور پر ان میں سے کچھ چلے جائیں گے. میں صرف آپ لوگوں کو حاصل کرنے کے لئے کرنا چاہتا تھا فرق کے بارے میں سوچ قسم کے تمام تین اقسام. اور میں، بھی، ایک عظیم سنا کیا کرنا ہے ضم طرح ہے question--؟ بڑا سوال، کہ ہے کیونکہ کیا ہم اگلے چھپا رہے ہیں. تو قسم ہے ضم کام کرتا ہے کہ ایک طرح بہت مختلف دیگر قسم سے. تم لوگ دیکھتے سکتا ہے ڈیوڈ ڈیمو کیا وہ تمام ٹھنڈا تھا جہاں ضم کس طرح دیکھنے کے شور قسم لامتناہی، طرح، بھاگ گیا دیگر دو اقسام کے مقابلے میں تیزی سے؟ ٹھیک ہے. تو اس ضم کیونکہ قسم کہ تقسیم لاگو اور ہم نے اس تصور کو فتح لیکچر میں ایک بہت کے بارے میں بات. ہم کام کرنا چاہتے ہیں کہ اس معنی میں ہوشیار، آپ تقسیم کے وقت، مشکل نہیں اور مسائل کو فتح، اور ان کو توڑنے نیچے، اور اس کے بعد، ایک دوسرے کے ساتھ ڈال دیا اچھی چیزیں ہمیشہ ہو. ضم اس طرح تو قسم بنیادی طور پر کام کرتا ہے یہ ایک تقسیم ہے نصف میں ناچھانٹا ہوا سرنی. اور پھر یہ arrays کے دو حصوں ہے. اور یہ صرف ان دو حصوں قسم. یہ صرف میں، نصف میں تقسیم رکھتا نصف، نصف میں سب کچھ کے مطابق ہے اور پھر تکراری یہ سب ایک ساتھ رکھتا ہے. تو ہے کہ واقعی تجریدی ہے. تو اس pseudocode کے صرف تھوڑا سا ہے. اس میں عقل مندی ہے یہ چل رہا ہے طریقہ ہے؟ تو آپ کو ایک کا کہنا ہے کہ چلو (ن) کے عناصر کے صف، ٹھیک ہے؟ N 2 سے کم ہے تو، آپ کو واپس کر سکتے ہیں. آپ کو معلوم ہے اس کی وجہ سے ہے تو صرف ایک ہی چیز، اس کے مطابق ہونا ضروری ہے. ورنہ، آپ کو بائیں نصف ترتیب، اور پھر آپ کو دائیں نصف ترتیب، اور پھر آپ کو ضم. کہ بہت آسان لگتا ہے جبکہ تو، حقیقت میں، اس کے بارے میں سوچ رہا ہے مشکل کی قسم. آپ کی طرح ہیں کیونکہ، اچھی طرح سے، اس قسم کے خود پر چل رہا ہے. ٹھیک ہے؟ یہ خود پر چل رہا ہے. تو اس معنی میں، ڈیوڈ چھو کلاس میں تکرار پر. اور یہ کہ ایک تصور ہے ہم کے بارے میں بات کریں گے. یہ کہ، ان دو لائنوں ہے یہاں، اصل میں صرف پروگرام ہے یہ کہہ خود کو چلانے کے لئے مختلف ان پٹ کے ساتھ. تو بجائے کے ساتھ خود کو چلانے کے مقابلے میں (ن) کے عناصر کے مکمل طور پر، آپ اس میں ٹوٹ کر سکتے ہیں بائیں نصف اور دائیں نصف اور پھر اس کو چلانے کے. اور پھر ہم، ضعف اسے دیکھو گے میں نے ایک بصری سیکھنے ہوں کیونکہ. یہ میرے لئے بہتر کام کرتا ہے. تو ہم یہاں ایک بصری مثال کے طور پر نظر آئے گا. ، چھ ہم ایک صف ہے کا کہنا ہے کہ عناصر، 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 پینگ: جی ہاں. تو کیا ہو رہا ہے آپ کو اس بنیادی طور پر ہے ایک برانڈ نئی صف پیدا کر رہے ہیں. تو آپ، یہاں، میں جانتے ہیں کہ سائز 3 کے دو arrays کے، ٹھیک ہے؟ تو آپ جانتے ہیں کہ میرے مطابق صف چھ عناصر کی ضرورت ہے. تو آپ کو صرف ایک کی تخلیق میموری کی نئی رقم. تو آپ کی قسم کی طرح ہیں ، میموری کی بیکار ہونے کی وجہ سے لیکن اس سے کوئی فرق نہیں ہے یہ اتنا چھوٹا ہے کیونکہ. تو آپ 1 دیکھو اور آپ کو 2 پر نظر ڈالیں. اور آپ 1 سے کم 2 ہے. تو آپ 1 میں جانا چاہئے جانتے ہیں کہ ان میں سے سب کے آغاز. یہاں تک کہ آپ کی ضرورت نہیں ہے 3 اور 5 میں نظر آتے ہیں. تو آپ 1 وہاں جاتا ہے جانتے ہیں. تو آپ بنیادی طور 1 کاٹ. یہ ہمارے لئے مردہ، کی طرح، ہے. اس وقت ہم صرف 2 ہے، 3، 5، اور پھر 4 اور 6. اور پھر آپ کو، آپ کو معلوم ہے موازنہ 4 اور 2، اوہ، 2 میں وہاں جانا چاہیئے. تو آپ 2 نیچے plop یہ، آپ اسے کاٹ. تو پھر آپ صرف 3 ہے اور 4 اور 6 میں 5. اور آپ کو صرف اس سے دور کاٹ رکھنے آپ کو صف میں ڈال جب تک. سامعین: تو کیا تم صرف ہمیشہ رہے ہیں [اشراوی] کا موازنہ؟ ANDI پینگ: بالکل. تو اس معنی میں، تم صرف موازنہ، بنیادی طور پر، دوسرے نمبر کے خلاف ایک بڑی تعداد. اور آپ جانتے ہیں کیونکہ یہ آپ کے مطابق ہے کہ کے ذریعے تلاش کرنے کی ضرورت نہیں ہے تعداد کے. آپ کو صرف سب سے پہلے میں نظر ہے. اور پھر آپ صرف plop یہ کر سکتے ہیں ان کے نیچے، آپ کو معلوم ہے کیونکہ وہ تعلق رکھتے ہیں کی ضرورت ہے جہاں وہ تعلق رکھتے ہیں. جی ہاں. اچھا سوال. اور پھر تم میں سے کوئی تو تھوڑا سا پر عزم ہیں، اس کوڈ کو دیکھنے کے لئے آزاد محسوس کرتے ہیں. یہ اصل میں ہے جسمانی نفاذ ہم ضم طرح لکھیں گے کہ کس طرح کی. اور آپ کو یہ بہت مختصر ہے، دیکھ سکتے ہیں. پیچھے لیکن خیالات یہ بہت پیچیدہ ہیں. لہذا آپ کو اس سے باہر ڈرائنگ کی طرح محسوس کرتے ہیں تو اپنا ہوم ورک آج رات میں، بلا جھجھک. ٹھیک ہے. تب داؤد نے بھی لیکچر میں اس سے زیادہ چلا گیا. بہترین صورت کیا ہیں runtimes اور، بدترین صورت runtimes اور، اور ضم طرح کی توقع runtimes اور؟ ایک جوڑے سیکنڈ سوچنا. یہ بہت مشکل ہے، لیکن قسم کی آپ اس کے بارے بدیہی لگتا ہے. بالکل ٹھیک. سامعین: بدترین صورت ن لاگ ان ن ہے؟ ANDI پینگ: بالکل. اور کیوں یہ ن لاگ ان ن ہے. سامعین: یہ نہیں ہے اس کی وجہ سے ، تیزی سے تیزی سے ہو جاتا ہے تو یہ اس کی ایک تقریب کی طرح ہے بجائے بس ن ہونے کا مربع یا کچھ؟ ANDI پینگ: بالکل. تو وجہ اس پر رن ​​ٹائم لاگ ان ن ہے تم کیا ہو because-- (ن) ہے ان اقدامات کے تمام میں کر رہے ہیں؟ آپ کو صرف صحیح، نصف میں کاٹ رہے ہیں؟ اور اس طرح ہم کر رہے ہیں جب یہ کر رہا ہے کہ تمام، لاگ ان کریں نصف میں ایک مسئلہ تقسیم کیا جاتا ہے، نصف میں، نصف میں، زیادہ حصوں میں. اور اس معنی میں، آپ کی قسم کر سکتے ہیں لکیری ماڈل ختم کہ ہم استعمال کر رہا ہوں. آپ کو کاٹ کیونکہ جب نصف میں چیزیں، یہ ایک لاگ ان ہے. یہ صرف ریاضی ہے اس کی نمائندگی کرنے کی راہ. اور پھر آخر میں، آخر میں، تم صرف ایک آخری پاس کے ذریعے بنانے صحیح، ترتیب میں ان کے تمام ڈال کرنے کے لئے؟ اور لہذا آپ کو صرف کرنے کی ضرورت ہے ایک بات کی جانچ پڑتال، کہ (ن) ہے. اور اس لئے تم اس قسم کی ہیں دونوں ضرب. آپ کہ حتمی مل گیا ہے کی طرح تو یہ (ن) کے ایک لاگ ان کے ساتھ یہاں (ن) کی جانچ پڑتال یہاں. اور آپ کو ضرب تو ان، کہ ن لاگ ان ن ہے. اور تو سب سے بہتر کیس اور بدترین کیس اور تمام ن لاگ ان ن ہیں کی توقع. یہ ایک طرح کی طرح بھی ہے. یہ انتخاب کی طرح کی طرح ہے یہ اس معنی میں کوئی فرق نہیں ہے آپ فہرست یہ صرف جا رہا ہے، ہے ایک ہی بات ہر وقت کرنا. ٹھیک ہے. اگرچہ، تم لوگوں کو دیکھ سکتے ہیں تو کے طور پر ہم (ن) through-- چلا ہے کہ قسم مربع، یہ بہت موثر نہیں ہے. اور یہاں تک کہ اس ن لاگ ان ن ہے سب سے زیادہ موثر نہیں. تم لوگ متجسس ہیں تو، قسم میکانزم موجود ہے وہ کر رہے ہیں تاکہ موثر ہیں کہ تقریبا بنیادی طور پر فلیٹ رن ٹائم میں. آپ کو کچھ لاگ ان کریں N کا مل گیا ہے. آپ کو کچھ ہے لاگ ن کے مل گیا ہے. ہم نے ان پر کو چھو نہیں ہے اب اس کلاس میں. لیکن تم لوگ متجسس ہیں تو، کیا ہے، گوگل کے لئے بلا جھجھک سب سے زیادہ موثر چھنٹائی میکانزم. میں وہاں ہیں، نہیں جانتے کچھ واقعی مضحکہ خیز ہیں، like-- کچھ واقعی وہاں ہے لوگوں کو کہ مضحکہ خیز ہیں. اور آپ کو کس طرح حیرت ہے وہ کبھی اس کے بارے میں سوچا. آپ کو کچھ اسپیئر ہیں تو، گوگل وقت، پر، کچھ مضحکہ خیز طریقے کیا ہیں اس کے ساتھ ساتھ کے طور پر قوم موثر ways-- لوگوں قسم کو لاگو کرنے کے قابل کیا گیا ہے. ٹھیک ہے. اور یہاں صرف ایک ہاتھ تھوڑا سا چارٹ ہے. میں، اس کوئز 0 سے پہلے، آپ سب جانتے ہیں اپنے کمرے میں شاید کوشش کی جائے گی کہ حفظ کرنے. تاکہ آپ لوگوں کے لئے وہاں میں اچھی بات ہے. بس made-- کہ منطق نہیں بھولنا کیوں ان کی تعداد پر واقع تھے. آپ کو ہمیشہ کھو رہے ہیں، صرف بنانے یقین ہے کہ آپ قسم کیا ہیں جانتے ہیں. اور آپ کے ذریعے چلا سکتے ہیں آپ کے دماغ میں ان کیوں ان لوگوں کو معلوم کرنا جوابات ان کے جوابات ہیں. بالکل ٹھیک. تو ہم منتقل کرنے کے لئے جا رہے ہیں آخر میں، تلاش کرنے کے لئے، پر. آپ کی وجہ سے ان کے طور پر جو pset کے پڑھا ہے، تلاش بھی کا حصہ ہے اس ہفتے کے مسئلہ سیٹ. آپ کو لاگو کرنے کے لئے کہا جائے گا تلاش کی دو اقسام. ایک لکیری تلاش ہے اور ایک بائنری تلاش ہے. تو لکیری تلاش کافی آسان ہے. آپ کو صرف عنصر تلاش کرنا چاہتے ہیں تم نے اسے حاصل تو ایک فہرست کو دیکھنے کے لئے. آپ کے ذریعے iterate کرنے کے لئے ہے. اور یہ کچھ کے برابر ہے تو، آپ کو صرف صحیح، اس کو واپس کر سکتے ہیں؟ لیکن ایک ہم سب سے زیادہ ہیں کے بارے میں بات کرنے میں دلچسپی بائنری تلاش ہے جس میں، ٹھیک ہے، تقسیم اور طریقہ کار کو فتح جو ڈیوڈ لیکچر میں مظاہرہ کر رہا تھا. فون بک مثال یاد رکھیں وہ لانے رکھتا ہے کہ، وہ قسم کی جدوجہد کی ہے کہ ایک یہ گزشتہ ایک سال پر تھوڑا سا، آپ نصف میں مسئلہ تقسیم جہاں، نصف میں، نصف میں، بار بار، آپ کے لئے تلاش کر رہے ہیں تلاش کرنے تک؟ اور آپ کو مل گیا ہے اس کے ساتھ ساتھ اس کا رن ٹائم. اور تم دیکھ سکتے، یہ ہے نمایاں طور پر زیادہ موثر تلاش کے کسی بھی دوسری قسم سے. تو ہم کے بارے میں جائیں گے اس طرح ایک بائنری تلاش کو لاگو کرنے ہے، ہم نے ایک صف تھا تو، 0 انڈیکس 6، سات عناصر، ہم right--، وسط میں دیکھ سکتے ہیں معذرت، ہمارے سوال تو first-- ہم سوال پوچھنا چاہتے ہیں تو، کرتا ہے صف، 7 کے عنصر پر مشتمل واضح طور پر، انسان ہونے کے ناطے، اور ہونے ایک چھوٹا سا سرنی اس طرح، یہ ہمارے لئے آسان ہے جی ہاں کا کہنا ہے کہ. لیکن جس طرح ایک بائنری لاگو کرنے کے لئے تلاش وسط میں دیکھنے کے لئے کیا جائے گا. ہم انڈیکس 3 جانتے ہیں کہ وسط، ہم نے کی وجہ سات عناصر موجود ہیں جانتے ہیں. کیا 7 2 سے تقسیم؟ آپ کو اضافی 1 اس دور کاٹ کر سکتے ہیں. آپ درمیان میں 3 مل گیا ہے. تو 7 کے برابر 3 صف ہے؟ یہ درست ہے، نہیں ہے؟ لیکن ہم چیک کے ایک جوڑے کر سکتے ہیں. 3 کم 7 یا اس سے زیادہ کی صف ہے 7 سے زیادہ 3 صف ہے؟ اور ہم نے اس سے بھی کم 7 سے ہے کہ معلوم ہے. تو ہم جانتے ہیں اوہ، یہ ضروری ہے کہ بائیں نصف میں نہیں ہو. ہمیں یہ ضروری ہے صحیح نصف میں، ٹھیک ہے؟ تو ہم صرف نصف صف بند کاٹ کر سکتے ہیں. ہم بھی کرنے کی ضرورت نہیں اب اس کی طرف دیکھو. ہم جانتے ہیں کہ وجہ ہمارے مسئلے کے نصف ہم جواب میں ہے ہمارا مسئلہ کے دائیں نصف. تو ہم صرف اب اس کی طرف دیکھو. تو اب ہم پر نظر ڈالیں چھوڑ دیا ہے کے وسط. یہ انڈیکس 5. ہم ایک بار پھر ایک ہی چیک کرنا اور ہم نے اسے چھوٹا ہے کہ دیکھیں. تو ہم نے اس کے بائیں کرنے کے لئے نظر. اور پھر ہم اس چیک دیکھیں. صف قیمت پر ہے 7 کے برابر انڈیکس 4 یہ ہے. تو ہم سچ واپس کیونکہ کر سکتے ہیں ہم ہماری فہرست میں قیمت مل گیا. میں کے ذریعے چلا گیا راستہ ہے سب کو اس کا احساس؟ ٹھیک ہے. میں، کی طرح، شاید تم لوگوں کو دے دونگا تین، چار منٹ معلوم کرنا کس طرح میں اس pseudocode سے. تو میں نے ایک لکھنے کے لئے آپ سے پوچھا تصور واپس آئے کہ تقریب میں بلایا تلاش () ایک قدر، ایک بولین قدر، کہ، کی طرح سچ تھا یا غلط آپ کو پتہ چلا تو سچ قیمت، تم نے نہیں کیا تو جھوٹے. اور پھر آپ کو تھے قیمت میں منظور اقدار، میں کے لئے تلاش کر رہے تھے جس میں صف اوہ، میں یقینی طور پر ڈال دیا ہے غلط جگہ میں. ٹھیک ہے. ویسے بھی، کہ ہونا چاہئے اقدار کے حق میں رہا. اور پھر int ن نمبر ہے اس صف میں عناصر کی. کس طرح آپ کی کوشش کے بارے جائیں گے میں اس مسئلہ pseudocode کے لئے کس طرح؟ میں تم جیسے لوگوں کو دے دونگا تین منٹ ایسا کرنے کے لئے. نہیں، میں only-- نہیں ہے جی ہاں، ٹھیک ہے یہاں ایک ہے. سامعین: کیا میں؟ ANDI پینگ: جی ہاں، میں سمجھ گیا. کہ کام کر رہا ہے؟ ٹھنڈا، ٹھیک ہے. ٹھیک ہے. ٹھیک لوگ، ہم ہیں میں اسے لگام کرنے کے لئے جا. ٹھیک ہے. تو ہم نے اس خوبصورت مل گیا ہے فرض اس میں ن اقدار کے ساتھ تھوڑا سرنی. میں لائنز اپنی طرف متوجہ نہیں تھا. لیکن ہم کے بارے میں کیسے جائیں گے یہ لکھنے کے لئے کی کوشش کر رہے؟ کسی کو بھی چاہتا ہے مجھے سب سے پہلے لائن دے؟ آپ مجھے دینا چاہتے ہیں تو اس pseudocode کی پہلی لائن. سامعین: [اشراوی] سامعین: آپ چاہتے ہیں کے ذریعے iterate کرنے کے لئے سامعین: صرف ایک لوپ کے لئے؟ سامعین: --for. ANDI پینگ: تو یہ ایک تھوڑا سا مشکل ہے. آپ چاہتے ہیں about-- سوچو اس لوپ چلانے رکھنے کے لئے زیادہ بار بار یہاں تک کہ جب؟ سامعین: [اشراوی] یہاں تک کہ قیمت اس قیمت کے برابر ہے. ANDI پینگ: بالکل. تو آپ کو اصل میں صرف لکھنا کر سکتے ہیں ہم اس سے بھی زیادہ آسان بنانے کے کر سکتے ہیں. ہم صرف صحیح، تھوڑی دیر لوپ کر سکتے ہیں؟ تو کیا تم صرف loop-- کر سکتے ہیں ہم اس میں کچھ دیر ہے کہ معلوم ہے. لیکن اب کے لئے، میں جا رہا ہوں کیا کے ذریعے - "لوپ" کا کہنا ہے کہ کرنے کے لئے؟ لوپ ہے until-- ہماری حالت ختم؟ میں نے اسے سنا لگتا ہے. میں نے کسی کو یہ کہتے سنا. سامعین: اقدار مشرق برابر. ANDI پینگ: پھر سے کہو. جب تک یا،: سامعین قیمت آپ تلاش کر رہے ہیں کے لئے درمیانی قیمت کے برابر ہے. ANDI پینگ: یہ وہاں نہیں ہے کیا ہے؟ اگر آپ کو تلاش کر رہے ہیں قیمت کے لئے اس صف میں اصل میں نہیں ہے؟ سامعین: آپ 1 واپس. ANDI پینگ: لیکن ہم کیا کرنا چاہتے ہیں ہم ایک حالت ہے تو جب تک لوپ؟ جی ہاں. سامعین: صرف ایک قدر ہے جب تک؟ ANDI پینگ: آپ لوپ until-- تو تم رہے ہیں جانتے ہیں ٹھیک ہے، ایک زیادہ سے زیادہ قیمت حاصل کرنے کے لئے جا رہے ہیں؟ اور تم جا رہے ہیں جانتے ہیں کہ حق ایک منٹ کی قیمت، ہے کرنے کے لئے؟ بھی، کہ کچھ ہے کیونکہ میں نے پہلے کہنا بھول گیا ہے کہ کچھ بائنری تلاش کے بارے میں اہم آپ کی صف پہلے ہی کے مطابق کیا جاتا ہے. ایسا کرنے کے لئے کوئی راستہ نہیں ہے کیونکہ یہ وہ صرف بے ترتیب اقدار ہیں تو. ایک تو تم نہیں جانتے دوسرے کے مقابلے میں بڑے، ٹھیک ہے؟ تو آپ جانتے ہیں کہ آپ زیادہ سے زیادہ اور آپ منٹ ٹھیک ہے، یہاں ہیں؟ آپ کو ایڈجسٹ کرنے کے لئے جا رہے ہیں آپ منٹ اور mid-- میں آپ زیادہ سے زیادہ صرف فرض آپ وسط قدر صحیح یہاں ہے آپ بنیادی طور پر کرنے کے لئے جا رہے ہیں لوپ آپ کم از کم ہے جب تک صحیح، آپ زیادہ سے زیادہ کے طور پر اسی، یا کے بارے میں اپنی زیادہ سے زیادہ آپ منٹ کے طور پر ہی نہیں ہے تو. ٹھیک ہے؟ جب ایسا ہوتا ہے، لہذا آپ کو معلوم ہے کہ آپ کو آخر میں اسی قدر مارا ہے. تو آپ کو آپ منٹ تک لوپ کرنا چاہتے ہیں ، سے کم یا افوہ to-- برابر ہے نہیں سے زیادہ یا برابر کم، زیادہ سے زیادہ around-- دیگر طریقہ ہے. اس معنی کیا ہے؟ مجھے لگتا ہے کہ حاصل کرنے کے لئے کچھ کوشش کرتا لیا. لیکن لوپ آپ زیادہ سے زیادہ قیمت تک بنیادی طور پر تقریبا کم ہے زیادہ یا آپ کم از کم کے برابر، ٹھیک ہے؟ آپ کو معلوم ہے کہ جب آپ کے converged ہے کہ. سامعین: تو کرے گا آپ زیادہ سے زیادہ قیمت کم از کم سے کم ہو جائے؟ ANDI پینگ: آپ کو رکھیں تو ، اس کو ایڈجسٹ جس ہم جا رہے ہیں اس میں کر رہے ہو. اس کا کوئی مطلب ہے؟ کم از کم اور زیادہ سے زیادہ صرف ہم شاید ہیں کہ integers کے کرنا چاہتے ہیں جا رکھنے کے لئے بنانے کے لئے ہم تلاش کر رہے ہیں جہاں کے ٹریک. صف موجود ہے کیونکہ سے قطع نظر ہم کیا کر رہے ہیں کی. کی طرح، ہم اصل میں جسمانی طور پر نہیں کر رہے ہیں صحیح، سرنی کاٹ؟ ہم صرف ایڈجسٹ کر رہے ہیں جہاں ہم تلاش کر رہے ہیں. اس کا کوئی مطلب ہے؟ سامعین: جی ہاں. ANDI پینگ: ٹھیک ہے. کہ ہمارے لوپ کے لئے شرط ہے اگر ایسا ہے تو، ہم اس لوپ کے اندر کیا چاہتے ہو؟ ہم کیا کرنا چاہتے ہیں جا رہے ہیں؟ تو اب، ہم مل گیا ہے ایک زیادہ سے زیادہ اور ایک منٹ، دائیں، شاید یہاں کہیں پیدا. ہم شاید کرنا چاہتے ہیں جا رہے ہیں حق ایک درمیانی، تلاش کرنے کے لئے؟ ہم کس طرح جا رہے ہیں مشرق تلاش کرنے کے قابل؟ mathematical-- کیا ہے سامعین: زیادہ سے زیادہ کے علاوہ 2 سے تقسیم منٹ. ANDI پینگ: بالکل. اس کا کوئی مطلب ہے؟ اور تم لوگ کیوں ہم دیکھتے ہیں ہم نے یہ کیا کیوں صرف use-- نہیں بجائے کرنے کے صرف (ن) 2 سے تقسیم؟ (ن) ایک قیمت ہے کیونکہ یہ ہے اسی رہنے کے لئے جا رہا ہے. ٹھیک ہے؟ لیکن ہم ہماری کم از کم ایڈجسٹ اور زیادہ سے زیادہ اقدار، وہ تبدیل کرنے جا رہے ہیں. اور اس کے نتیجے کے طور پر، ہمارے مڈل بھی تبدیل کرنے کے لئے کی جا رہی ہے. ہم چاہتے ہیں یہی وجہ ہے کہ یہاں اس حق کرنا. ٹھیک ہے. اور پھر، اب اس ہم جی ہاں our-- پتہ چلا ہے. سامعین: بس ایک فوری question-- جب آپ منٹ اور زیادہ سے زیادہ کا کہنا ہے کہ، ہم اس سنبھالنے کر رہے ہیں یہ پہلے ہی کے مطابق ہے؟ ANDI پینگ: جی ہاں، کہ اصل میں ایک ایک بائنری تلاش کے لئے پیشگی شرط، ہے کہ آپ کو اس کے مطابق ہے جاننے کے لئے. کیوں طرح ہے، آپ میں لکھنے آپ مسئلہ آپ بائنری تلاش سے پہلے مقرر. ٹھیک ہے. تو اب ہم جہاں ہمارے مڈ پوائنٹ جانتے ہیں کہ ، تم یہاں کیا کرنا چاہتے ہیں کیا جاتا ہے؟ سامعین: ہم آپس میں موازنہ کرنا چاہتے ہیں ایک دوسرے کے لئے ہے. ANDI پینگ: بالکل. تو آپ کا آپس میں موازنہ کرنے کے لئے جا رہے ہیں قیمت کے وسط، ٹھیک ہے؟ اور یہ کہ کیا بتانا ہے ہم آپس میں موازنہ ہے؟ کیا ہم بعد کرنا چاہتے ہیں؟ سامعین: قیمت زیادہ ہے تو وسط سے، ہم نے اسے کاٹ کرنے کے لئے چاہتے ہیں. ANDI پینگ: بالکل. قیمت زیادہ ہے تو وسط سے، ہم ہیں ان کو تبدیل کرنا چاہتے ہیں جا کم از کم اور maxes، ٹھیک ہے؟ کیا ہم کو تبدیل کرنا چاہتے ہیں؟ ہم جانتے ہیں اگر ایسا ہے تو قیمت کہیں ہے یہاں، ہم تبدیل کرنے کے لئے کیا کرنا ہے؟ ہم اپنے تبدیل کرنا چاہتے ہیں کم از کم حق، وسط ہو؟ اور پھر، اس میں ہے نصف، کیا ہم کو تبدیل کرنا چاہتے ہیں؟ سامعین: آپ زیادہ سے زیادہ. ANDI پینگ: جی ہاں. اور پھر آپ صرف جا رہے ہیں ، صحیح looping کے رکھنے کے لئے؟ کیونکہ اب، ایک iteration کے بعد کے ذریعے، آپ کو یہاں ایک زیادہ سے زیادہ مل گیا ہے. اور پھر آپ کو ایک وسط دوبارہ کر سکتے ہیں. اور پھر آپ کا آپس میں موازنہ کر سکتے ہیں. اور آپ جا رکھنے کے لئے جا رہے ہیں منٹ اور maxes تک بنیادی طور پر converged ہے. آپ کو معلوم ہے اور جب کہ آپ اس کے آخر مارا ہے. اور یا تو تم یہ پتہ چلا ہے یا آپ کو اس نقطہ پر نہیں ہے. اس سب کو احساس ہے؟ ٹھیک ہے. یہ بہت اہم ہے آپ کو کرنا پڑے گا کیونکہ اپنے کوڈ آج رات میں یہ لکھنے کے لئے. لیکن تم لوگوں کو ایک بہت اچھا ہے آپ کر کیا جانا چاہئے کا احساس، جو اچھا ہے. ٹھیک ہے. تو ہم سات کے بارے میں مل گیا ہے منٹ سیکشن چھوڑ. تو ہم کے بارے میں بات کرنے کے لئے جا رہے ہیں ہم کیا کر رہے ہو جائے گا کہ اس pset. تو pset کے دو حصوں میں تقسیم کیا جاتا ہے. پہلی ششماہی شامل ایک تلاش پر عمل درآمد جس میں آپ کو ایک لکیری تلاش لکھنا، ایک بائنری تلاش، اور ایک چھںٹائی الگورتھم. تو یہ سب سے پہلے ہے ایک pset جہاں میں وقت کہا جاتا ہے ہم نے تم لوگوں دے گا تقسیم کے کوڈ، کوڈ ہے جو ہم سے پہلے لکھا ہے کہ، لیکن صرف کچھ ٹکڑے ٹکڑے چھوڑ دیا کے لئے آپ کو تحریری طور پر ختم کرنے کے لئے. آپ کو اس کی طرف دیکھو جب تم لوگوں کو، تو کوڈ، تم سچ میں ڈر ہو سکتا ہے. آپ، آہ، مجھے پسند ہے صرف کر رہے ہیں کر رہا ہے پتہ نہیں کیا، میں کی طرح، کہ لگتا ہے، نہیں جانتے اتنی پیچیدہ، آہ، آرام. ٹھیک ہے. رپورٹ پڑھیں. رپورٹ بالکل وہی جو آپ کو وضاحت کرے گا ان پروگراموں میں سے سب کیا کر رہے ہیں. مثال کے طور پر، generate.c ایک پروگرام ہے کہ آپ pset کے ساتھ آئے گا. تم واقعی میں اسے چھونا ہے، لیکن نہیں آپ یہ کر رہا ہے کیا سمجھنا چاہئے. اور generate.c، یہ کر رہا ہے ہے تو بے ترتیب تعداد پیدا کرنے یا آپ کو ایک کی طرح، یہ ایک بیج دے سکتے ہیں یہ لیتا ہے کہ prearranged تعداد، اور اس سے زیادہ تعداد پیدا کرتا ہے. تو ایک مخصوص طریقے سے موجود ہے generate.c لاگو جس میں آپ کو صرف تعداد کا ایک گروپ بنا سکتے ہیں آپ کو آپ کے دوسرے طریقوں پر ٹیسٹ کرنے کے لئے. تو آپ کرنا چاہتے تھے تو، کے لئے مثال کے طور پر، آپ کے تلاش کی جانچ، آپ generate.c کو چلانے کے لئے چاہتے ہیں، ، تعداد کے ایک گروپ پیدا اور اس کے بعد آپ کے مددگار تقریب چلانے. تم جہاں آپ کے مددگار تقریب ہے اصل میں جسمانی کوڈ لکھنے. اور ایک لائبریری فائل کے طور پر مددگار کے بارے میں سوچنا آپ اس تلاش بلا رہا ہے لکھ رہے ہیں. تو helpers.c اندر اور، تمہیں تلاش اور چھانٹ رہا ہے. اور پھر آپ کو بنیادی طور پر کرنے کے لئے جا رہے ہیں صرف ایک دوسرے کے ان سب کو ڈال. کس طرح رپورٹ آپ کو بتائے گا کمانڈ لائن پر ڈال. اور آپ کہ آیا ٹیسٹ کرنے کے قابل ہو جائے گا یا نہیں آپ کی طرح اور تلاش کر رہے ہیں. ٹھنڈا. کسی نے پہلے ہی شروع کر دیا ہے اور کا سامنا کرنا پڑا مسائل یا سوالات وہ اس کے ساتھ اب ہے؟ ٹھیک ہے. سامعین: ٹھہرو. میرا ایک سوال ہے. ANDI پینگ: جی ہاں. سامعین: تو میں نے شروع کر دیا helpers.c میں لکیری تلاش اور یہ واقعی کام نہیں کر رہا. لیکن اس وقت کے بعد، میں ہم صرف پتہ چلا اس کو حذف اور بائنری تلاش کرنا ہے. یہ کام نہیں کرتا تو اس سے کوئی فرق ہے؟ ANDI پینگ: مختصر جواب نہیں ہے. لیکن اس کے بعد ہم not-- ہیں سامعین: لیکن کسی کی اصل کی جانچ پڑتال. ANDI پینگ: ہم کبھی نہیں ہو کو دیکھنے کے لئے جا رہے ہیں. لیکن آپ کو شاید بنانا چاہتے ہیں یقینی بنائیں کہ آپ تلاش کے کام کر رہا ہے. آپ لکیری کیونکہ اگر تلاش کام نہیں کرتا، تو امکانات آپ بائنری ہیں تلاش کے طور پر اچھی طرح کام کرنے جا رہا ہے. آپ کو اسی طرح ہے کیونکہ ان دونوں میں منطق. اور نہیں، یہ واقعی کوئی فرق نہیں پڑتا. تو صرف لوگ آپ تبدیل کر دونگا میں ترتیب دیں اور بائنری تلاش ہے. جی ہاں. اور یہ بھی، بچوں کی ایک بہت تھے helpers.c مرتب کرنے کی کوشش کر. تم واقعی کی اجازت نہیں کر رہے ہیں ، ایسا helpers.c کیونکہ ایک اہم تقریب نہیں ہے. اور تو آپ کو صرف کرنا چاہئے اصل میں مرتب ہونا کالوں تلاش کیونکہ، پیدا اور تلاش helpers.c اور اس کے اندر اندر کام کرتا ہے. کہ ٹھیک کرتا ہے تو بٹ میں درد. لیکن ہے کہ ہم کیا کرنا ہے ہے. سامعین: آپ کو صرف صحیح، سب کو؟ ANDI پینگ: تم بس کر سکتے ہیں جی ہاں، کے ساتھ ساتھ سب کو. ٹھیک ہے. تو اس کا کیا کی شرائط میں ہے pset کے آپ سب کو ایسا کرنے کے لئے پوچھ رہا ہے. آپ کو کوئی سوالات ہیں، تو، محسوس سیکشن کے بعد مجھ سے پوچھیں کرنے کے لئے آزاد. میں 20 منٹ، طرح، کے لئے یہاں ہو جائے گا. اور ہاں، pset کے کی اتنا برا بھی نہیں. تم لوگ ٹھیک ہونا چاہئے. یہ، صرف ہدایات پر عمل کریں. قسم کی منطقی طور پر، کا احساس ہے، کیا چاہئے ہو جائے گا اور آپ ٹھیک ہو جائے گا. بہت خوف زدہ نہیں ہو. کوڈ کا ایک بہت نہیں ہے وہاں پہلے سے ہی لکھا. آپ ایسا نہیں کرتے تو بھی ڈرو مت اس کے سب کا مطلب کیا ہے. یہ ایک بہت ہے، یہ مکمل طور پر ٹھیک ہے. اور دفتری اوقات کار میں آتے ہیں. ہم آپ کو ایک نظر ڈالیں کی مدد کریں گے. سامعین: اضافی کے ساتھ افعال، ہم ان لوگوں کو نظر آتے ہیں؟ ANDI پینگ: جی ہاں، ان کوڈ میں ہیں. 15 کھیل ہی کھیل میں، نصف کے میں یہ پہلے سے ہی آپ کے لئے لکھا ہے. تو وہ افعال ہیں پہلے ہی کوڈ میں. جی ہاں. بالکل ٹھیک. ویسے، قسمت کی سب سے بہترین. یہ ایک نفرت دن ہے. تو امید ہے کہ آپ لوگ بھی محسوس نہیں کرتے اندر رہنے اور کوڈنگ کے بارے میں برا.