[Powered by Google Translate] [سیکشن 3 - مزید آرام دہ اور پرسکون]
[روب Bowden - ہارورڈ یونیورسٹی]
>> یہ [CS50 ہے. CS50.TV] -
>> تو پہلا سوال عجیب الفاظ میں ہے.
GDB کی مدد سے آپ کو ایک پروگرام "ڈیبگ"، لیکن، زیادہ خاص طور پر، یہ کیا تم کرتے ہو؟
میں وہ جواب، اور مجھے نہیں معلوم کہ بالکل کیا توقع کی جاتی ہے کریں گے،
تو میں اس کی لائنوں کے ساتھ یہ کچھ اندازہ لگا رہا ہوں کی اجازت دیتا ہے آپ کو قدم بہ قدم
پروگرام کے ذریعے چلنا، اس کے ساتھ بات چیت، تبدیلی متغیر، یہ سب باتیں کرتے ہیں -
بنیادی طور پر مکمل طور پر ایک پروگرام کے عمل کو کنٹرول
اور پروگرام پر عملدرآمد کے کسی بھی حصے کا معائنہ کریں.
لہذا ان خصوصیات آپ چیزوں ڈیبگ.
ٹھیک ہے.
بائنری تلاش کرنے کی ضرورت کیوں ہے کہ ایک صف کے مطابق رکھا جائے ہے؟
اس کا جواب کون چاہتا ہے؟
[طالب علم] کیونکہ یہ کام اگر یہ نہیں کے مطابق نہیں ہے. >> جی ہاں. [ہنسی]
اگر اس کے مطابق نہیں ہے، تو یہ ناممکن ہے اسے نصف میں تقسیم
اور بائیں کہ سب کچھ جانتے ہیں کم ہے اور سب کچھ درست کرنے کے
درمیانی قیمت سے زیادہ ہے.
تو اس کے مطابق کرنے کی ضرورت ہے.
ٹھیک ہے.
اے مربع ن میں بلبلا طرح کیوں ہے؟
کیا کسی کو سب سے پہلے کیا بلبلا طرح ہے بہت جلد اعلی سطح کے جائزہ دینے کے لئے چاہتے ہیں؟
[طالب علم] آپ بنیادی طور پر ہر عنصر کے ذریعے جاؤ اور آپ کو پہلے چند عناصر چیک.
اگر وہ جہاں آپ نے ان سے تبادلہ سے باہر ہیں، تو آپ کو اگلے چند عناصر اور تو دیکھنے کے لیے.
جب تم آخر تک پہنچنے کے لئے، تو آپ جانتے ہیں کہ سب سے بڑا عنصر آخر میں رکھ دیا جاتا ہے،
تم اتنا ہے کہ ایک تو آپ سے گزر رہا رکھنے کو نظر انداز،
اور ہر بار جب آپ ایک کم عنصر چیک کرنے کے لیے جب تک کہ آپ کے پاس کوئی تبدیلی نہیں ہے. >> جی ہاں.
یہ بلبلا طرح کہا جاتا ہے کیونکہ اگر تم اس کی طرف صف پلٹائیں تو اس کے اوپر ہے اور، عمودی،
پھر بڑی اقدار نیچے ڈوب اور چھوٹے اقدار سب سے اوپر تک بلبلا گا.
اس طرح اس نے اس کا نام ہے.
اور ہاں، آپ کے ذریعے جانا.
آپ کو صف کے ذریعے ہو رہا ہے، رہتے ہیں، بڑی قدر گماگمن
نیچے کی سب سے بڑی اقدار حاصل کرنے کے لئے.
>> یہ مربع ن کے اے کیوں ہے؟
سب سے پہلے، کسی کا کہنا ہے کہ کیوں یہ مربع این اے کرنا چاہتی ہے؟
[طالب علم] کیونکہ یہ ہر چلانے کے لئے (ن) بار جاتا ہے.
آپ صرف اس بات کا یقین کر لیں کہ آپ کا سب سے بڑا عنصر نے پورے راستے ہے نیچے ہو سکتا ہے،
تو آپ کو بہت سے عناصر کے طور پر دوبارہ ہے. >> جی ہاں.
تو اس بات کو ذہن میں رکھنا بڑا O کا مطلب ہے اور جو بڑے ومیگا کا مطلب.
بڑا O یہ اصل میں کس طرح سست چلا سکتے ہیں پابند بالائی کی طرح ہے.
تو یہ مربع ن اے کہہ کر، این اے ہے یا نہیں اور چلانے کے قابل ہو جائیں گے
لکیری وقت میں، لیکن یہ ن cubed اے
کیونکہ یہ ن cubed اے کی طرف سے جکڑے ہوئے ہے.
اگر یہ مربع ن اے کی طرف سے جکڑے ہوئے ہے، تو یہ ن cubed کی طرف سے بھی گھرا ہے.
لہذا یہ مربع ن ہے، اور مطلق بدترین میں یہ مربع ن سے بہتر نہیں کر سکتے،
یہی وجہ ہے کہ یہ مربع ن کے O ہے.
تو یہ کس طرح باہر آتا مربع ن میں معمولی ریاضی کو دیکھنے کے لئے،
اگر ہم ہماری فہرست میں پانچ چیزیں ہیں، پہلی بار کتنے سویپ ممکنہ طور پر ہم بنانے کی ضرورت ہے کر سکتے ہیں
کے لئے اس کو حاصل کرنے کے لئے؟ اصل میں صرف دو -
ہم کتنے سویپ سرنی کے ذریعے بلبلا قسم کے پہلے دوڑ میں جا رہے ہیں؟
[طالب علم] N - 1. >> جی ہاں.
>> 1 - اگر 5 عناصر ہیں، ہم (ن) بنانے کے لئے کی ضرورت جا رہے ہیں.
پھر دوسرے ایک پر ہم کتنے سویپ کرنے کے لئے جا رہے ہیں؟
[طالب علم] N - 2. >> جی ہاں.
اور تیسری ن جا رہا ہے - 3، اور اس کے بعد میں سہولت کے لئے گزشتہ دو لکھیں گے
اس کے بعد جیسا کہ ہم 2 سویپ اور 1 سویپ کرنے کی ضرورت کے لئے جا رہے ہیں.
مجھے لگتا ہے کہ گزشتہ ایک یا ایک سے ہو سکتی ہے ہو اصل میں ضرورت نہیں ہے.
یہ ایک سویپ ہے؟ مجھے پتہ نہیں ہے.
تو یہ سویپ کی کل مقدار میں یا کم از کم موازنہ آپ کو بنانا ہے.
یہاں تک کہ اگر آپ نہیں تبادلہ کرتے ہیں، تو آپ کو اب بھی اقدار کو آپس میں موازنہ کرنے کی ضرورت ہے.
تو وہاں N ہیں - 1 سرنی کے ذریعے پہلا شو میں موازنہ.
اگر آپ کو ان چیزوں کو پنرویوستیت کرنے کے لئے، اصل میں اس میں چھ چیزیں تو چیزوں کو اچھی طرح سے کتابیں رکھی،
اور پھر میں 3 کرنا، 2، 1 گے.
تو یہ رقم rearranging، ہم دیکھیں گے کہ کتنے موازنہ ہم چاہتے ہیں
پورے الگورتھم میں.
تو اگر ہم یہاں ان لوگوں کو لانے کے لئے،
تو پھر ہم اب بھی صرف وہاں تھے تاہم بہت سے موازنہ میزانی کر رہے ہیں.
لیکن اگر ہم ان کا خلاصہ یہ ہے اور ہم ان کا خلاصہ یہ ہے اور ہم ان کا خلاصہ یہ ہے،
یہ ابھی بھی وہی مسئلہ ہے. ہم تو صرف ان مخصوص گروپوں کا خلاصہ.
>> تو اب ہم 3 میزانی (ن) کی کر رہے ہیں. یہ صرف 3 ن نہیں ہے.
یہ ہمیشہ N / 2 ن ہونے جا رہا ہے.
لہذا ہم یہاں 6 ہے ہو.
اگر ہم نے 10 چیزوں کے تھے، تو ہم چیزوں میں سے 5 مختلف جوڑوں کے لئے یہ گروہ بندی کر سکتے ہیں
اور ن + ن ن + + ن ن + کے ساتھ ختم.
تو آپ ہمیشہ N / 2 این حاصل کرنے کے لئے جا رہے ہیں، تو یہ ہم اسے مختصر میں لکھ دینا ن مربع 2 / گے.
اور اس طرح اگرچہ وہ نصف عنصر ہے، جس میں آنے کے لئے ہوتا ہے ہے
حقیقت یہ ہے کہ ہم نے صف ہر iteration کے ذریعے 1 کم آپس میں موازنہ کی وجہ سے
تو یہی ہے کہ ہم کس طرح 2 ملتی ہے، لیکن یہ اب بھی مربع ن ہے.
ہم ایک نصف کے مستقل عنصر کے بارے میں پرواہ نہیں کرتے.
، تو اس طرح بہت بڑا O سامان کے ریاضی کے اس طرح کرنے کے قسم پر انحصار کرتی ہے
، ریاضی کی رقم اور ستادوستیی سیریز چیزیں کرنے
لیکن اس کورس میں ان میں سے سب سے زیادہ خوبصورت براہ راست ہیں.
ٹھیک ہے.
(ن) کے ومیگا میں اندراج کی طرح کیوں ہے؟ ومیگا کا کیا مطلب ہے؟
[دو ایک بار سے خطاب کرتے ہوئے طالب علم - unintelligible] >> جی ہاں.
ومیگا آپ کے طور پر کم کے پابند کے بارے میں سوچ کر سکتے ہیں.
>> تو، کوئی بات نہیں کس طرح موثر آپ کے اندراج ترتیب دیں الگورتھم ہے
فہرست میں منظور ہے سے قطع نظر، یہ ہمیشہ کم از کم ن چیزوں کا آپس میں موازنہ کرنے کے لئے ہے
یا ن باتوں پر iterate ہے.
ایسا کیوں ہے؟
[] طالب علم کیونکہ اگر فہرست پہلے ہی کے مطابق ہے، تو کے ذریعے پہلی iteration
آپ کو صرف کہ بہت پہلے عنصر کم سے کم ہے کی ضمانت لے سکتے ہیں،
اور دوسری iteration آپ صرف پہلے دو کی ضمانت لے سکتے ہیں
کیونکہ تم نہیں جانتے کہ فہرست کے باقی کے مطابق ہے. >> جی ہاں.
اگر آپ ایک مکمل طور پر مطابق فہرست میں کم از کم گزرتے ہیں، آپ کو تمام عناصر جانا ہے
دیکھتے ہیں کہ کچھ نہیں ارد گرد منتقل کر دیا جائے گا کی ضرورت ہے.
تو ختم فہرست گزر اور یہ کہتے ہوئے لے لیا کہ اوہ، یہ پہلے ہی کے مطابق ہے،
یہ ناممکن ہے آپ کے لئے پتہ ہے اس کے مطابق ہے، جب تک آپ کو ہر عنصر چیک کرنے کے لیے
دیکھتے ہیں کہ وہ کے مطابق ترتیب میں ہیں.
تو اندراج کی طرح پر پابند کم (ن) کے ومیگا ہے.
بدترین کیا چل رہا ہے ضم طرح کے وقت،
بدترین پھر سے بڑا O ہے؟
تو بدترین حالات میں، کہ کس طرح ضم طرح چلایا ہے؟
[طالب علم] N لاگ ان ن. >> جی ہاں.
سب سے تیز رفتار سے عام چھنٹائی یلگوردمز ن لاگ ان ن ہیں. بہتر ہوگا اگر تم نہیں کر سکتے.
>> خصوصی مقدمات ہیں، اور اگر ہم آج وقت ہے - لیکن ہم شاید won't -
ہم ایک دیکھ سکتا ہے کہ ن لاگ ان ن سے بہتر ہے.
لیکن، آپ کو عام کیس میں ن لاگ ان ن سے بہتر نہیں کر سکتے ہیں.
اور طرح ضم ایک آپ اس کورس ہے جو ن لاگ ان ن ہے کے لئے پتہ ہونا چاہئے ہوتا ہے.
اور اس لئے کہ آج ہم نے اصل میں کیا جائے گا پر عملدرآمد.
اور آخر میں تین سے زیادہ سزائیں نہیں میں کس طرح انتخاب طرح کام کرتا ہے؟
کیا کوئی جواب چاہتا ہوں، اور میں اپنے سزائیں شمار کریں گے
کیونکہ اگر آپ 3 سے زیادہ عمر کے -
کیا کسی کو انتخاب طرح یاد ہے؟
سلیکشن طرح عام طور پر بہت آسان ہے صرف نام سے یاد ہے.
تلاش کریں آپ صرف صف سے زائد iterate، جو سب سے بڑی قیمت ہے یا سب سے چھوٹی -
جو کچھ بھی آپ کو اندر چھںٹائی کر رہے ہیں.
تو چلو کا کہنا ہے کہ ہم سے سب سے چھوٹی سب سے بڑا حل کرنے رہے ہیں.
آپ صف پر iterate، جو بھی کم از کم عنصر ہے کے لئے لگ،
اسے منتخب کریں، اور پھر صرف اس تبادلہ پہلی جگہ میں جو کچھ بھی ہے.
اور اس کے بعد کم از کم عنصر کے لئے صف پر دوسری پاس، پھر دیکھو،
اسے منتخب کریں، اور پھر دوسرے کی پوزیشن میں ہے کے ساتھ اس کا تبادلہ کریں.
تو ہم اٹھا رہے ہیں اور کم از کم اقدار کو منتخب کرنے
اور صف کے سامنے میں ان کے داخل یہاں تک کہ اس کے مطابق ہے.
اس پر سوال؟
>> یہ فارم آپ کو جب آپ pset جمع کراتے رہے ہیں پر کرنے کی ہے میں ناگزیر دکھائی دیتے ہیں.
وہ بنیادی طور پر ان کے جوابات ہیں.
ٹھیک ہے، تو اب مسائل کوڈنگ.
میں نے پہلے ہی ای میل سے زائد باہر بھیجا - کیا کسی نے اس ای میل نہیں ملے؟ ٹھیک ہے.
میں نے پہلے ہی ای میل سے زائد کی جگہ ہے کہ ہم استعمال کرتے ہوئے جا رہے ہیں بھیجا،
اور اگر آپ کو میرے نام پر کلک کریں - تو میں سوچتا ہوں کہ میں نچلے حصے میں جا رہا ہوں
پیچھے R کی وجہ سے میں سب کچھ - لیکن اگر آپ کو میرے نام پر کلک کریں آپ کو 2 کیلیے دیکھیں گے.
میں نے پہلے ہی کاپی اور خالی جگہوں کوڈ میں چسپاں 1 نظر ثانی ہو رہا ہے
تلاش کے کام کے لئے آپ کو نافذ کرنے کے لئے جا رہے ہیں.
اور 2 ترمیمی طرح کی بات یہ ہے کہ ہم نے اس کے بعد عمل درآمد کیا جائے گا.
تو کیا تم میرا 1 نظر ثانی کے پر کلک کریں اور وہاں سے کام کر سکتے ہیں.
اور اب ہم بائنری تلاش کو لاگو کرنے کے لئے کرنا چاہتے ہیں.
>> کیا کسی کو صرف ایک اعلی سطحی pseudocode وضاحت دینا چاہتا ہوں
کیا ہم تلاش کے لئے کرنا پڑے جا رہے ہیں؟ جی ہاں.
[طالب علم] آپ صرف صف کے وسط لے اور اگر آپ کے لئے تلاش کر رہے ہیں دیکھنے کے
اس سے کم یا اس سے زیادہ ہے.
اور اگر اس سے کم ہے، تو آپ نصف وہ کم ہے،
اور اگر اس سے زیادہ ہے، تو آپ نصف یہ ہے اور آپ کو دہرانے کی ہے کہ جب تک کہ آپ کو صرف ایک چیز ہے.
[Bowden] جی ہاں.
نوٹس کہ ہماری تعداد صف پہلے ہی کے مطابق ہے،
اور تو اس کا مطلب ہے کہ ہم اس کا فائدہ لے لو اور ہم سب سے پہلے چیک کرنے کے لیے کر سکتے ہیں کر سکتے ہیں،
ٹھیک ہے، میں 50 نمبر کے لئے تلاش کر رہا ہوں.
تو میں درمیان میں جا سکتے ہیں.
مشرق مشکل ہے جب تم میں سے کسی ایک کو یہ چیزوں کی بھی تعداد ہے کی وضاحت کرنے،
لیکن صرف کا کہنا ہے کہ ہم درمیان ہمیشہ تراش گے ہیں.
لہذا ہم یہاں 8 چیزیں ہیں، تو مشرق 16 ہو جائے گی.
میں 50 کے لئے تلاش کر رہا ہوں، تو 50 16 سے بڑھ کر ہے.
تو اب میں ان عناصر کے طور پر اپنے صف بنیادی طور پر علاج کر سکتا ہے.
میں نے 16 سے زائد سب کچھ پھینک کر سکتے ہیں.
اب میری صف ان 4 عناصر ہے، اور میں دہرانے کی.
تو پھر میں درمیان پھر سے تلاش کرنے کے لئے کرنا چاہتے ہیں، جو 42 جا رہا ہے.
42 50 سے بھی کم ہے، تو میں نے ان دونوں عناصر کو پھینک کر سکتے ہیں.
یہ میری باقی صف ہے.
میں درمیان پھر سے تلاش کرنے کے لئے جا رہا ہوں.
مجھے لگتا ہے کہ 50 ایک بری مثال ہے کیونکہ میں نے ہمیشہ دور پھینک رہا تھا بائیں چیزیں
لیکن ایک ہی پیمائش کی طرف سے، اگر میں کسی چیز کے لئے دیکھ رہا ہوں
اور یہ عنصر سے کم ہے، میں فی الحال میں دیکھ رہا ہوں،
تو میں نے سب کچھ درست کرنے کے پھینک جا رہا ہوں.
تو اب ہم اس پر عملدرآمد کرنے کی ضرورت ہے.
یاد رکھیں کہ ہم سائز میں منتقل کرنے کی ضرورت ہے.
ہم بھی سائز کی سخت کوڈ کی ضرورت نہیں کر سکتے ہیں.
تو اگر ہم اس سے چھٹکارا حاصل # وضاحت -
ٹھیک ہے.
اچھی طرح سے میں کس طرح اعداد و شمار کیا تعداد صف کے سائز کے اس وقت ہے کر سکتے ہیں؟
>> کتنے عناصر تعداد صف میں ہیں؟
[طالب علم] نمبرز، بریکٹ، کی حد کے ہے.؟
[Bowden] C. یہ موجود ہی نہیں ہے
کی ضرورت کی حد.
تو Arrays خصوصیات نہیں ہے، arrays کی کوئی حد ملکیت ہے
کہ تم تاہم طویل یہ ہوتا دے گا.
[طالب علم] دیکھو کتنی میموری ہے اور کس طرح زیادہ سے زیادہ کی طرف سے تقسیم - >> جی ہاں.
تو ہم دیکھتے ہیں کہ کس طرح کر سکتے ہیں کتنی میموری ہے؟ >> [طالب علم] Sizeof. >> جی ہاں، sizeof.
Sizeof آپریٹر ہے جو تعداد صف کے سائز کے واپس جا رہا ہے ہے.
اور یہ کہ تاہم بہت سے integers کو ہونے جا رہا ہے وہاں بار ایک عددی کے سائز کے ہیں
کے بعد ہے کہ یہ اصل میں کتنی میموری لے رہا ہے.
، تو اگر میں صف میں چیزوں کی تعداد کی ضرورت ہے
تو میں ایک عددی کے سائز کی طرف سے تقسیم کرنا چاہتی ہیں کے لئے جا رہا ہوں.
ٹھیک ہے. تو اس کی اجازت دیتا ہے کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے سائز میں یہاں منتقل.
میں سائز میں منتقل کی ضرورت کیوں ہے؟
میں کیوں نہیں کر سکتے ہیں int سائز = sizeof (ٹیبل) / sizeof (int)؟
یہ کیوں نہیں کام کرتا ہے؟
[طالب علم] یہ ایک عالمی متغیر نہیں ہے.
[Bowden] ٹیبل بھی موجود ہے اور ہم ٹیبل کے طور پر تعداد میں گزر کر رہے ہیں،
اور یہ آنے foreshadowing کی طرح ہے. جی ہاں.
[طالب علم] ٹیبل صرف اس کا حوالہ ہے، تو واپس کتنا بڑا ہے کہ حوالہ ہے.
جی ہاں.
میں لیکچر میں شک ہے کہ آپ نے اسٹیک دیکھا واقعی ٹھیک ہے، ابھی تک ہے؟
ہم صرف اس کے بارے میں بات کر لی ہے.
تو اسٹیک ہے جہاں اپنے تمام متغیرات میں سے محفوظ ہونے کے لئے جا رہے ہیں.
>> کوئی میموری ہے جو مقامی متغیر کے لئے مختص ہے اسٹیک میں جا رہا ہے،
اور اس کے اپنے اسٹیک فریم ہر تقریب اسٹیک کا اپنا خلائی ملتا ہے، جو یہ کہتے ہیں.
تو اس کا اسٹیک فریم کی اہم ہے، اور اس کے اندر یہ تعداد صف موجود جا رہا ہے،
اور یہ سائز sizeof (تعداد) ہونے جا رہا ہے.
یہ عناصر کے سائز کی طرف سے تقسیم کی تعداد کے سائز جا رہا ہے،
کہ لیکن اہم اسٹیک فریم کے اندر اندر تمام زندگی.
جب ہم تلاش فون، تلاش کے اپنے اسٹیک فریم ملتی ہے،
کا اپنا خلائی اپنے مقامی متغیرات میں سے تمام کو محفوظ کرنے کے لئے.
لیکن ان دلائل - تو ٹیبل اس پورے صف کی ایک کاپی نہیں ہے.
ہم تلاش میں نقل کے طور پر پوری صف میں نہیں منظور ہے.
یہ صرف اس صف پر ایک حوالہ گزر جاتا ہے.
تو تلاش اس ریفرنس کے ذریعے یہ تعداد تک رسائی حاصل کر سکتے ہیں.
یہ ابھی بھی چیزیں جو اہم اسٹیک فریم کے اندر رہتے ہیں تک رسائی حاصل ہے،
لیکن بنیادی طور پر، جب ہم اشارہ حاصل کرنے کے لئے، جو جلد ہی ہونا چاہئے،
یہ کیا اشارہ ہیں.
نوٹیفائر چیزوں کا حوالہ ہے، اور آپ کے اشارہ کو چیزوں تک رسائی حاصل کرنے کے لئے استعمال کر سکتے ہیں
جو دیگر چیزوں کے اسٹیک فریم میں ہیں.
تو اگرچہ تعداد اہم مقامی ہے، ہم اسے ابھی تک اس پوائنٹر کے ذریعے تک رسائی حاصل کر سکتے ہیں.
لیکن چونکہ یہ صرف ایک پوائنٹر ہے اور یہ صرف ایک حوالہ ہے،
sizeof (ٹیبل) حوالہ خود کا سائز فراہم کرتا ہے.
یہ اس بات کی طرف اشارہ کرتے ہوئے ہے کے سائز کو واپس نہیں کرتا.
کی تعداد کے اصل سائز واپس نہیں کرتا.
اور اس طرح یہ کام کرنے نہیں ہے کے طور پر ہم اس سے کرنا چاہتے ہیں.
>> اس پر سوال؟
نوٹیفائر میں نمایاں طور پر زیادہ رکتمی تفصیل میں ہفتوں میں چلے گئے آنے.
اور یہ وجہ ہے، بہت ساری چیزیں ہیں جو آپ دیکھتے ہیں، سب سے زیادہ تلاش چیزیں یا طرح کی چیزوں کے
وہ تقریبا تمام صف کی اصل سائز کو لینے کی ضرورت کے لئے جا رہے ہیں،
سی وجہ سے، ہم نے کوئی خیال نہیں صف کا سائز کیا ہے ہے.
آپ کو دستی طور پر یہ اندر منتقل کرنے کی ضرورت ہے
اور تم پوری صف میں دستی طور پر نہیں گزر کیونکہ آپ نے صرف ریفرنس میں گزر رہے ہیں کر سکتے ہیں
اور اس حوالہ سے سائز نہیں مل سکتا.
ٹھیک ہے.
تو اب ہم پر عملدرآمد سے پہلے کیا وضاحت کرنا چاہتے ہیں.
اس پر آپ کو ایک منٹ کے لئے مل کر کام کر سکتے ہیں،
اور آپ کو سب کچھ 100 بالکل فیصد کام کر حاصل کرنے کے بارے میں فکر کرنے کی ضرورت نہیں ہے.
بس کہ کس طرح آپ کو لگتا ہے کہ یہ کام کرنا چاہئے نصف pseudocode لکھیں.
ٹھیک ہے.
مکمل طور پر اس کے ساتھ نے ابھی تک رکھا جائے کی ضرورت ہے.
لیکن کیا وہ اب تک کوئی آرام دہ اور پرسکون محسوس ہوتا ہے،
جیسا کہ ہم سے کچھ کے ساتھ مل کر کام کر سکتے ہیں؟
کیا کسی کو رضاکارانہ کرنا چاہتے ہیں؟ یا پھر میں تصادفی منتخب کریں گے.
یہ کسی بھی اقدام لیکن کیا ہم ایک کام کے ریاست میں تبدیل کر سکتے ہیں کی طرف سے نہیں ہے.
[طالب علم] جی ہاں. ٹھیک ہے. >>
تو آپ کو تھوڑا محفوظ آئکن پر کلک کر کے نظر ثانی بچا سکتا ہے.
آپ Ramya ہو، ہے نا؟ >> [طالب علم] جی ہاں. >> [Bowden] ٹھیک ہے.
تو اب میں آپ کی نظرثانی اور سب نظرثانی ھیںچو کر سکتے ہیں کر سکتے ہیں.
اور ہم یہاں ہے - ٹھیک ہے.
تو Ramya پنراورتی حل، جو یقینی طور پر ایک درست حل ہے کے ساتھ چلا گیا.
دو طریقے ہیں آپ کو یہ مسئلہ کر سکتے ہیں ہیں.
آپ اسے یا تو iteratively یا تکراری طور پر کر سکتے ہیں.
سب سے زیادہ مسائل کا سامنا ہے کہ تکراری طور پر کیا جا سکتا ہے بھی iteratively رکھا جائے کیا جا سکتا ہے.
تو ہم یہاں تکراری طور پر کیا ہے.
>> کیا کوئی یہ وضاحت کرنا چاہتے ہیں کیا یہ ایک تقریب پنراورتی بنانے کے لئے کا مطلب ہے؟
[طالب علم] جب آپ کو ایک تقریب ہے خود کہتے ہیں
اور اس کے بعد خود فون جب تک یہ سچ اور سچ کے ساتھ باہر آتا ہے. >> جی ہاں.
ایک پنراورتی تقریب صرف ایک تقریب ہے جو خود بلاتا ہے.
تین بڑی باتیں ایک پنراورتی تقریب ہے کہ ہونا ضروری ہے ہیں.
یہ پہلی ظاہر ہے، خود کہتے ہیں.
دوسری بنیاد کا معاملہ ہے.
تو کچھ نقطہ پر کام کو خود بلا کو روکنے کے لئے کی ضرورت ہے،
اور اس کا کیا بنیاد کیس کے لئے ہے.
تو یہاں ہم جانتے ہیں کہ ہم اس کا رک جانا چاہیے، ہم ہماری تلاش میں دینا چاہیے
جب اختتام برابر - اور ہم کیا اس کا مطلب گے.
لیکن آخر میں، آخری بات یہ ہے کہ پنراورتی افعال کے لیے اہم ہے:
افعال کی بنیاد کیس کسی نہ کسی طرح سے رجوع کرنا ضروری ہے.
، اگر آپ کو کسی بھی چیز کی اصل نہیں کر رہے ہیں کو اپ ڈیٹ جب آپ دوسری پنراورتی کال کرنے کی طرح
اگر آپ صرف لفظی تقریب رہے ہیں اسی دلائل کے ساتھ بلا پھر
اور نہ عالمی متغیر کو تبدیل کر دیا گیا یا کسی بھی چیز کی ہے،
آپ کو بیس کیس جس میں اگر یہ تو بری بات ہے. تک کبھی نہیں کرے گا،
یہ ایک لامحدود تکرار اور اسٹیک اتپرواہ ہو جائے گا.
لیکن ہم یہاں دیکھتے ہیں کہ اپ ڈیٹ ہو رہا ہے کیونکہ ہم کو اپ ڈیٹ کرنے شروع + 2 / آخر ہے،
ہم آخر دلیل یہاں اپ ڈیٹ کر رہے ہیں، ہم شروع دلیل کو اپ ڈیٹ کر رہے ہیں.
تو ہم تمام پنراورتی کالوں میں کچھ کی تازہ کاری کر رہے ہیں. ٹھیک ہے.
کیا آپ کو ہمیں اپنے حل کے ذریعے چلنے کرنا چاہتے ہیں؟ >> ضرور.
میں SearchHelp تو استعمال کر رہا ہوں کہ ہر وقت میں اس فنکشن کال
میں جہاں میں صف میں دیکھ رہا ہوں کے آغاز اور اختتام ہے
جہاں میں صف دیکھ رہا ہوں.
>> ہر قدم جہاں یہ کہہ رہے ہو یہ درمیانی عنصر، + جس کا آغاز ہے 2 / آخر ہے،
کہ جو ہم تلاش کر رہے ہیں کے برابر ہے؟
اور اگر ہے، تو ہم اسے مل گیا ہے، اور مجھے لگتا ہے کہ یہ منظور تکرار کی سطح ہو جاتا ہے.
اور اگر یہ سچ نہیں ہے، تو ہم چیک کرنے کے لیے کہ صف کی کہ مشرق قیمت بہت بڑا ہے،
جس میں کیس ہم شروع سے مشرق انڈیکس میں جا کر صف کے بائیں نصف میں نظر آتے ہیں.
اور دوسری صورت میں ہم آخر نصف کرتے ہیں.
[Bowden] ٹھیک ہے.
یہ اچھا لگتا ہے.
ٹھیک ہے تو، ایک جوڑے کی چیزیں اور اصل میں، یہ ایک بہت ہی اعلی سطحی بات ہے
کہ آپ اس کورس کے لئے پتہ کرنے کی ضرورت کبھی نہیں، لیکن یہ سچ ہے.
پنراورتی کام کرتا ہے، تم نے ہمیشہ نے سنا ہے کہ وہ ایک برا سودا ہے
کیونکہ اگر آپ تکراری طور پر خود بھی کئی بار کہتے ہیں، آپ اسٹیک اتپرواہ
کے بعد، جیسا کہ میں نے پہلے کہا، ہر تقریب کے اپنے اسٹیک فریم ملتا ہے.
تو پنراورتی تقریب میں سے ہر ایک فون کو اپنے اسٹیک فریم ملتا ہے.
تو اگر آپ 1،000 پنراورتی کو کالیں، آپ نے 1،000 اسٹیک فریم ملے،
اور فوری طور پر ہونے کے بھی بہت سے اسٹیک فریم اور چیزیں توڑ کرنے کے لئے کی قیادت.
تو یہی وجہ ہے کہ پنراورتی افعال عام طور پر خراب ہیں.
لیکن پنراورتی کے افعال میں سے ایک اچھا اپسمچی پونچھ کے پنراورتی افعال کہا جاتا ہے،
اور یہ جہاں اگر سنکلک اس نوٹس کی ایک مثال کے طور پر ہوتا ہے
اور اسے کرنا چاہئے، مجھے لگتا ہے کہ - بجنا اگر آپ اسے پرچم O2-پاس
اس وقت محسوس یہ دم پنراورتی ہے اور چیزیں اچھی کرے گا.
>> اس سے زیادہ بار بار ایک ہی ہر پنراورتی کال کے لئے اسٹیک فریم کو دوبارہ استعمال کریں گے.
اور اس کے بعد آپ اسی اسٹیک فریم کا استعمال کرتے ہوئے کر رہے ہیں، آپ کے بارے میں فکر کرنے کی ضرورت نہیں ہے
کبھی overflowing، ایک ہی وقت میں کتابیں رکھی اور جیسے تم نے پہلے کہا،
ایک بار جہاں آپ حقیقی واپس، پھر اس کے بعد ان اسٹیک کے فریموں کی سب واپس
اور 10th SearchHelp 9th پر واپس کال، 8th پر واپس ہے.
تو ہے کہ جب افعال دم پنراورتی ہونے کی ضرورت نہیں ہے.
اور اس وجہ سے اس تقریب دم پنراورتی کرتا ہے نوٹس ہے کہ کسی بھی searchHelp اذان کے لئے
پنراورتی کال ہے کہ وہ کر رہی ہے جو اس کے واپس لوٹنے ہے.
لہذا، ہم SearchHelp سب سے پہلے کال میں یا تو فوری طور پر جھوٹی واپس
فوری طور پر درست واپس، یا ہم SearchHelp پر ایک پنراورتی کال کرنے
جو ہم واپس لوٹنے رہے ہو وہ جگہ ہے جہاں کال واپس آ رہا ہے.
اور ہم ایسا نہیں ہے اگر ہم int X SearchHelp = واپسی، X 2 * طرح کچھ کیا جا سکتا ہے،
صرف کچھ بے ترتیب تبدیلی.
>> تو اب اس پنراورتی کال، اس int X = SearchHelp پنراورتی کال
اب کوئی دم پنراورتی ہے کیونکہ یہ اصل میں واپس ہے
واپس سابقہ ​​اسٹیک فریم تاکہ کہ گزشتہ جشن کال
کچھ تو واپسی قیمت کے ساتھ کیا کر سکتے ہیں.
تو یہ دم پنراورتی نہیں ہے، لیکن جو ہم نے اس سے پہلے اچھی طرح سے دم پنراورتی. جی ہاں.
[] دوسری بنیاد کیس طالب علم نہیں ہونا چاہئے پہلے جانچ پڑتال
کیونکہ وہاں ایک ایسی صورت حال ہے جہاں جب تم نے یہ دلیل گزر سکتا ہے
آپ = کے آخر شروع ہے، لیکن وہ سوئ قدر ہیں.
سوال ہم معاملے میں کیا گیا تھا نہیں کر سکتے چلانے جہاں آخر سوئ قیمت ہے
یا = آخر شروع، مناسب طور پر، = آخر شروع
اور آپ کو اس مخصوص قدر اصل میں نہیں ہے ابھی تک کی جانچ پڑتال،
پھر + 2 / آخر شروع صرف اسی قدر کرنے جا رہا ہے.
لیکن ہم نے پہلے سے ہی جھوٹے واپس لیا ہے اور ہم اصل قیمت کبھی نہیں کی جانچ پڑتال.
تو کم از کم پہلی کال پر، اگر سائز 0، تو پھر ہم جھوٹے واپس کرنا چاہتے ہیں.
لیکن اگر سائز 1 ہے، تو شروع برابر آخر نہیں جا رہا ہے،
اور کم از کم ہم ایک عنصر چیک کرنے کے لیے کریں گے.
لیکن مجھے لگتا ہے کہ آپ ٹھیک کہہ رہے ہو کہ ہم نے ایک کیس میں آخر جہاں + 2 / آخر شروع کر سکتے ہیں،
شروع شروع + 2 / آخر کے طور پر ایک ہی ہونے کے ختم ہو جاتا ہے،
لیکن ہم اس عنصر کو اصل میں کبھی نہیں کی جانچ پڑتال.
>> لہذا اگر ہم سب سے پہلے چیک کرنے کے لیے مشرق وسطی کے عنصر قیمت ہم کے لئے تلاش کر رہے ہیں ہے،
تو پھر ہم سچ فوری طور پر واپس جا سکتے ہیں.
دوسری صورت میں اگر وہ برابر ہیں، تو جاری رکھنے کا کوئی فائدہ نہیں ہے
کیونکہ ہم صرف ایک کیس ہے جہاں ہم ایک عنصر ایک صف پر ہیں کو اپ ڈیٹ کرنے جا رہے ہیں.
اگر وہ ایک عنصر ہے جس سے ہم کے لئے تلاش کر رہے ہیں نہیں ہے،
تو سب کچھ غلط ہے. جی ہاں.
[طالب علم] بات یہ ہے کہ حجم کے بعد سے اصل میں صف میں عناصر کی تعداد سے زیادہ ہے،
وہاں پہلے ہی آفسیٹ - >> تو سائز گے -
[طالب علم] اگر صف 0 سائز تھا کہو، پھر SearchHelp 0 ٹیبل اصل میں جانچ پڑتال کرے گا
پہلی کال پر ہے.
صف 0 سائز ہے، 0 - >> جی ہاں.
ایک اور بات یہ ہے کہ ہے - یہ اچھا ہو سکتا ہے. لگتا ہے.
تو اگر صف 10 عناصر تھے اور مشرق ایک ہم چیک کرنے کے لیے جا رہے ہیں 5 انڈیکس ہے،
تو ہم 5 جانچ پڑتال کر رہے ہیں، اور چلو کا کہنا ہے کہ اس قدر کم ہے.
تو ہم سب 5 آگے سے دور پھینک رہے ہیں.
تو شروع + 2 / آخر ہمارے نئے آخر ہونے جا رہا ہے،
تو جی ہاں، یہ ہمیشہ صف کے آخر سے آگے رہنے کے لئے جا رہا ہے.
اگر یہ معاملہ ہے اگر یہ بھی عجیب تھا، تو ہم چیک کرنے کے لیے، کا کہنا ہے کہ، 4 گے،
لیکن ہم اب بھی دور پھینک رہے ہیں -
تو جی ہاں، آخر ہمیشہ صف کی اصل سرے سے باہر جا رہا ہے.
عناصر ہم پر توجہ مرکوز کر رہے ہیں تو، آخر ہمیشہ اس کے بعد ایک ہونے جا رہا ہے.
اور اگر ایسا ہے تو آغاز کبھی برابر آخر کرتا ہے، ہم 0 سائز کے ایک صف میں ہیں.
>> دوسری بات یہ ہے میں سوچ رہا تھا ہم آغاز کو اپ ڈیٹ کرنے شروع کر رہے ہیں + 2 / آخر
تو یہ معاملہ ہے کہ میں اس کے ساتھ مصیبت آ رہا ہے، جہاں آخر + / 2 شروع ہے
عنصر ہم پڑتال کر رہے ہیں ہے.
چلو کا کہنا ہے کہ ہم اس صف 10 عنصر تھا. جو بھی ہے.
تو شروع + 2 / آخر اس طرح کچھ ہونے جا رہا ہے،
کا کہنا ہے کہ اور اگر اس قدر نہیں ہے، ہم کو اپ ڈیٹ کرنا چاہتے ہیں.
قدر بڑا ہے، تو ہم صف کے اس نصف کو دیکھنے کے لئے چاہتے ہیں.
تو ہم کس طرح شروع اپ ڈیٹ کر رہے ہیں، ہم آغاز کو اپ ڈیٹ اب اس عنصر رہے ہیں.
لیکن یہ اب بھی یا کم سے کم، آپ کو شروع کرنا + آخر / 2 1 + سکتے ہیں کام کر سکتے ہیں.
[طالب علم] + آخر شروع کرنے کی ضرورت نہیں ہے [اشراوی] >> جی ہاں.
ہم نے پہلے ہی یہ عنصر کی جانچ پڑتال کی ہے اور جانتے ہیں کہ وہ ایک ہم کے لئے تلاش کر رہے ہیں نہیں ہے.
تو ہم آغاز اس عنصر کو اپ ڈیٹ کرنے کی ضرورت نہیں ہے.
ہم نے اسے اور اس عنصر کے شروع میں اپ ڈیٹ پر کر سکتے ہیں.
اور وہاں کبھی ایک کیس ہے، ہم کہتے ہیں، کہ یہ آخر تھے
تو شروع ہو جائے گا، آخر + شروع / 2 یہ ہو جائے گا،
+ آخر شروع - جی ہاں، مجھے لگتا ہے کہ یہ لامحدود تکرار میں ختم کر سکتے ہیں.
چلو کا کہنا ہے کہ یہ صرف 2 سائز یا 1 سائز کے ایک صف کے ایک صف ہے. مجھے لگتا ہے کہ یہ کام کرے گا.
تو اس وقت، آغاز یہ ہے کہ عنصر اور آخر اس سے باہر 1 ہے.
عنصر ہے کہ ہم چیک کرنے کے لیے جا رہے ہیں تو اس میں سے ایک ہے،
اور اس کے بعد جب ہم آغاز کو اپ ڈیٹ، ہم آغاز کو اپ ڈیٹ 0 + 1/2 رہے ہیں،
جو ہمیں آغاز اس عنصر ہونے کے ساتھ واپس ختم کی جا رہی ہے.
>> تو ہم سے زیادہ بار بار ایک ہی عنصر کی جانچ پڑتال کر رہے ہیں.
تو اس معاملے میں جہاں ہر پنراورتی کال کی کچھ اصل میں اپ ڈیٹ کرنا ہوگا ہے.
تو ہم شروع + آخر / 1 +، ورنہ 2 کرنے کی ضرورت ایک کیس ہے
ہم آغاز کہاں اصل نہیں کو اپ ڈیٹ کر رہے ہیں.
ہر کوئی اس کو دیکھا؟
ٹھیک ہے.
کیا کسی کے پاس اس کا حل یا کوئی تبصرہ سوالات ہیں؟
ٹھیک ہے. کیا کوئی ایک حل ہے کہ ہم سب دیکھ سکتے ہیں تکراری ہے؟
کیا ہم سب اس کے تکراری طور پر کیا کرتے ہیں؟
یا بھی مجھے لگتا ہے کہ اگر تم اس کھولا، تو آپ منسوخ اپنے گزشتہ ایک ہو سکتا ہے.
کیا یہ خود کار طریقے سے بچا ہے؟ میں مثبت نہیں ہوں.
کسی تکراری کیا ہے کیا ہے؟
ہم نے اس کے ذریعے ایک ساتھ نہیں چل اگر کر سکتے ہیں.
خیال ایک ہی جا رہا ہے.
حل تکراری.
ہم بنیادی طور پر ایک ہی خیال کرنا چاہتے ہیں کے لئے جا رہے ہیں
ہم صف کے نئے سرے کے ٹریک اور صف کے نئے آغاز کو برقرار رکھنے کے جہاں چاہتے ہیں
اور ایسا بار.
اور جو ہم نے آغاز اور اختتام کبھی بھی ایک دوسرے کو کاٹنا کے طور پر کا ٹریک رکھ رہے ہو اگر
تو پھر ہم اسے تلاش نہیں کیا اور ہم جھوٹے واپس آ سکتے ہیں.
تو میں کہ کس طرح کرتے ہیں؟ کوئی تجاویز یا میرے لئے کوڈ اوپر ھیںچو ہے؟
[طالب علم] جبکہ لوپ کیا. >> جی ہاں.
تم ایک لوپ کرنا چاہتے ہیں کے لئے جا رہے ہیں.
>> کیا آپ نے کوڈ میں اوپر ھیںچو سکتا ہے، یا آپ کو کیا مشورہ جا رہے تھے؟
[طالب علم] مجھے ایسا لگتا ہے. >> ٹھیک ہے. یہ چیزیں آسان بنا دیتا ہے. آپ کا نام کیا تھا؟
[طالب علم] لوکاس.
1 نظر ثانی. ٹھیک ہے.
کم ہے جو ہم پہلے شروع سے ملاقات کی.
اپ نہیں ہے بہت جو ہم سے پہلے فون کیا آخر.
اصل میں، آخر صف کے اندر اندر ہے. یہ ایک ایسا عنصر ہے جو ہم غور کرنا چاہئے ہے.
اتنی کم 0 ہے، صف کا سائز ہے - 1،
اور اب ہم looping، کر رہے ہیں اور ہم جانچ کر رہے ہیں -
مجھے لگتا ہے کہ آپ اس کے ذریعے چل کر سکتے ہیں.
تمہاری سوچ کیا تھا اس کے ذریعے؟ اپنا کوڈ کے ذریعے ہم سے چلو.
[طالب علم] جی ہاں. درمیان میں ٹیبل کی قیمت میں دیکھو اور سوئ کرنے کے لئے اس کا موازنہ کریں.
لہذا اگر یہ آپ کے انجکشن سے بڑا ہے، تو آپ چاہتے ہیں - اوہ، اصل میں، کہ پیچھے کی طرف ہونا چاہئے.
آپ صحیح نصف پھینک کرنا چاہتے ہیں جا رہے ہیں، اور تو جی ہاں، اس طرح ہونا چاہئے.
[Bowden] تو یہ کم ہونا چاہئے؟ یہ ہے کہ تم نے کیا کہا؟ >> [طالب علم] جی ہاں.
[Bowden] ٹھیک ہے. کم.
تو کیا ہوا اگر ہم دیکھ رہے ہیں جو ہم چاہتے ہیں سے چھوٹا ہے،
تو ہاں، ہم دور بائیں نصف پھینک کرنا چاہتے ہیں،
جس کا مطلب ہے کہ ہم سب کچھ ہم پر غور کر رہے ہیں کو اپ ڈیٹ کر رہے ہیں
صف کے دائیں جانب کے کم منتقل کی طرف سے.
یہ اچھا لگ رہا ہے.
مجھے لگتا ہے کہ یہ وہی مسئلہ ہے کہ ہم نے کہا کہ گزشتہ ایک ہے،
جہاں اگر کم 0 ہے اور اپ 1 ہے، تو کم + اپ 2 / ایک ہی بات کو دوبارہ قائم کرنے کے لئے کی جا رہی ہے.
>> اور یہاں تک کہ اگر ایسی بات نہیں ہے، ابھی تک کم از کم زیادہ موثر ہے
صرف دور عنصر پھینک ہم صرف دیکھا جس میں ہم جانتے ہیں کہ وہ غلط ہے.
اتنی کم + اپ 2/1 + - >> [طالب علم] یہ دوسرا راستہ ہونا چاہئے.
[Bowden] یا یہ ہونا چاہئے - 1 اور ایک دوسرے + 1 ہونا چاہئے.
[] طالب علم اور ایک ڈبل ہونا چاہئے علامت برابر ہے. >> [Bowden] جی ہاں.
[طالب علم] جی ہاں.
ٹھیک ہے.
اور آخر میں، اب کہ ہم اس 1 + - 1 بات،
ہے - یہ نہیں ہو سکتا ہے - یہ کبھی ممکن ہے اپ سے زیادہ قیمت کے ساتھ کم کے لئے ختم کرنے کے لئے؟
مجھے لگتا ہے کہ صرف ایک ہی طریقہ ہے کہ ہو سکتا ہے - کیا یہ ممکن ہے؟ >> [طالب علم] مجھے پتہ نہیں ہے.
لیکن اگر یہ چھوٹا کیا ہو جاتا ہے اور پھر مائنس ہو جاتا ہے کہ اور اس کے بعد 1 - >> جی ہاں.
[طالب علم] شاید اپ ملے گا گڑبڑ کر دی.
مجھے لگتا ہے کہ یہ اچھا ہی ہے کیونکہ ہونا چاہئے
کے لئے یہ کم ختم کرنے کے لئے وہ برابر ہو گی، مجھے لگتا ہے.
لیکن اگر وہ برابر ہیں، تو پھر ہم دیر سے شروع لوپ نہیں ہوتا
اور ہم صرف قیمت واپس آ جائیں گے. تو مجھے لگتا ہے کہ اب ہم اچھے ہیں.
کہ نوٹس کے باوجود اس مسئلہ کو اب نہیں ہے پنراورتی،
خیالات کے اسی قسم کا اطلاق ہوتا ہے ہم کہاں دیکھ کر سکتے ہیں کس طرح یہ اتنی آسانی سے خود فراہم کرتا
حقیقت یہ ہے کہ ہم صرف اور اس سے زیادہ سوچکانک رہے ہیں پھر اپ ڈیٹ کرنے کے کی طرف سے ایک پنراورتی حل،
ہم اس مسئلے چھوٹے اور چھوٹے کر رہے ہیں، ہم صف کی ایک اپسمچی پر توجہ مرکوز کر رہے ہیں.
[طالب علم] اگر کم 0 ہے اپ اور 1 ہے، وہ 0 + 1/2، 0 گے ہو گی دونوں
اور پھر ایک 1 + ہو جائے گا، ایک جائے گا - 1.
[طالب علم] ہم برابری کہاں کی جانچ پڑتال کر رہے ہیں؟
طرح اگر مشرق وسطی کے ایک اصل کی سوئ ہے؟
ہم اس وقت نہیں کر رہے ہیں؟ اوہ!
اگر it's -
جی ہاں. ہم یہاں ذیل نہ صرف ٹیسٹ ہو سکتا ہے کیونکہ دو کا کہنا ہے کہ پہلے وسط -
[طالب علم] یہ اصل میں دور باہر نہیں جانے چاہیں.
تو اگر آپ دور جانے پھینک، آپ کو اس سے پہلے یا جو کچھ بھی چیک کرنے کے لیے ہے.
آہ. جی ہاں. >> [طالب علم] جی ہاں.
تو اب ہم دور پھینک دیا جس سے ہم اس وقت کو دیکھا ہے،
جس کا مطلب ہے کہ ہم اب بھی کرنے کی ضرورت ہے
اگر (ٹیبل [(کم + اپ 2) /] == سوئ)، پھر ہم صحیح واپس آ سکتے ہیں.
اور یہ کہ میں ڈالا، ورنہ اگر لفظی ایک ہی بات کا مطلب ہے کہ
کیونکہ یہ سچ ہے واپس آ جائیں گے.
اس لئے میں اور ڈال اگر، لیکن کوئی بات نہیں کریں گے.
>> تو اور اس کے علاوہ، اس، اور یہ ایک عام بات ہے مجھے کیا کرنا ہے اگر
جہاں یہاں تک کہ اگر یہ کیس ہے جہاں سب کچھ اچھا یہاں ہے ہے،
طرح اپ سے کم زیادہ نہیں ہو سکتا، یہ کہ کیا یہ سچ ہے کے بارے میں قابل استدلال نہیں ہے.
تو آپ کو کم سے کم یا برابر ہے کے طور پر اچھی طرح سے کہہ سکتے ہیں
یا جبکہ کم سے کم ہے
اگر ایسا ہے تو وہ کبھی برابر یا کم ہیں کو منتقل کرنے کی ہے،
تو ہم اس لوپ سے باہر توڑ سکتا ہے.
سوالات، خدشات، تبصرے؟
ٹھیک ہے. یہ اچھا لگ رہا ہے.
اب ہم طرح کرنا چاہتے ہیں.
اگر ہم میری دوسری نظر ثانی، ہم یہ وہی تعداد دیکھ رہے ہیں،
لیکن اب انہیں کے مطابق ترتیب میں نہیں رہے.
اور ہم طرح ن لاگ ان کریں (ن) کے O میں کوئی الگورتھم کا استعمال کرتے ہوئے پر عملدرآمد چاہتے ہیں.
تو تم کس الگورتھم لگتا ہے کہ ہم یہاں پر عملدرآمد کرنا چاہئے ہے؟ >> [طالب علم] ضم طرح.
[Bowden] جی ہاں. طرح ضم O (ن لاگ ان ن) ہے، تو ہے کہ ہم کیا کرنے جا رہے ہیں.
اور مسئلہ خوبصورت اسی طرح کی جا رہی ہے،
یہ آسانی سے جہاں خود کو ایک پنراورتی حل فراہم کرتا ہے.
ہم ایک حل تکراری کے ساتھ بھی آ اگر ہم چاہتے ہیں کر سکتے ہیں،
لیکن تکرار یہاں آسان ہو جائے گا اور ہم تکرار کرنا چاہیے.
مجھے لگتا ہے کہ ہم ضم طرح کے ذریعے چلنا پہلے گا،
اگرچہ ضم طرح ایک خوبصورت ویڈیو پہلے سے ہی ہے. [ہنسی]
تو طرح وہاں ہیں ضم - میں اس کاغذ پر اتنا برباد کر رہا ہے.
اوہ، صرف ایک ہی بائیں ہے.
تو ضم.
اوہ، 1، 3، 5.
ٹھیک ہے.
ضم دو الگ الگ arrays لیتا ہے.
انفرادی طور پر ان دو arrays دونوں کے مطابق کر رہے ہیں.
تو اس صف، 1، 3، 5، کے مطابق ہے. یہ صف، 0، 2، 4، کے مطابق.
اب کیا ضم کرنا چاہیے ان کے ایک ایک صف ہے جو خود کے مطابق ہے میں جمع ہے.
تو ہم 6 سائز کے ایک صف ہے کہ اس کے اندر ان عناصر کی جا رہی ہے چاہتے ہیں
کے مطابق ترتیب میں.
>> اور اس طرح ہم حقیقت یہ ہے کہ ان دونوں arrays کے مطابق کر رہے ہیں کا فائدہ لے سکتے ہیں
لکیری وقت میں اس کرنا،
لکیری وقت کا مطلب ہے اگر اس صف کے سائز ایکس ہے اور اس کے سائز Y ہے،
پھر کل الگورتھم O (X Y +) ہونا چاہئے. ٹھیک ہے.
تو تجاویز.
[طالب علم] ہم بائیں طرف سے شروع کر سکتے ہیں؟
تو آپ 0 سب سے پہلے نیچے اور اس کے بعد 1 ڈال اور پھر یہاں آپ کو 2 بجے ہو گا.
تو یہ کہ آپ کو ایک ٹیب ہے جو حق پر چل رہا ہے کی طرح ہے. >> [Bowden] جی ہاں.
ان دونوں arrays کے کے لیے اگر ہم leftmost عنصر پر توجہ مرکوز ہے.
کیونکہ دونوں arrays کے مطابق کر رہے ہیں، ہم جانتے ہیں کہ یہ 2 عناصر
دونوں میں سے کسی بھی صف میں سب سے چھوٹی عناصر ہیں.
تو اس کا مطلب ہے کہ ان 2 عناصر کے 1 ہمارے ضم شدہ صف میں سب سے چھوٹی عنصر ہونا چاہیے.
یہ صرف اس لئے ہوتا ہے کہ سب سے چھوٹی کو براہ راست اس وقت پر میں سے ایک ہے.
تو ہم 0 لے، بائیں پر داخل کی وجہ سے کم 0 1 ہے،
تو 0 لے، ہماری پہلی پوزیشن میں داخل، اور پھر ہم اس کو اپ ڈیٹ
اب پہلے عنصر پر توجہ دیتے ہیں.
اور اب ہم دوبارہ درج کریں.
تو اب ہم 2 کا آپس میں موازنہ اور 1. 1 چھوٹا ہے، تو ہم 1 داخل کریں گے.
ہم یہ پوائنٹر اس آدمی کی طرف اشارہ اپ ڈیٹ کریں.
تو اب ہم اسے دوبارہ کرتے ہیں، 2. اس کو اپ ڈیٹ کریں، ان 2 3 موازنہ کریں گے.
یہ اپ ڈیٹ، پھر 4 اور 5.
تو اس ضم ہے.
>> یہ بہت واضح ہے کہ یہ لکیری وقت آ گیا ہے کیونکہ ہم ہر عنصر بھر میں صرف ایک بار جانے ہونا چاہئے.
اور اس پر عملدرآمد ضم طرح یہ کر رہی ہے سب سے بڑا قدم ہے.
اور مشکل نہیں ہے.
ایک جوڑے کے بارے میں فکر کرنے کی چیزوں چلو، کا کہنا ہے کہ ہم 1، 2، 3، 4، 5، 6 ولی گیا تھا.
اس صورت میں ہم جائزہ میں جہاں یہ ایک چھوٹا ہونا ہو رہا ہے میں ختم،
، تو پھر ہم اس پوائنٹر کو اپ ڈیٹ کریں، یہ ایک چھوٹا ہونا ہو رہا ہے، اس کو اپ ڈیٹ
اس سے چھوٹی ہے، اور اب آپ کی شناخت ہے
جب تم عناصر کے اصل باہر ہے کے ساتھ آپس میں موازنہ چلائیں.
چونکہ ہم نے پہلے سے ہی اس پورے صف استعمال کیا ہے،
اس صف میں سب کچھ اب یہاں صرف میں داخل ہے.
تو اگر ہم نقطہ جہاں ہمارے arrays میں سے ایک مکمل طور پر پہلے سے ملا دیا گیا ہے میں نے کبھی چلاتے ہیں،
اس وقت ہم صرف دوسری صف کے تمام عناصر کو لے اور صف کے آخر میں ان پر داخل کریں.
تو ہم 4، 5 داخل، 6 کرسکتے ہیں. ٹھیک ہے.
یہ ایک کے لئے باہر دیکھنے کی بات ہے.
عمل درآمد 1 قدم ہونا چاہئے.
اس کی بنیاد پر ضم تو ترتیب، 2 اقدامات، 2 پاگل اقدامات ہے.
چلو صرف اس صف دیتے ہیں.
1 قدم تو طرح ضم، تکراری طور پر حصوں میں صف ٹوٹ جاتا ہے.
تو حصوں میں اس صف کو تقسیم کیا.
اب ہم نے 4، 15، 16، 50، اور 8، 23، 42، 108 ہے.
اور اب ہم اسے دوبارہ کرتے ہیں اور ہم حصوں میں ان علیحدہ ہے.
میں اس طرف ایسا کریں گے.
تو 4، 15، اور 16، 50.
ہم یہاں پر ایک ہی بات کروں گا.
اور اب ہم اس کے حصوں میں دوبارہ تقسیم.
اور ہم نے 4، 15، 16، 50 ہے.
تو یہ ہمارا بیس معاملہ ہے.
ایک بار arrays 1 سائز کے ہیں، تو پھر ہم حصوں میں تقسیم کے ساتھ بند کرو.
>> اب کیا ہم نے اس کے ساتھ کیا کرتے ہیں؟
ہم یہ 8، 23، 42، اور 108 میں کمی بھی ٹوٹ جائے گا.
تو اب ہے کہ ہم اس مقام پر ہیں، اب قدم ضم قسم کے صرف دو کی فہرستوں جوڑوں ہے ولی.
تو ہم ان ضم کرنا چاہتے ہیں. ہمیں صرف فون ضم.
ہم جانتے ہیں کہ انضمام کے مطابق ترتیب میں ان پر واپس آ جائیں گے.
4، 15.
اب ہم ان ضم کرنا چاہتے ہیں، اور اس کے مطابق ترتیب میں ان کے ساتھ ایک فہرست واپس آ جائیں گے،
16، 50.
ہم ان ضم - میں نہیں لکھ سکتا ہے - 8، 23، اور 42، 108.
تو ہم ضم شدہ جوڑوں نے ایک بار ہے.
اب ہم صرف دوبارہ ضم.
خود نوٹس کے کہ ان فہرستوں میں سے ہر ایک کے مطابق ہے،
اور پھر ہم ان فہرستوں 4 سائز کے ایک فہرست ہے، جن کے مطابق ہے حاصل کرنے کے لئے ضم کر سکتے ہیں
اور ان دونوں فہرستوں 4 سائز کے ایک فہرست ہے کہ کے مطابق ہے حاصل کرنے کے لئے ضم.
اور آخر میں، ہم 4 سائز کے ان دو فہرستیں ضم 8 سائز کے ایک فہرست کے مطابق ہے حاصل کرنے کے لئے کر سکتے ہیں.
تو دیکھتے ہیں کہ یہ مجموعی طور پر (ن) لاگ ان (ن) ہے، ہم نے پہلے سے ہی دیکھا ہے کہ ضم لکیری ہے،
تو جب ہم ان ولی کے ساتھ ضم کی مجموعی لاگت کی طرح کام کر رہے ہو،
وجہ سے ان دونوں فہرستوں کے لئے صرف 2 ہے -
یا اچھی طرح، این اے ہے، لیکن یہاں (ن) صرف ان 2 عناصر، تو یہ 2 ہے.
اور 2 ان 2 ہو جائے گا اور 2 ان 2 ہو جائے گا اور 2 ان 2 ہو جائے گا،
ضم کرتا ہے کہ ہم کیا کرنے کی ضرورت ہے سب کے پار، ہم نے ختم ن کر.
2 کی طرح + 2 2 + 2 + 8، جو ن ہے ہے،
اس سیٹ میں ولی کی قیمت (ن) ہے.
اور پھر وہی بات ہے.
ہم 2 ان ضم، تو 2 ان، گے اور انفرادی طور پر اس انضمام چار آپریشن لیں گے،
اس ضم چار آپریشن، لیکن ان میں سے سب کے درمیان ایک بار پھر،
ہم نے ختم ولی ن کل چیزیں، اور اس طرح یہ قدم ن لیتا ہے.
اور اس طرح ہر سطح پر کیا جا رہا ہے ضم ن عناصر لیتا ہے.
>> اور کس طرح کئی سطحوں ہیں؟
ہر سطح پر، ہمارے صف 2 سائز کی طرف سے ہوتی ہے.
یہاں ہمارے arrays 1 سائز کے ہیں، یہاں وہ 2 سائز کے ہیں، یہاں وہ 4 سائز کے ہیں،
اور آخر میں، وہ 8 سائز کے ہیں.
تو کیونکہ یہ دوگنا اضافہ ہے، تو لاگ ان ن ان سطحوں کے کل ہونے جا رہے ہیں.
تو، لاگ ان کریں (ن) کی سطح، ہر انفرادی سطح لے (ن) کل آپریشن کے ساتھ
ہم نے ایک (ن) کے لاگ ان ن الگورتھم ملتا ہے.
سوال؟
لوگ پہلے سے ہی یہ کس طرح لاگو کرنے کے لئے پیش رفت کی ہے؟
پہلے سے ہی ایک ریاست میں کوئی بھی جہاں میں صرف اپنے کوڈ کو ھیںچو کر سکتے ہیں ہے؟
میں ایک منٹ دے سکتے ہیں.
یہ ایک اب ہونے جا رہا ہے.
میں انتہائی recur کی سفارش -
آپ کو ضم کے لئے تکرار کرنے کی ضرورت نہیں ہے
کیونکہ ضم کے لئے تکرار کرنا، آپ مختلف سائز کے ایک گروپ کو منتقل کرنے کی ضرورت کے لئے جا رہے ہیں.
آپ، یہ پریشان کن ہے لیکن.
لیکن طرح خود کے لئے تکرار بہت آسان ہے.
آپ بائیں نصف صرف لفظی طرح فون، صحیح نصف پر ترتیب دیں. ٹھیک ہے.
کسی سے کچھ میں اوپر ھیںچو ابھی تک کر سکتے ہیں ہے؟
ورنہ میں ایک منٹ دے دیں گے.
ٹھیک ہے.
کوئی بھی ہم کچھ کے ساتھ مل کر کام کر سکتے ہیں ہے؟
ورنہ ہم اس کے ساتھ صرف اور پھر کام وہاں سے توسیع کریں گے.
>> کوئی بھی اس سے زیادہ ہے کہ میں اوپر ھیںچو کر سکتے ہیں ہے؟
[طالب علم] جی ہاں. تم نے میری ھیںچو کر سکتے ہیں. >> ٹھیک ہے.
جی ہاں!
[طالب علم] شرائط میں سے ایک بہت کچھ تھے. >> اوہ، گولی مار. آپ کر سکتے ہیں -
[طالب علم] میں اسے بچانے کے لئے ہے. >> جی ہاں.
تو ہم ضم علیحدہ کیا تھا.
اوہ، لیکن یہ اتنا برا نہیں ہے.
ٹھیک ہے.
طرح تو خود صرف mergeSortHelp بلا.
ہمیں سمجھانے کی mergeSortHelp ہے.
[طالب علم] MergeSortHelp بہت دو اہم اقدامات کرتا ہے،
جو صف میں سے ہر ایک نصف اور ترتیب اس کے بعد ان دونوں ضم ہے.
[Bowden] ٹھیک ہے، تو مجھے ایک دوسرے کو دیتے ہیں.
مجھے یہ لگتا ہے کہ - >> [طالب علم] میں کرنے کی ضرورت ہے -
جی ہاں. میں کچھ کمی محسوس کر رہا ہوں.
ضم میں، مجھے احساس ہوتا ہے کہ میں ایک نئی صف بنانے کے لئے کی ضرورت ہے
کیونکہ میں نے اس جگہ میں ایسا نہیں کر سکا. >> جی ہاں. تم نہیں کر سکتے ہیں. درست کریں.
[طالب علم] تو میں نے ایک نئی صف تشکیل دیں.
میں دوبارہ تبدیلی ضم آخر میں میں بھول گیا تھا.
ٹھیک ہے. ہم نے ایک نئی صف کی ضرورت ہے.
انضمام کی طرح میں یہ تقریبا ہمیشہ ہی سچ ہے.
بہتر الگورتھم وقت وار کی قیمت کا ایک حصہ
تقریبا ہمیشہ تھوڑا زیادہ میموری کو استعمال کرنے کے لئے کی ضرورت ہے.
تو یہاں، کوئی بات نہیں کس طرح تم کرتے ہو طرح ضم،
آپ کو کچھ اضافی میموری کو استعمال کرنے کے لئے ناگزیر ضرورت ہو گی.
وہ ایک نئی صف بنایا.
اور پھر آپ کا کہنا ہے کہ آخر میں ہم صرف اصل صف میں نئی ​​صف کی کاپی کرنے کی ضرورت ہے.
[طالب علم] مجھے ایسا لگتا ہے، جی ہاں.
میں جانتا ہوں کہ اگر اس حوالہ یا جو کچھ بھی کی طرف سے گنتی کے لحاظ سے کام کرتا ہے نہیں ہے -
جی ہاں، یہ کام ہو جائے گا. >> [طالب علم] ٹھیک ہے.
کیا آپ کو یہ چلانے کی کوشش کی؟ >> [طالب علم] نہیں، ابھی نہیں. ٹھیک ہے. >>
اسے چلانے کی کوشش کریں، اور پھر اس کے بارے میں ایک سیکنڈ کے لئے بات کریں گے.
[طالب علم] میں تمام تقریب prototypes اور سب کچھ ہے کی ضرورت ہے، اگرچہ، ہے نا؟
تقریب prototypes. جی ہاں - اوہ، آپ کی طرح مطلب ہے.
ترتیب دیں mergeSortHelp بلا رہا ہے.
>> تو حکم کے لئے طرح mergeSortHelp فون کرنے کی، mergeSortHelp یا تو کیا گیا ہے کی وضاحت ضروری ہے
طرح سے پہلے یا ہم صرف پروٹوٹائپ کی ضرورت ہے. جاؤ اور اس کو کاپی اور پیسٹ کریں.
اور اسی طرح، mergeSortHelp بلا ضم ہے،
لیکن ضم ابھی تک بیان نہیں کیا گیا ہے، تو ہم صرف mergeSortHelp معلوم کرسکتے ہیں
کہ کہ جو ضم کی طرح نظر آنا جا ہے، اور یہ کہ ہے کہ.
mergeSortHelp تو.
ہم یہاں ایک مسئلہ ہے جہاں ہم کوئی بنیاد کا معاملہ ہے.
تو MergeSortHelp پنراورتی ہے، کسی بھی پنراورتی تقریب
بیس کیس کی ایک طرح جانتے ہیں کہ جب تکراری طور پر خود بلا کو روکنے کے لئے کرنے کی ضرورت ہے چل رہا ہے.
ہمارے بیس کے کیس کیا ہے یہاں جا رہے ہیں؟ جی ہاں.
[] طالب علم اگر سائز 1 ہے؟ >> [Bowden] جی ہاں.
تو جیسا کہ ہم نے وہاں دیکھا، ہم نے تقسیم arrays روک دیا
ایک بار ہم 1 لوڈ، arrays جو لامحالہ خود کو حل کر رہے ہیں میں ہے.
لہذا اگر سائز 1 برابر ہے، ہم جانتے ہیں کہ صف پہلے ہی کے مطابق ہے،
تو ہم واپس جا سکتے ہیں.
>> یاد رکھیں کہ باطل ہے، تو ہم نے خاص طور پر کچھ واپس نہیں ہے، ہم ابھی آیا.
ٹھیک ہے. جس سے کہ ہماری بنیاد بات ہے.
مجھے لگتا ہے کہ اگر ہم ہماری بنیاد کیس 0 سائز کے ایک صف ولی ہوا بھی ہو سکتا ہے،
ہم شاید کچھ نقطہ پر روکنا چاہتے ہیں،
تو ہم سے کم 2 یا یا اس سے بھی کم 1 کے برابر سائز صرف کہہ سکتے ہیں
تاکہ یہ اب کسی بھی صف کے لئے کام کریں گے.
ٹھیک ہے.
جس سے کہ ہماری بنیاد بات ہے.
اب آپ ہمیں ضم کے ذریعے چلنے کرنا چاہتے ہیں؟
ان تمام معاملات کا کیا مطلب ہے؟
یہاں، ہم صرف ایک ہی خیال کر رہے ہیں -
[طالب علم] میں تمام mergeSortHelp کالز کے ساتھ سائز گزر رکھا جائے کی ضرورت ہے.
میں ایک اضافی بنیادی کے طور پر سائز میں شامل کیا ہے اور یہ وہاں 2 / حجم کی طرح نہیں ہے،.
[Bowden] اوہ، سائز / 2، سائز / 2. >> [طالب علم] جی ہاں، اور بھی مندرجہ بالا کے طور پر کام میں.
[Bowden]؟ >> [طالب علم کو] سائز صرف. >> [Bowden] اوہ. سائز، سائز؟ >> [طالب علم] جی ہاں.
[Bowden] ٹھیک ہے.
کے وزٹرز کا ریکارڈ رکھا جائے گا. میرے ایک لمحے کے لئے لگتا ہے.
کیا ہم نے ایک مسئلہ میں چلانے کے؟
ہم نے ہمیشہ 0 طور پر بائیں علاج کر رہے ہیں. >> [طالب علم] نمبر
یہ غلط بھی ہے. معاف کیجئے گا. یہ شروع ہونا چاہئے. جی ہاں.
[Bowden] ٹھیک ہے. میں بہتر ہے کہ اچھا لگتا ہے.
آخر اور ٹھیک ہے.
تو اب تم ہمیں ضم کے ذریعے چلنے کرنا چاہتے ہیں؟ >> [طالب علم] ٹھیک ہے.
میں صرف اس نئی صف کے ذریعے چل رہا ہوں کہ میں تشکیل دے دیا ہے.
اس کے سائز میں صف کے حصے کے سائز ہے کہ ہم کے مطابق کرنا چاہتے ہیں
اور عنصر ہے کہ میں صف کے نئے مرحلے میں رکھنا چاہئے تلاش کرنے کی کوشش.
، تو ایسا کرنے کے لئے، پہلے میں کی جانچ پڑتال اگر صف کے بائیں نصف سے زیادہ عناصر کر رہا ہوں
اور اگر ایسا نہیں ہوتا، تو آپ کہ کوئی شرط ہے، جس میں صرف کا کہنا ہے کہ نیچے جاؤ
ٹھیک ہے، یہ درست صف میں، اور ہم کی موجودہ فہرست newArray میں ڈال دیتا ہوں.
>> اور پھر دوسری صورت میں، میں جانچ پڑتال اگر صف کے دائیں جانب بھی ختم ہو گیا ہے رہا ہوں،
اس صورت میں صرف بائیں سمت میں ڈال دیا ہے.
دراصل ضروری نہیں ہو سکتا ہے. مجھے یقین نہیں ہے.
لیکن ویسے بھی، دیگر دو چیک دونوں میں سے کس کو بائیں یا دائیں میں چھوٹے ہیں.
اور بھی ہر صورت میں، میں incrementing میں جو بھی پلیس ہولڈر اضافہ کر رہا ہوں.
[Bowden] ٹھیک ہے.
یہ اچھا لگتا ہے.
کیا کسی تبصرے یا خدشات یا سوالات ہیں؟
یا پانچ طرح لگتا ہے - چار مقدمات کہ ہم چیزوں کو صرف وجود میں لانے تو -
لیکن ہم پر غور کیا بائیں صف چیزیں ہم ضم کرنے کی ضرورت ہے سے ختم ہو گیا ہے ہے،
کیا صحیح صف چیزیں ہم ضم کرنے کی ضرورت ہے سے ختم ہو گیا ہے -
میں کچھ بھی نہیں کی طرف اشارہ کر رہا ہوں.
تو ہے کہ بائیں صف چیزوں کی ختم ہو گیا ہے یا صحیح صف چیزوں کے ختم ہو گیا ہے.
وہ دو کیس ہیں.
ہم بھی کیا بائیں بات صحیح کام کے مقابلے میں کم ہے تچرچھ مقدمہ کی ضرورت ہے.
پھر ہم بائیں چیز کو منتخب کرنے کے لئے چاہتے ہیں.
ان کیسز ہیں.
تو یہ درست تھا تو، وہ وہ ہے.
صف چھوڑ دیا. 1، 2، 3 ہے. ٹھیک ہے. تو جی ہاں، ان چار چیزوں کو ہم کرنا چاہتے ہیں کر سکتے ہیں ہیں.
اور ہم حل تکراری نہیں کرے گا.
میں نہیں کی سفارش کریں گے -
طرح ضم ایک تقریب ہے کہ پونچھ کے دونوں پنراورتی نہیں ہے اس کی ایک مثال ہے،
یہ آسان نہیں ہے دم اس کو پنراورتی بنانے،
بلکہ یہ بہت آسان نہیں ہے اسے تکراری.
یہ بہت آسان ہے.
ضم طرح کا یہ عمل،
، کوئی بات نہیں جو تم کرتے ہو ضم، آپ کو ضم تعمیر کرنے جا رہے ہیں.
>> تو ضم ضم کے سب سے اوپر پر تعمیر طرح تکراری طور پر صرف ان تین لائنوں.
Iteratively، یہ زیادہ پریشان اور زیادہ مشکل کے بارے میں سوچنا ہے.
نوٹس لیکن وہ یہ mergeSortHelp کے بعد پنراورتی دم نہیں ہے - جب اس کا مطالبہ خود -
یہ اب بھی اس پنراورتی کال کی واپسی کے بعد کام کرنے کی ضرورت ہے.
تو یہ اسٹیک فریم کو اس بلا کے بعد بھی موجود رہنا چاہیے.
اور پھر جب آپ یہ کہتے ہیں، اسٹیک فریم موجود ہونا ضروری ہے
کیونکہ کال کے بعد بھی، ہم اب بھی ضم کرنا کی ضرورت ہے.
اور یہ nontrivial ہے اس دم پنراورتی بنانے کے لئے.
سوال؟
ٹھیک ہے.
تو واپس جانے ترتیب - اوہ، دو چیزوں میں ظاہر کرنا چاہتے ہیں. ٹھیک ہے.
طرح واپس جا رہے ہیں، ہم یہ فوری طور پر کر دونگا.
یا تلاش. ترتیب دیں؟ ترتیب دیں. جی ہاں.
طرح کے آغاز پر واپس جا رہا ہوں.
ہم کو اس طرح صف الگورتھم کوئی الگورتھم کا استعمال کرتے ہوئے تخلیق کرنا چاہتے ہیں
این اے.
تو یہ کس طرح ممکن ہے؟ کیا کسی کو بھی کسی بھی طرح کی ہے -
میں سے پہلے اشارہ دیا -
اگر ہم اس کے بارے میں ہو، ن لاگ ان کریں (ن) کی طرف سے این اے کو بہتر بنانے کے لئے،
ہم اپنے الگورتھم وقت کے اعتبار سے بہتر ہے،
جس کا مطلب ہے کہ جو ہم نے اس کے لیے قضاء کرنے کی ضرورت کے لئے جا رہے ہیں؟
خلائی [طالب علم. >> جی ہاں. ہم آپ کو مزید جگہ کا استعمال کرتے ہوئے جا رہے ہیں.
اور بھی نہیں اور جگہ صرف اسے تیزی سے زیادہ جگہ ہے.
تو مجھے لگتا ہے کہ الگورتھم کے اس قسم کے چھدم کچھ چھدم polynom ہے -
چھدم - مجھے یاد نہیں آ سکتا ہے. چھدم کچھ.
لیکن یہ ہے کیونکہ ہم اتنی جگہ کا استعمال کرنے کی ضرورت ہے
کہ یہ ممکن ہے لیکن حقیقت نہیں ہے.
>> اور ہم اسے کس طرح حاصل کرنے کے لئے کر سکتا ہوں؟
ہم اس مقصد کو حاصل کر سکتے ہیں اگر ہم اس بات کی ضمانت ہے کہ صف میں کوئی خاص عنصر
ایک خاص سائز سے نیچے ہے.
تو صرف یہ کہنا ہے کہ سائز 200 ہے، دو
ذیل میں ایک صف میں کوئی عنصر 200 سائز ہے.
اور یہ اصل میں ہے بہت حقیقت پسندانہ ہے.
تم ایک صف ہے کہ تم اس میں سب کچھ پتہ ہے بہت آسانی سے کر سکتے ہیں
کچھ تعداد سے کم ہو جائے گا.
اگر آپ کو کچھ بالکل بڑے پیمانے پر ویکٹر یا کچھ اور طرح
لیکن آپ جانتے ہیں 0 اور 5 کے درمیان سب کچھ ہونے جا رہا ہے،
تو یہ نمایاں طور پر تیزی سے ایسا ہو رہا ہے.
اور عناصر میں سے کسی پر جانے 5 ہے،
جانے تو یہ ہے کہ تم کتنی میموری کا استعمال کرتے ہوئے جا رہے ہیں.
تو جانے 200 ہے.
اصول میں رہتا ہے جانے کے بعد ایک عددی 4 ارب سے ہی ہو سکتا ہے،
لیکن اس سے تو ہم خلا کا استعمال کرتے ہوئے چاہتے ہیں کے بعد سے غیر حقیقی ہے
4 ارب کے حکم پر. تو یہ غیر حقیقی ہے.
لیکن یہاں ہم اپنے جانے کہیں گے 200 ہے.
این اے میں یہ کام کر رہے چال ہے ہم ایک دوسرے سے ملاقات کی سائز کے شمار پابند صف بنا.
تو اصل میں، اس کے لئے ایک شارٹ کٹ ہے - میں اصل میں اگر بجنا اس کا معلوم نہیں ہے.
لیکن بہت کم از کم جی سی سی میں - I'm سنبھالنے کی بجنا یہ بھی ہے -
یہ پوری صف 0s ابتدا گا.
تو اگر میں نے ایسا نہیں کرنا چاہتے ہیں، تو میں کے لئے علیحدہ کر سکتا ہے (int میں = 0؛
میں <پابند، میں + +) شمار اور [میں] = 0؛
تو اب سب کچھ 0 initialized ہے.
میں اپنی صف پر iterate
اور جو میں کر رہا ہوں وہ یہ ہے کہ میں ہر ایک کی تعداد کی گنتی کر رہا ہوں - چلو یہاں نیچے جا.
ہم نے 4، 15، 16، 50، 8، 23، 42، 108 ہے.
مجھے کیا گنتی رہا ہوں ان عناصر میں سے ہر ایک کے واقعات کی تعداد ہے.
میں اصل میں کچھ دوبارہ سے یہاں ایک جوڑے شامل ہوں.
تو قدر ہم یہاں ہیں، کہ اس کی قدر صف لئے [i] جا رہا ہے.
تو ویل 4 یا 8 یا جو کچھ بھی ہو سکتا ہے.
اور اب میں گنتی اس قدر کے بہت سے کس طرح میں نے دیکھا ہے رہا ہوں،
شمار تو [ویل] + +؛
اس کے بعد کیا جاتا ہے، شمار 0001 کی طرح کچھ نظر کی جا رہی ہے.
چلو شمار کرتے ہیں [ویل] - 1 + پابند.
>> اب یہ صرف ہے کہ حقیقت یہ ہے کہ ہم 0 سے شروع کر رہے ہیں کا حساب.
تو 200 اگر ہماری سب سے بڑی تعداد ہونے جا رہا ہے،
تو 0 سے 200 201 چیزیں ہے.
شمار تو یہ 00001 کی طرح نظر آتے کیونکہ ہم ایک 4 پڑے گا.
اس کے بعد ہم نے 0001 جہاں ہم شمار 8th انڈیکس میں 1 پڑے گا کریں گے.
ہم شمار 23rd انڈیکس میں 2 پڑے گا.
ہم شمار 42nd انڈیکس میں 2 پڑے گا.
تو ہم شمار کا استعمال کر سکتے ہیں.
تو num_of_item = شمار [میں].
اور اگر ایسا ہے تو num_of_item 2 ہے، اس کا مطلب ہے کہ ہم تعداد میں 2 داخل کرنا چاہتے ہیں
ہمارے کے مطابق صف میں.
تو ہم ہم صف میں کس حد تک ہیں ٹریک رکھنے کے لئے کی ضرورت ہے.
تو انڈیکس = 0.
لڑی - میں اسے لکھیں گے.
کاؤنٹس -
صف [انڈیکس + +] میں =؛
یہ ہے کہ جو میں چاہتا ہوں؟ مجھے لگتا ہے کہ وہ ہے جو میں چاہتا ہوں.
جی ہاں، یہ اچھا لگتا ہے. ٹھیک ہے.
تو سب سمجھ ہے کہ میرا شمار صف کا مقصد کیا ہے؟
یہ ان کی تعداد میں سے ہر ایک کے واقعات کی تعداد کی گنتی کر رہا ہے.
پھر میں iterating کہ شمار صف رہا ہوں،
اور شمار صف میں ith پوزیشن
میں میرے مطابق صف میں ظاہر ہو جانی چاہئے.
یہی وجہ ہے کہ 4 میں سے شمار 1 جا رہا ہے
اور 8 شمار 1 جا رہا ہے، 23 مرتبہ 2 جا رہا ہے.
تو اس میں ہے کہ کس طرح ان میں سے بہت سے میرے مطابق صف میں شامل کرنے کے لئے کرنا چاہتے ہیں.
اس وقت میں صرف کرتے ہیں.
میں num_of_item داخل کر رہا ہوں میرے مطابق صف میں ہے.
>> سوال؟
اور تو پھر، یہ لکیری وقت ہے کیونکہ ہم صرف ایک بار اس سے زائد iterating کر رہے ہیں،
لیکن یہ بھی جو اس نمبر پر ہوتا ہے لکیری ہے،
اور تو اس بھاری جو تمہارے جانے پر انحصار کرتا ہے.
200 کے جانے کے ساتھ، جو کہ برا نہیں ہے.
اگر آپ جانے 10،000 جا رہا ہے، تو یہ تھوڑا خراب ہے،
لیکن اگر آپ جانے 4 ارب جا رہا ہے وہ مکمل طور پر غیر حقیقی ہے
اور یہ صف حجم 4 ارب، جو غیر حقیقی ہے جا رہا ہے.
تو یہ ہے. سوال؟
[اشراوی طالب علم کے جواب] ٹھیک ہے. >>
میں ایک اور چیز کا احساس ہوا جب ہم کے ذریعے جا رہے تھے.
مجھے لگتا ہے کہ مسئلہ لوکاس اور شاید ہر ایک ہم نے دیکھا تھا.
میں بالکل بھول گیا.
صرف ایک چیز مجھے پر تبصرہ کرنے سے چاہتا تھا یہ ہے کہ آپ سوچکانکوں کی طرح چیزوں کے ساتھ جب نمٹنے رہے ہیں،
تم یہ سچ کبھی نہیں یہ دیکھنے کی ضرورت ہے جب آپ لوپ کے لئے لکھ رہے ہیں،
لیکن تکنیکی طور پر، جب بھی آپ کو ان سوچکانکوں کے ساتھ کام کر رہے ہو،
آپ اہستاکشرت integers کے ساتھ بہت ہمیشہ کرنا چاہئے.
اس کی وجہ یہ ہے کہ آپ پر دستخط integers کے ساتھ کام کر رہے ہو،
اگر ایسا ہے تو آپ کو 2 پر دستخط integers ہیں اور آپ ان کے ساتھ شامل
اور انہوں نے بہت بڑا ختم، تو آپ کو ایک منفی نمبر کے ساتھ ختم.
تو اس عددی اتپرواہ کیا ہے.
>> اگر میں ارب 2 اور 1 ارب شامل ہیں، میں منفی 1 ارب کے ساتھ ختم.
اس طرح integers کمپیوٹر پر کام کرتے ہیں.
کا استعمال کرتے ہوئے کے ساتھ مسئلہ تو -
یہ ٹھیک ہے کے علاوہ اگر کم 2 بلین ہے اور 1 ارب ہے،
تو یہ منفی 1 ارب جا رہا ہے اور پھر ہم تقسیم کی جا رہے ہیں کہ 2 کی طرف سے
اور منفی 500 ملین کے ساتھ ختم.
تو یہ صرف ایک مسئلہ ہے اگر آپ کو ایک صف کے ذریعے تلاش ہو
چیزوں کی کروڑوں کی.
لیکن اگر کم + اتپرواہ پر ہوتا ہے، تو یہ ایک مسئلہ ہے.
، تو جیسے ہی ہم ان اہستاکشرت 2 ارب کے علاوہ 1 ارب 3 بلین ہے.
3 بلین 2 سے تقسیم 1.5 بلین ہے.
سب کچھ تو جیسے ہی وہ اہستاکشرت ہیں، بالکل صحیح ہے.
اور اس طرح یہ بھی ایک مسئلہ ہے جب آپ loops کے لئے آپ لکھ رہے ہیں،
اور اصل میں، یہ شاید یہ خود کار طریقے سے کرتا ہے.
اصل میں یہ تم پر چللاو گا.
اگر ایسا ہے تو یہ تعداد صرف ایک عدد صحیح میں بھی بڑا ہے لیکن یہ ایک اہستاکشرت عدد صحیح میں فٹ کریں گے،
تو یہ تم پر چللاو گا، یہی وجہ ہے کہ آپ کو معاملے میں واقعی کبھی نہیں چلانے کے.
تم نے دیکھا ہے کہ ایک انڈیکس کبھی منفی نہیں ہے کر سکتے ہیں،
اور اسی طرح جب آپ ایک صف پر iterating کر رہے ہیں،
آپ int اہستاکشرت میں تقریبا ہمیشہ ہی، کا کہنا ہے کہ لیکن تم سچ میں نہیں ہے کر سکتے ہیں.
چیزیں بہت زیادہ کے ساتھ کام کرنے جا رہے ہیں.
ٹھیک ہے. [وسوسہ] کیا وقت ہوا ہے؟
آخری چیز جو میں دکھانا چاہتا تھا - اور میں یہ واقعی جلدی کر دونگا.
آپ کو پتہ ہے کہ ہم کس طرح # تاکہ ہم 5 یا کچھ اور کے طور پر زیادہ سے زیادہ # وضاحت کر سکتے ہیں کا تعین کیا ہے؟
چلو MAX نہیں کرتے ہیں. # وضاحت 200 کے طور پر پابند ہے. یہی ہے جو ہم پہلے کیا ہے.
یہ مسلسل جاری ہے، جس میں صرف کاپی اور چسپاں کیا جا رہا ہے کی وضاحت کرتا ہے
ہم پابند لکھنے کے لئے جہاں کہیں بھی ہو.
>> تو ہم # کی وضاحت کے ساتھ اصل میں کر سکتے ہیں.
ہم افعال # وضاحت کر سکتے ہیں.
وہ سچ نہیں ہو کام کرتا ہے، لیکن ہم ان افعال میں فون کروں گا.
ایک مثال کے طور پر MAX (X، Y) جیسے کچھ ہو گی (: X X <Y Y) بیان کیا جاتا ہے. ٹھیک ہے.
تو آپ کو تہرا آپریٹر نحو کرنے کے لئے استعمال کیا جانا چاہئے،
لیکن X Y سے کم ہے؟ Y واپس، اور X واپس.
تو تم دیکھ کر آپ کو یہ ایک الگ تقریب کر سکتے ہیں کر سکتے ہیں،
اور تقریب طرح bool MAX 2 دلائل لیتا ہے، یہ واپس.
یہ سب سے زیادہ عام ہیں میں دیکھ رہا ہوں اس طرح کیا ہے. ہم نے ان میکرو کہتے ہیں.
یہ ایک میکرو ہے.
یہ صرف اس کے لئے نحو ہے.
آپ کو جو کچھ بھی تم چاہتے ہو میکرو لکھ سکتے ہیں.
آپ اکثر printfs اور سامان کو ٹھیک کرنے کے لئے میکرو دیکھیں.
تو printf کی ایک قسم ہے، C میں خصوصی constants طرح LINE کشید کشید کرتے ہیں،
2 انڈراسکورز LINE کشید،
اور وہاں بھی مجھے لگتا ہے کہ 2 FUNC ظاہر ہے. کہ یہ ہو سکتا ہے. کچھ ایسا ہی ہے.
وہ چیزیں تقریب کے نام کے ساتھ تبدیل کیا جائے گا
یا لائن ہے کہ تم پر ہیں کی تعداد.
اکثر، تم نے ٹھیک printfs ہیں کہ نیچے میں یہاں صرف اس وقت لکھ سکتے تھے لکھ
ڈیبگ اور لائن نمبر اور تقریب ہے کہ میں ہونے پرنٹ گا
کہ یہ کہ ڈبگ بیان کا سامنا کرنا پڑا.
اور آپ کو دوسری چیزوں کو بھی پرنٹ کر سکتے ہیں.
تو ایک چیز ہے جو آپ کے لئے باہر دیکھنا چاہئے اگر میں # DOUBLE_MAX کی وضاحت ہو
2 * Y اور 2 کی طرح کچھ کے طور پر * X.
تو کسی بھی وجہ سے، آپ کو بہت کچھ کرنا ہو گا.
تو یہ ایک میکرو ہے.
یہ اصل میں ٹوٹ گیا ہے.
میں DOUBLE_MAX (3، 6) جیسے کچھ کرنے کی طرف سے فون کرے گا.
تو کیا واپس جانا چاہئے؟
12 [طالب علم.
جی ہاں، 12، لوٹ آنا چاہیے اور 12 واپس.
3 x کے لیے تبدیل ہو جاتا ہے، 6 Y جگہ، ہو جاتا ہے اور ہم 2 * 6، جو 12 ہے واپس.
اب اس کے بارے میں کیا خیال ہے؟ کیا واپس جانا چاہئے؟
14 [طالب علم. >> مثالی طور پر، 14.
مسئلہ یہ ہے کہ ہیش کام کس طرح کی وضاحت کرتا ہے یاد ہے، یہ ایک لغوی کاپی اور پیسٹ
بہت ہر چیز کا، تو کیا اس کے طور پر تشریح پر جا رہا ہے
3 1 کے علاوہ 6، 1 2 اوقات کے علاوہ 6، 2، 3 بار سے کم ہے.
>> تو اس وجہ سے آپ کو قوسین میں تقریبا ہمیشہ ہی سب کچھ لپیٹ.
کسی بھی متغیر آپ تقریبا ہمیشہ قوسین میں لپیٹ دیں.
معاملات میں جہاں آپ کرنے کی ضرورت نہیں ہے، جیسا کہ میں جانتا ہوں کہ میں یہاں کرنے کی ضرورت نہیں ہے
کی وجہ سے کم ہے، بہت ہمیشہ کام پر جا رہا،
اگرچہ کہ وہ بھی درست نہیں ہو سکتا ہے.
اگر DOUBLE_MAX (1 == 2) کی طرح مضحکہ خیز چیز ہے،
تو اس 1 سے 3 کم سے تبدیل کرنے کے لئے جا رہا ہے برابر 2 برابر،
اور تو 3 1 سے کم کرنے کی جا رہی ہے، ہے کیا وہ برابر 2،
جو نہیں ہے جو ہم چاہتے ہیں.
تو اس کے لئے کسی بھی آپریٹر مقدم مسائل کو روکنے کے لئے،
ہمیشہ قوسین میں لپیٹ دیں.
ٹھیک ہے. اور یہ کہ یہ ہے، 5:30.
اگر آپ pset پر میں آپ کا کوئی سوال ہو تو ہمیں آگاہ کریں.
یہ مزہ آئے گا، اور ہیکر کے ایڈیشن بھی زیادہ حقیقت پسندانہ ہے
گزشتہ سال کے ہیکر ایڈیشن سے، تو ہم امید کرتے ہیں کہ تم میں سے ایک بہت کچھ کرنے کی کوشش کریں.
گزشتہ سال کی بہت بھاری تھا.
>> [CS50.TV]