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