1 00:00:00,000 --> 00:00:00,030 2 00:00:00,030 --> 00:00:00,460 >> DAVID مالان: حسنا. 3 00:00:00,460 --> 00:00:01,094 لقد عدنا. 4 00:00:01,094 --> 00:00:04,260 حتى في هذا القطاع على برمجة ما اعتقد اننا كنا نفعله هو مزيج من الأشياء. 5 00:00:04,260 --> 00:00:06,340 واحدة، لا قليلا شيء التدريب العملي على، 6 00:00:06,340 --> 00:00:08,690 وإن كان ذلك باستخدام أكثر لعوب environment-- البرمجة 7 00:00:08,690 --> 00:00:11,620 واحد هو أن بيانية لل بالضبط ذلك النوع من الأفكار 8 00:00:11,620 --> 00:00:14,220 كنا نتحدث عنها، ولكن أكثر من ذلك بقليل رسميا. 9 00:00:14,220 --> 00:00:18,200 اثنين، نلقي نظرة على بعض أكثر الطرق التقنية 10 00:00:18,200 --> 00:00:21,520 أن مبرمجا من شأنه أن يحل في الواقع مشاكل مثل مشكلة البحث 11 00:00:21,520 --> 00:00:24,530 أن ننظر في قبل و أيضا بشكل أساسي 12 00:00:24,530 --> 00:00:26,020 مشكلة مثيرة للاهتمام من الفرز. 13 00:00:26,020 --> 00:00:28,840 >> افترضنا فقط من الحصول على الذهاب أن تم فرز هذا الكتاب الهاتف، 14 00:00:28,840 --> 00:00:31,980 لكن هذا وحده هو في الواقع نوع من مشكلة صعبة مع العديد من الطرق المختلفة 15 00:00:31,980 --> 00:00:32,479 من أجل حلها. 16 00:00:32,479 --> 00:00:34,366 ولذا فإننا سوف تستخدم هذه كما فئة من المشاكل 17 00:00:34,366 --> 00:00:36,740 ممثل الأشياء التي يمكن حلها بشكل عام. 18 00:00:36,740 --> 00:00:38,980 ثم سنتحدث حول بشيء من التفصيل ما 19 00:00:38,980 --> 00:00:42,360 تسمى البيانات structures-- طرق مربي الحيوانات مثل القوائم المرتبطة 20 00:00:42,360 --> 00:00:46,290 والجداول التجزئة والأشجار التي سيكون مبرمجا في الواقع 21 00:00:46,290 --> 00:00:48,890 استخدام وعموما استخدام على لوحة بيضاء لرسم 22 00:00:48,890 --> 00:00:51,840 صورة ما هو أو هي تتصور لتنفيذ 23 00:00:51,840 --> 00:00:52,980 بعض قطعة من البرمجيات. 24 00:00:52,980 --> 00:00:55,130 >> لذلك دعونا نفعل التدريب العملي على جزء أول. 25 00:00:55,130 --> 00:01:00,090 حتى مجرد الحصول على يديك القذرة مع البيئة يسمى scratch.mit.edu. 26 00:01:00,090 --> 00:01:02,636 هذا هو الأداة التي نستخدمها في الدرجة الجامعية لدينا. 27 00:01:02,636 --> 00:01:04,510 على الرغم من انها مصممة لأعمار 12 سنة فما فوق، 28 00:01:04,510 --> 00:01:07,570 نستخدمها لتصل جزء من ذلك قليلا جدا 29 00:01:07,570 --> 00:01:10,020 حيث أنها لطيفة وممتعة طريقة رسومية من التعلم 30 00:01:10,020 --> 00:01:12,160 شيئا قليلا عن البرمجة. 31 00:01:12,160 --> 00:01:17,600 لذا توجه إلى هذا العنوان، حيث كنت يجب أن نرى صفحة تماما مثل هذا، 32 00:01:17,600 --> 00:01:23,330 والمضي قدما وانقر تاريخ خدش في الحق الأعلى 33 00:01:23,330 --> 00:01:28,300 واختيار اسم مستخدم و كلمة المرور و في نهاية المطاف الحصول على نفسك 34 00:01:28,300 --> 00:01:29,970 وscratch.mit.edu سبب-. 35 00:01:29,970 --> 00:01:32,165 36 00:01:32,165 --> 00:01:34,665 اعتقدت أن استخدام هذا باعتباره الفرصة الأولى لإظهار هذا. 37 00:01:34,665 --> 00:01:39,120 وجاء السؤال حتى خلال العطلة حول رمز ما يبدو في الواقع مثل. 38 00:01:39,120 --> 00:01:41,315 وكنا نتحدث خلال فترة الاستراحة عن C، 39 00:01:41,315 --> 00:01:45,060 في particular-- ولا سيما في أقل مستوى في اللغة القديمة. 40 00:01:45,060 --> 00:01:47,750 وأنا فقط لم سريعة بحث Google للعثور على رمز C 41 00:01:47,750 --> 00:01:51,574 للبحث ثنائي، الخوارزمية التي نحن تستخدم لبحث هذا الكتاب الهاتف في وقت سابق. 42 00:01:51,574 --> 00:01:54,240 هذا مثال معين، بالطبع، لا يتم البحث في دليل الهاتف. 43 00:01:54,240 --> 00:01:57,840 هو فقط بالبحث في مجمله مجموعة من الأرقام في ذاكرة الكمبيوتر. 44 00:01:57,840 --> 00:02:01,000 ولكن إذا كنت ترغب في مجرد الحصول على البصرية شعور ما في البرمجة الفعلية 45 00:02:01,000 --> 00:02:05,370 لغة تبدو، يبدو شيئا قليلا من هذا القبيل. 46 00:02:05,370 --> 00:02:09,759 لذلك فمن حوالي 20 زائد، 30 أو حتى خطوط للقانون، 47 00:02:09,759 --> 00:02:12,640 ولكن محادثة نحن وجود أكثر من العطلة 48 00:02:12,640 --> 00:02:16,000 وحول كيفية هذا الواقع يحصل تحولت إلى أصفار ومنها 49 00:02:16,000 --> 00:02:19,200 وإذا كنت لا يمكن أن تعود أن معالجة والذهاب من الآحاد والأصفار و 50 00:02:19,200 --> 00:02:20,210 نسخ إلى رمز. 51 00:02:20,210 --> 00:02:22,620 >> وللأسف، فإن عملية غير التحويلية ذلك 52 00:02:22,620 --> 00:02:24,890 أنه من الأسهل كثيرا من القيام به. 53 00:02:24,890 --> 00:02:29,400 ذهبت إلى الأمام وتحولت فعلا هذا البرنامج، ثنائي البحث، 54 00:02:29,400 --> 00:02:32,700 في الآحاد والأصفار وعن طريق ل دعا برنامج ومترجم بأنني 55 00:02:32,700 --> 00:02:34,400 يحدث لدينا هنا حق على بلدي ماك. 56 00:02:34,400 --> 00:02:37,850 وإذا نظرت إلى الشاشة هنا، مع التركيز بشكل خاص 57 00:02:37,850 --> 00:02:43,520 على هذه ستة أعمدة المتوسطة فقط، سترى الوحيدة الآحاد والأصفار و. 58 00:02:43,520 --> 00:02:48,290 وتلك هي الأصفار وتلك التي يؤلف بالضبط هذا البرنامج البحث. 59 00:02:48,290 --> 00:02:53,720 >> وهكذا كل قطعة من خمسة أجزاء، كل بايت من الآحاد والأصفار وهنا، 60 00:02:53,720 --> 00:02:57,310 تمثل بعض التعليمات عادة داخل جهاز الكمبيوتر. 61 00:02:57,310 --> 00:03:00,730 وفي الواقع، إذا كنت قد سمعت تسويق شعار "إنتل في الداخل" - التي، 62 00:03:00,730 --> 00:03:04,610 وبطبيعة الحال، مجرد وسيلة لديك وحدة المعالجة المركزية إنتل أو الدماغ داخل الكمبيوتر. 63 00:03:04,610 --> 00:03:08,000 وماذا يعني أن تكون وحدة المعالجة المركزية أن يكون لديك مجموعة التعليمات، 64 00:03:08,000 --> 00:03:08,840 إذا جاز التعبير. 65 00:03:08,840 --> 00:03:11,620 >> كل وحدة المعالجة المركزية في العالم، والعديد من منهم أدلى بها إنتل في هذه الأيام، 66 00:03:11,620 --> 00:03:13,690 يفهم محدود عدد من التعليمات. 67 00:03:13,690 --> 00:03:18,690 وهذه التعليمات هي مستوى منخفض للغاية كما تضيف هذين الرقمين معا، 68 00:03:18,690 --> 00:03:22,560 تتضاعف هذه الأرقام معا، نقل هذه القطعة من البيانات من هنا 69 00:03:22,560 --> 00:03:27,340 إلى هنا في الذاكرة، حفظ هذا معلومات من هنا إلى هنا في الذاكرة، 70 00:03:27,340 --> 00:03:32,200 وهكذا forth-- ذلك جدا، جدا على مستوى منخفض، تفاصيل الإلكترونية تقريبا. 71 00:03:32,200 --> 00:03:34,780 ولكن مع تلك الرياضي العمليات إلى جانب 72 00:03:34,780 --> 00:03:37,410 مع ما ناقشناه في وقت سابق، تمثيل البيانات 73 00:03:37,410 --> 00:03:40,450 كما الأصفار ومنها، يمكن يمكنك بناء كل شيء 74 00:03:40,450 --> 00:03:44,180 أن الكمبيوتر يمكن القيام به اليوم، سواء انها النصية، الرسوم البيانية والموسيقية، 75 00:03:44,180 --> 00:03:45,580 او غير ذلك. 76 00:03:45,580 --> 00:03:49,450 >> لذلك هذا هو السهل جدا الحصول على خسر في الأعشاب الضارة من على وجه السرعة. 77 00:03:49,450 --> 00:03:52,150 وهناك الكثير من التحديات النحوية 78 00:03:52,150 --> 00:03:56,630 حيث إذا قمت بإجراء أبسط، أغبى من الأخطاء المطبعية أيا من البرنامج 79 00:03:56,630 --> 00:03:57,860 ستعمل على الإطلاق. 80 00:03:57,860 --> 00:04:00,366 وذلك بدلا من استخدام لغة مثل C هذا الصباح، 81 00:04:00,366 --> 00:04:02,240 اعتقدت انه سيكون أكثر متعة القيام به في الواقع 82 00:04:02,240 --> 00:04:04,840 شيء أكثر البصرية، التي في حين صممت للأطفال 83 00:04:04,840 --> 00:04:08,079 هو في الواقع مظهر الكمال من البرمجة الفعلية 84 00:04:08,079 --> 00:04:10,370 language-- يحدث لمجرد أن استخدام الصور بدلا من النص 85 00:04:10,370 --> 00:04:11,710 لتمثيل تلك الأفكار. 86 00:04:11,710 --> 00:04:15,470 >> ذلك مرة واحدة لديك في الواقع الحساب على scratch.mit.edu، 87 00:04:15,470 --> 00:04:21,070 انقر فوق الزر إنشاء في أعلى يسار الموقع. 88 00:04:21,070 --> 00:04:24,620 ويجب أن تشاهد بيئة مثل واحد أنا على وشك أن نرى على الشاشة 89 00:04:24,620 --> 00:04:26,310 هنا. 90 00:04:26,310 --> 00:04:29,350 ونحن سوف ينفق قليلا قليلا من الوقت يلعب هنا. 91 00:04:29,350 --> 00:04:34,080 دعونا نرى ما اذا كنا لا يمكن أن تحل جميع بعض المشاكل معا على النحو التالي. 92 00:04:34,080 --> 00:04:39,420 >> وذلك ما سترى في هذا environment-- وفعلا مجرد السماح 93 00:04:39,420 --> 00:04:40,050 لي وقفة. 94 00:04:40,050 --> 00:04:42,680 وأي شخص ليس هنا؟ 95 00:04:42,680 --> 00:04:45,070 ليس هنا؟ 96 00:04:45,070 --> 00:04:45,800 حسنا. 97 00:04:45,800 --> 00:04:49,030 لذلك اسمحوا لي أن أشير إلى عدد قليل خصائص هذه البيئة. 98 00:04:49,030 --> 00:04:55,024 >> حتى في أعلى يسار الشاشة، ل لدينا مرحلة الصفر، وإذا جاز التعبير. 99 00:04:55,024 --> 00:04:57,440 الصفر ليس فقط اسم هذه لغة البرمجة. 100 00:04:57,440 --> 00:05:00,356 كما انها اسم القط الذي ترى افتراضيا هناك في البرتقال. 101 00:05:00,356 --> 00:05:02,160 وهو على خشبة المسرح، لذلك مثل الكثير وصفت 102 00:05:02,160 --> 00:05:05,770 سلحفاة في وقت سابق بأنه في مستطيلة البيئة وحة بيضاء. 103 00:05:05,770 --> 00:05:09,800 يقتصر العالم هذا القط تماما لهذا المستطيل حتى أعلى هناك. 104 00:05:09,800 --> 00:05:12,210 >> وفي الوقت نفسه، على اليمين الجانب هنا، انها 105 00:05:12,210 --> 00:05:15,610 مجرد منطقة مخطوطات، وهو لائحة بيضاء اذا صح التعبير. 106 00:05:15,610 --> 00:05:18,590 هذا هو المكان الذي كنت أريد أن أكتب برامجنا في مجرد لحظة. 107 00:05:18,590 --> 00:05:22,935 ولبنات البناء على أننا يجب استخدامها لكتابة هذا program-- اللغز 108 00:05:22,935 --> 00:05:25,310 قطعة، إذا كنت will-- هي تلك هنا في الوسط، 109 00:05:25,310 --> 00:05:27,500 وانهم تصنيفها من وظائف. 110 00:05:27,500 --> 00:05:31,000 لذلك، على سبيل المثال، انا ذاهب الى المضي قدما وتظهر واحدة على الأقل من هذه. 111 00:05:31,000 --> 00:05:33,690 انا ذاهب الى المضي قدما وانقر فئة تحكم حتى أعلى. 112 00:05:33,690 --> 00:05:35,720 >> لذا فان هذه الفئات حتى أعلى. 113 00:05:35,720 --> 00:05:39,410 أنا ذاهب إلى انقر فوق الفئة التحكم. 114 00:05:39,410 --> 00:05:44,020 بدلا من ذلك، انا ذاهب فوق الأحداث الفئة، واحد حتى أول قمة. 115 00:05:44,020 --> 00:05:47,790 وإذا كنت ترغب في متابعة على طول حتى كما نفعل هذا، وكنت موضع ترحيب للغاية ل. 116 00:05:47,790 --> 00:05:52,180 أنا ذاهب إلى انقر واسحب هذا أول واحد، "عندما ينقر العلم الأخضر". 117 00:05:52,180 --> 00:05:58,410 ثم انا ذاهب لإسقاطه فقط تقريبا في الجزء العلوي من بلدي القوائم فارغة. 118 00:05:58,410 --> 00:06:01,450 >> وما هو جميل عن سكراتش غير أن هذا اللغز قطعة، عندما 119 00:06:01,450 --> 00:06:04,560 متشابكة مع اللغز الآخر قطعة، سيفعل حرفيا 120 00:06:04,560 --> 00:06:06,460 ما تقول تلك القطع لغز للقيام به. 121 00:06:06,460 --> 00:06:09,710 لذلك، على سبيل المثال، خدش هو الصحيح الآن في منتصف عالمه. 122 00:06:09,710 --> 00:06:14,660 انا ذاهب الى المضي قدما واختيار الآن، دعنا نقول، فئة الحركة، 123 00:06:14,660 --> 00:06:18,000 إذا كنت ترغب في القيام same-- فئة الحركة. 124 00:06:18,000 --> 00:06:20,430 وتلاحظ الآن لدي ككل مجموعة من قطع اللغز هنا 125 00:06:20,430 --> 00:06:23,370 هذا، مرة أخرى، من نوع يفعلون ما يقولون. 126 00:06:23,370 --> 00:06:28,110 وانا ذاهب الى المضي قدما وسحب و إسقاط كتلة حركة حق أكثر من هنا. 127 00:06:28,110 --> 00:06:31,860 >> وتلاحظ أن بمجرد الحصول على على مقربة من الجزء السفلي من "العلم الأخضر 128 00:06:31,860 --> 00:06:34,580 النقر "زر، لاحظ كيفية ظهور خط أبيض، 129 00:06:34,580 --> 00:06:36,950 كما لو انها تقريبا المغناطيسي، انها تريد الذهاب الى هناك. 130 00:06:36,950 --> 00:06:43,070 مجرد ترك، وسوف المفاجئة معا والأشكال وستكون مباراة. 131 00:06:43,070 --> 00:06:46,620 والآن يمكنك ربما تقريبا تخمين أين نحن ذاهبون مع هذا. 132 00:06:46,620 --> 00:06:51,570 >> إذا نظرتم الى مرحلة الصفر أكثر من هنا وننظر إلى الجزء العلوي منه، 133 00:06:51,570 --> 00:06:55,142 سترى الضوء الأحمر، و وقف علامة، والعلم الأخضر. 134 00:06:55,142 --> 00:06:57,100 وانا ذاهب الى المضي قدما ومشاهدة screen-- بلدي 135 00:06:57,100 --> 00:06:58,460 لمجرد لحظة، إذا كنت تستطيع. 136 00:06:58,460 --> 00:07:01,960 انا ذاهب الى فوق العلم الأخضر في الوقت الراهن، 137 00:07:01,960 --> 00:07:07,850 وانتقل على ما يبدو 10 خطوات أو 10 بكسل، 10 نقطة، على الشاشة. 138 00:07:07,850 --> 00:07:13,390 >> وهكذا لا أن مثيرة، ولكن اسمحوا لي أن أقترح 139 00:07:13,390 --> 00:07:17,440 دون أن يعلم هذا، فقط باستخدام تلقاء اسمحوا intuition-- الخاصة بك 140 00:07:17,440 --> 00:07:22,560 لي أن أقترح أن لك معرفة كيفية جعل خدش المشي الحق قبالة المرحلة. 141 00:07:22,560 --> 00:07:28,700 وعليه إفساح المجال للجانب الأيمن من الشاشة، على طول الطريق إلى اليمين. 142 00:07:28,700 --> 00:07:32,200 واسمحوا لي أن أقدم لكم لحظة أو نحو ذلك ليتصارع مع ذلك. 143 00:07:32,200 --> 00:07:37,681 قد ترغب في إلقاء نظرة في فئات أخرى من لبنات. 144 00:07:37,681 --> 00:07:38,180 حسنا. 145 00:07:38,180 --> 00:07:41,290 وذلك فقط من أجل التذكير، عندما يكون لدينا النقر على العلم الأخضر هنا 146 00:07:41,290 --> 00:07:44,850 ونقل 10 خطوات هي تعليمات الوحيد، في كل مرة أنا 147 00:07:44,850 --> 00:07:46,720 انقر العلم الأخضر، ما الذي يحدث؟ 148 00:07:46,720 --> 00:07:50,070 حسنا، هذا هو تشغيل برنامجي. 149 00:07:50,070 --> 00:07:52,450 حتى أتمكن من القيام بذلك ربما 10 مرات يدويا، 150 00:07:52,450 --> 00:07:55,130 ولكن هذا يشعر قليلا الشيء hackish، إذا جاز التعبير، 151 00:07:55,130 --> 00:07:57,480 حيث أنا لست حقا حل هذه المشكلة. 152 00:07:57,480 --> 00:08:00,530 أنا فقط أحاول مرة أخرى و مرة أخرى، ومرة ​​أخرى ومرة ​​أخرى 153 00:08:00,530 --> 00:08:03,180 حتى أنا من النوع عن طريق الخطأ تحقيق التوجيه 154 00:08:03,180 --> 00:08:05,560 التي أخذت على عاتقي أن يحقق في وقت سابق. 155 00:08:05,560 --> 00:08:08,200 >> ولكننا نعرف من وجهة نظرنا شبة الكود في وقت سابق أن هناك 156 00:08:08,200 --> 00:08:11,870 هذه الفكرة في برمجة حلقات، تفعل شيئا مرارا وتكرارا. 157 00:08:11,870 --> 00:08:14,888 وهكذا رأيت أن حفنة منكم وصلت لقطعة ما اللغز؟ 158 00:08:14,888 --> 00:08:17,870 159 00:08:17,870 --> 00:08:18,730 كرر حتى. 160 00:08:18,730 --> 00:08:21,400 حتى أننا يمكن أن نفعل شيئا كما كرر حتى. 161 00:08:21,400 --> 00:08:23,760 وماذا كنت أكرر حتى بالضبط؟ 162 00:08:23,760 --> 00:08:27,720 163 00:08:27,720 --> 00:08:28,540 >> حسنا. 164 00:08:28,540 --> 00:08:31,974 واسمحوا لي ان اذهب مع احد وهذا إلى حد ما أكثر بساطة لمجرد لحظة. 165 00:08:31,974 --> 00:08:33,140 اسمحوا لي أن نمضي قدما ونفعل هذا. 166 00:08:33,140 --> 00:08:35,559 لاحظ أنه، كما قد تكون لديكم اكتشف تحت السيطرة، 167 00:08:35,559 --> 00:08:38,409 هناك هذا تكرار كتلة، التي لا يبدو انها بهذا الحجم. 168 00:08:38,409 --> 00:08:41,039 هناك غرفة ليس كثيرا في بين هذين خطوط صفراء. 169 00:08:41,039 --> 00:08:43,539 ولكن بما أن بعض من قد يكون لديك لاحظت، إذا قمت بسحب وإسقاط، 170 00:08:43,539 --> 00:08:45,150 لاحظ كيف أنها تنمو لتعبئة الشكل. 171 00:08:45,150 --> 00:08:46,274 >> ويمكنك حتى الالزام أكثر. 172 00:08:46,274 --> 00:08:48,670 انها سوف تبقي فقط المتنامية اذا قمت بسحب وتحوم فوقها. 173 00:08:48,670 --> 00:08:51,110 وأنا لا أعرف ما هو أفضل هنا، لذلك اسمحوا 174 00:08:51,110 --> 00:08:54,760 لي على الأقل تكرار خمس مرات، ل مثلا، ثم انتقل إلى مرحلة 175 00:08:54,760 --> 00:08:56,720 وانقر على العلم الأخضر. 176 00:08:56,720 --> 00:08:59,110 وتلاحظ الآن أنه ليس هناك تماما. 177 00:08:59,110 --> 00:09:02,400 >> الآن بعضكم المقترحة، كما فيكتوريا فقط لم، كرر 10 مرات. 178 00:09:02,400 --> 00:09:05,140 وأن يفعل عموما الحصول عليه على طول الطريق، 179 00:09:05,140 --> 00:09:10,510 ولكن لن يكون هناك أكثر قوة الطريق من كشف تعسفية خارج 180 00:09:10,510 --> 00:09:12,640 عدد من الاجراءات لدفع؟ 181 00:09:12,640 --> 00:09:17,680 ما قد يكون كتلة أفضل من تكرار 10 مرات تكون؟ 182 00:09:17,680 --> 00:09:20,380 >> نعم، فلماذا لا تفعل شيئا إلى الأبد؟ 183 00:09:20,380 --> 00:09:24,390 والآن اسمحوا لي أن أنتقل هذا اللغز قطعة داخل هناك، والتخلص من هذه واحدة. 184 00:09:24,390 --> 00:09:28,300 لاحظ الآن لا يهم أين خدش يبدأ، بل يذهب إلى الحافة. 185 00:09:28,300 --> 00:09:30,700 ولله الحمد معهد ماساتشوستس للتكنولوجيا، الذي يجعل من خدش، فقط 186 00:09:30,700 --> 00:09:33,190 يتأكد أنه أبدا يختفي تماما. 187 00:09:33,190 --> 00:09:35,360 يمكنك دائما انتزاع ذيله. 188 00:09:35,360 --> 00:09:37,680 >> وفقط بشكل حدسي، لماذا هو الحفاظ على التحرك؟ 189 00:09:37,680 --> 00:09:38,892 ما الذي يجري هنا؟ 190 00:09:38,892 --> 00:09:41,440 191 00:09:41,440 --> 00:09:43,824 ويبدو أنه قد توقف، ولكن ثم إذا أنا التقاط وسحب 192 00:09:43,824 --> 00:09:45,240 وقال انه يحتفظ الرغبة في الذهاب إلى هناك. 193 00:09:45,240 --> 00:09:46,123 لماذا هذا؟ 194 00:09:46,123 --> 00:09:51,610 195 00:09:51,610 --> 00:09:54,360 حقا، جهاز كمبيوتر هو حرفيا تنوي القيام به ما كنت أقول أن تفعله. 196 00:09:54,360 --> 00:09:58,380 حتى لو قلت في وقت سابق قيام الشيء التالي إلى الأبد، نقل 10 خطوات، 197 00:09:58,380 --> 00:10:01,860 انها سوف تستمر وسوف حتى أنا ضربت علامة التوقف الحمراء 198 00:10:01,860 --> 00:10:04,620 ووقف البرنامج تماما. 199 00:10:04,620 --> 00:10:06,610 >> لذلك حتى لو كنت لا تفعل هذا، كيف يمكن لي 200 00:10:06,610 --> 00:10:09,510 جعل هذه الخطوة خدش أسرع عبر الشاشة؟ 201 00:10:09,510 --> 00:10:12,060 202 00:10:12,060 --> 00:10:13,280 المزيد من الخطوات، أليس كذلك؟ 203 00:10:13,280 --> 00:10:15,710 وذلك بدلا من القيام 10 في وقت واحد، لماذا لا نفعل نحن 204 00:10:15,710 --> 00:10:20,100 المضي قدما وتغييره ل-- ماذا كنت propose-- 50؟ 205 00:10:20,100 --> 00:10:24,410 حتى الآن أنا ذاهب إلى انقر الأخضر العلم، والواقع، وقال انه يذهب بسرعة كبيرة. 206 00:10:24,410 --> 00:10:27,180 >> وهذا، بطبيعة الحال، هو فقط مظهر من مظاهر حيوية. 207 00:10:27,180 --> 00:10:28,060 ما هي الرسوم المتحركة؟ 208 00:10:28,060 --> 00:10:33,090 انها مجرد يظهر لك على الإنسان مجموعة كاملة من الصور الثابتة حقا، 209 00:10:33,090 --> 00:10:34,160 حقا، حقا بسرعة. 210 00:10:34,160 --> 00:10:36,500 وهكذا إذا نحن فقط نقول له بالتحرك المزيد من الخطوات، 211 00:10:36,500 --> 00:10:39,750 نحن مجرد وجود التأثير سيكون ل التغيير حيث انه على الشاشة 212 00:10:39,750 --> 00:10:42,900 كل وحدة بشكل أسرع في الوقت. 213 00:10:42,900 --> 00:10:46,454 >> الآن التحدي المقبل الذي اقترحه وكان أن يكون له ترتد قبالة الحافة. 214 00:10:46,454 --> 00:10:49,120 ودون أن يعرفوا ما لغز قطع exist-- لأنه على ما يرام 215 00:10:49,120 --> 00:10:53,030 إذا كنت لا تحصل على مرحلة من مراحل challenge-- ما 216 00:10:53,030 --> 00:10:54,280 هل تريد أن تفعل بشكل حدسي؟ 217 00:10:54,280 --> 00:10:58,030 كيف لنا أن يكون له ارتداد و إيابا، بين اليسار واليمين؟ 218 00:10:58,030 --> 00:11:02,630 219 00:11:02,630 --> 00:11:03,810 >> بلى. 220 00:11:03,810 --> 00:11:05,680 لذلك نحن بحاجة إلى نوع من الشرط، ونحن 221 00:11:05,680 --> 00:11:09,710 يبدو أن لديها الشرطية، وذلك ل الكلام، وضمن فئة التحكم. 222 00:11:09,710 --> 00:11:14,110 أي من هذه الكتل هل نحن ربما تريد؟ 223 00:11:14,110 --> 00:11:15,200 نعم، ربما "إذا، بعد ذلك." 224 00:11:15,200 --> 00:11:18,780 لذلك نلاحظ أن من بين كتل صفراء لدينا هنا، هناك هذا "لو" 225 00:11:18,780 --> 00:11:23,920 أو هذا "إذا، آخر" الكتلة التي سوف تسمح لنا لاتخاذ قرار للقيام بذلك 226 00:11:23,920 --> 00:11:25,000 أو أن نفعل ذلك. 227 00:11:25,000 --> 00:11:27,380 ويمكنك حتى عش لهم أن تفعل أشياء متعددة. 228 00:11:27,380 --> 00:11:34,910 أو إذا كنت لم ذهبت هنا بعد، المضي قدما إلى فئة الاستشعار 229 00:11:34,910 --> 00:11:39,612 and-- دعونا نرى ما اذا كان هنا. 230 00:11:39,612 --> 00:11:43,050 231 00:11:43,050 --> 00:11:52,050 >> وماذا في ذلك كتلة قد يكون من المفيد هنا للكشف عن ما اذا كان بعيدا عن المسرح؟ 232 00:11:52,050 --> 00:11:56,740 نعم، لاحظ أن بعض هذه الكتل يمكن parametrized، إذا جاز التعبير. 233 00:11:56,740 --> 00:12:00,706 ويمكن الفرز حسب الطلب، وليس على عكس HTML أمس مع الصفات، 234 00:12:00,706 --> 00:12:03,330 حيث هذه الصفات نوع من تخصيص سلوك علامة. 235 00:12:03,330 --> 00:12:08,880 وبالمثل هنا، يمكنني أن الاستيلاء على هذه لمس كتلة والتغيير ونطرح هذا السؤال: 236 00:12:08,880 --> 00:12:11,500 هل لمس الماوس مؤشر مثل مؤشر 237 00:12:11,500 --> 00:12:13,250 أم أنك لمس حافة؟ 238 00:12:13,250 --> 00:12:15,210 >> لذلك اسمحوا لي أن أذهب في وقيام بذلك. 239 00:12:15,210 --> 00:12:18,130 انا ذاهب للتصغير لحظة. 240 00:12:18,130 --> 00:12:21,320 اسمحوا لي أن الاستيلاء على هذه قطعة اللغز هنا، هذا اللغز قطعة هذا، 241 00:12:21,320 --> 00:12:24,570 وانا ذاهب الى الخليط لهم حتى لمجرد لحظة. 242 00:12:24,570 --> 00:12:27,620 انا ذاهب الى نقل هذا، تغيير هذا إلى حافة مؤثرة، 243 00:12:27,620 --> 00:12:38,590 وانا ذاهب الى اقتراح قيام بذلك. 244 00:12:38,590 --> 00:12:40,490 حتى هنا بعض المكونات. 245 00:12:40,490 --> 00:12:42,570 أعتقد أنني قد حصلت على كل ما تريد. 246 00:12:42,570 --> 00:12:47,710 >> شخص ما من شأنه أن تقترح كيف ويمكن ربط هذه ربما أعلى إلى أسفل 247 00:12:47,710 --> 00:12:52,020 من أجل حل مشكلة وجود الصفر الخطوة اليمين إلى اليسار إلى اليمين ل 248 00:12:52,020 --> 00:12:57,020 من اليسار إلى اليمين إلى اليسار، كل الوقت فقط كذاب قبالة الجدار؟ 249 00:12:57,020 --> 00:12:58,050 ماذا تريد أن تفعل؟ 250 00:12:58,050 --> 00:13:01,097 التي كتلة يجب أن الاتصال "العلم عندما الأخضر النقر أولا"؟ 251 00:13:01,097 --> 00:13:04,060 252 00:13:04,060 --> 00:13:06,200 >> حسنا، دعونا نبدأ مع "الى الابد". 253 00:13:06,200 --> 00:13:07,170 ما يدور داخل المقبل؟ 254 00:13:07,170 --> 00:13:10,290 شخص اخر. 255 00:13:10,290 --> 00:13:11,850 موافق، والانتقال الخطوات. 256 00:13:11,850 --> 00:13:12,350 حسنا. 257 00:13:12,350 --> 00:13:14,470 ثم ماذا؟ 258 00:13:14,470 --> 00:13:15,120 حتى ذلك الحين وإذا. 259 00:13:15,120 --> 00:13:17,720 ولاحظ، على الرغم من أنها تبدو تقع معا بإحكام، 260 00:13:17,720 --> 00:13:19,500 انها سوف تنمو فقط لملء الفراغ. 261 00:13:19,500 --> 00:13:21,500 وسوف تقفز فقط في المكان الذي أريد ذلك. 262 00:13:21,500 --> 00:13:25,920 >> وماذا أضع بين وإذا وبعد ذلك؟ 263 00:13:25,920 --> 00:13:27,180 ربما "إذا لمس الحافة." 264 00:13:27,180 --> 00:13:31,800 والإشعار، مرة أخرى، انها كبيرة جدا لذلك، ولكنها سوف تنمو لملء الفراغ. 265 00:13:31,800 --> 00:13:35,002 ثم قم بتشغيل 15 درجة؟ 266 00:13:35,002 --> 00:13:35,710 كم درجه؟ 267 00:13:35,710 --> 00:13:38,800 268 00:13:38,800 --> 00:13:41,196 نعم، لذلك 180 سوف تدور لي على طول الطريق حول. 269 00:13:41,196 --> 00:13:42,570 لذلك دعونا نرى إذا حصلت على هذا الحق. 270 00:13:42,570 --> 00:13:43,930 اسمحوا لي أن التصغير. 271 00:13:43,930 --> 00:13:45,130 >> اسمحوا لي أن سحب خدش تصل. 272 00:13:45,130 --> 00:13:50,030 حتى انه قليلا مشوهة الآن، ولكن هذا شيء طيب. 273 00:13:50,030 --> 00:13:52,231 كيف يمكنني إعادة عليه بسهولة؟ 274 00:13:52,231 --> 00:13:59,879 275 00:13:59,879 --> 00:14:01,045 أنا ذاهب للغش قليلا. 276 00:14:01,045 --> 00:14:04,074 277 00:14:04,074 --> 00:14:05,990 لذلك أنا آخر إضافة كتلة، لمجرد أن يكون واضحا. 278 00:14:05,990 --> 00:14:08,424 أريده أن نشير 90 درجة إلى اليمين بشكل افتراضي، 279 00:14:08,424 --> 00:14:10,840 لذلك أنا فقط أريد أن أقول له للقيام بذلك برمجيا. 280 00:14:10,840 --> 00:14:11,632 وها قد بدأنا. 281 00:14:11,632 --> 00:14:14,740 282 00:14:14,740 --> 00:14:15,740 يبدو أننا قد فعلت ذلك. 283 00:14:15,740 --> 00:14:19,980 انها غريبة بعض الشيء، ل انه المشي رأسا على عقب. 284 00:14:19,980 --> 00:14:21,250 دعونا نسمي ذلك الخلل. 285 00:14:21,250 --> 00:14:22,120 وهذا خطأ. 286 00:14:22,120 --> 00:14:27,320 والخطأ هو خطأ في البرنامج، ل خطأ منطقي أنني، والإنسان، جعلت. 287 00:14:27,320 --> 00:14:28,985 لماذا يذهب رأسا على عقب؟ 288 00:14:28,985 --> 00:14:33,560 289 00:14:33,560 --> 00:14:35,250 لم MIT المسمار أو فعلت؟ 290 00:14:35,250 --> 00:14:38,840 291 00:14:38,840 --> 00:14:42,550 >> نعم، أعني، انها ليست معهد ماساتشوستس للتكنولوجيا خطا. أعطوني قطعة اللغز 292 00:14:42,550 --> 00:14:44,970 تقول تحويل بعض عدد من الدرجات. 293 00:14:44,970 --> 00:14:47,672 وبناء على اقتراح فيكتوريا، أنا تحول 180 درجة، 294 00:14:47,672 --> 00:14:48,880 وهو الحدس الصحيح. 295 00:14:48,880 --> 00:14:53,700 ولكن تحول 180 درجة حرفيا يعني تحول 180 درجة، 296 00:14:53,700 --> 00:14:55,860 وهذا ليس حقا ما أريد، وعلى ما يبدو. 297 00:14:55,860 --> 00:14:58,026 لأنه على الأقل انه في هذا العالم ثنائي الأبعاد، 298 00:14:58,026 --> 00:15:00,740 هكذا تحول يحدث في الواقع على الوجه له رأسا على عقب. 299 00:15:00,740 --> 00:15:04,030 >> أنا ربما تريد استخدام ما كتلة بدلا من ذلك، بناء على ما تراه هنا؟ 300 00:15:04,030 --> 00:15:11,890 301 00:15:11,890 --> 00:15:14,790 كيف يمكن أن نصلح هذا؟ 302 00:15:14,790 --> 00:15:18,380 نعم، لذلك يمكن أن نشير في الاتجاه المعاكس. 303 00:15:18,380 --> 00:15:22,300 والواقع حتى هذا لن يكون كافيا، 304 00:15:22,300 --> 00:15:26,410 لأننا لا نستطيع رمز القرص الثابت فقط لافتا اليسار أو اليمين. 305 00:15:26,410 --> 00:15:27,920 >> أنت تعرف ماذا يمكن أن نفعل؟ 306 00:15:27,920 --> 00:15:30,160 يبدو أن لدينا الراحة كتلة هنا. 307 00:15:30,160 --> 00:15:32,987 إذا كنت في التكبير، انظر شيء نحب هنا؟ 308 00:15:32,987 --> 00:15:36,120 309 00:15:36,120 --> 00:15:40,020 بحيث يبدو مثل معهد ماساتشوستس للتكنولوجيا لديه التجريد بنيت هنا. 310 00:15:40,020 --> 00:15:45,440 يبدو هذه الكتلة ليكون معادلا التي الكتل الأخرى، بصيغة الجمع؟ 311 00:15:45,440 --> 00:15:49,510 >> ويبدو أن هذا كتلة واحدة ليكون معادلا لهذا الثلاثي كاملة من كتل 312 00:15:49,510 --> 00:15:50,880 ان لدينا هنا. 313 00:15:50,880 --> 00:15:54,670 لذلك تبين لي يمكن تبسيط بلدي البرنامج من خلال التخلص من كل ذلك 314 00:15:54,670 --> 00:15:58,270 وضعت للتو هذا هنا. 315 00:15:58,270 --> 00:16:01,620 والآن انه لا يزال قليلا عربات التي تجرها الدواب، وهذا شيء طيب في الوقت الراهن. 316 00:16:01,620 --> 00:16:03,370 سنترك أن يكون. 317 00:16:03,370 --> 00:16:06,000 ولكن برنامجي هو حتى أبسط، وهذا، أيضا، 318 00:16:06,000 --> 00:16:09,060 سيكون ممثل من هدف في programming-- 319 00:16:09,060 --> 00:16:13,430 هو جعل مثالي التعليمات البرمجية كما بسيطة، كما ضغط ممكن، 320 00:16:13,430 --> 00:16:15,650 في حين لا تزال كما قراءة وقت ممكن. 321 00:16:15,650 --> 00:16:20,310 كنت لا تريد أن تجعل من مقتضبة جدا أنه من الصعب أن نفهم. 322 00:16:20,310 --> 00:16:22,826 >> ولكن لاحظ لقد استبدلت ثلاث كتل واحد، 323 00:16:22,826 --> 00:16:24,200 وهذا القول شيء جيد. 324 00:16:24,200 --> 00:16:27,280 لقد المستخرجة بعيدا عن فكرة للتحقق ما إذا كنت 325 00:16:27,280 --> 00:16:29,120 على حافة مع كتلة واحدة فقط. 326 00:16:29,120 --> 00:16:31,520 ونحن الآن يمكن أن يكون متعة مع هذا، في الواقع. 327 00:16:31,520 --> 00:16:35,790 هذا لا يضيف كثيرا القيمة الفكرية ولكن قيمة لعوب. 328 00:16:35,790 --> 00:16:39,730 انا ذاهب الى المضي قدما والاستيلاء على هذا الصوت هنا. 329 00:16:39,730 --> 00:16:42,900 330 00:16:42,900 --> 00:16:46,420 لذلك اسمحوا لي المضي قدما، واسمحوا لي وقف برنامج لحظة. 331 00:16:46,420 --> 00:16:52,070 أنا ذاهب لتسجيل ما يلي، مما يتيح الوصول إلى الميكروفون. 332 00:16:52,070 --> 00:16:53,181 >> ها نحن ذا. 333 00:16:53,181 --> 00:16:53,680 أوتش. 334 00:16:53,680 --> 00:16:58,710 335 00:16:58,710 --> 00:17:01,140 دعونا نحاول هذا مرة أخرى. 336 00:17:01,140 --> 00:17:02,279 ها نحن ذا. 337 00:17:02,279 --> 00:17:03,570 حسنا، أنا سجلت الشيء الخطأ. 338 00:17:03,570 --> 00:17:04,580 ها نحن ذا. 339 00:17:04,580 --> 00:17:05,080 أوتش. 340 00:17:05,080 --> 00:17:07,910 341 00:17:07,910 --> 00:17:08,800 أوتش. 342 00:17:08,800 --> 00:17:09,300 حسنا. 343 00:17:09,300 --> 00:17:10,791 الآن أنا بحاجة للتخلص من ذلك. 344 00:17:10,791 --> 00:17:11,290 حسنا. 345 00:17:11,290 --> 00:17:13,950 >> وحتى الآن لدي تسجيل فقط "أوتش". 346 00:17:13,950 --> 00:17:18,040 حتى الآن أنا ذاهب للذهاب قبل ونسمي هذا "أوتش". 347 00:17:18,040 --> 00:17:20,270 انا ذاهب الى العودة لكتاباتي، والآن 348 00:17:20,270 --> 00:17:25,460 إشعار هناك هذه الكتلة وهذا يسمى تشغيل الصوت "مواء" أو تشغيل الصوت "أوتش". 349 00:17:25,460 --> 00:17:28,920 انا ذاهب الى سحب هذا، وأين يجب أن أضع هذا لتأثير هزلية؟ 350 00:17:28,920 --> 00:17:31,740 351 00:17:31,740 --> 00:17:37,860 نعم، وحتى الآن انها نوع من عربات التي تجرها الدواب، لأنه الآن هذا block-- 352 00:17:37,860 --> 00:17:42,050 لاحظ كيف هذا "إذا كان على الحافة، ارتداد "هو نوع من الاكتفاء الذاتي. 353 00:17:42,050 --> 00:17:43,704 لذلك أنا بحاجة إلى إصلاح هذا. 354 00:17:43,704 --> 00:17:44,870 اسمحوا لي أن نمضي قدما ونفعل هذا. 355 00:17:44,870 --> 00:17:48,630 اسمحوا لي أن نتخلص من هذا والعودة لدينا الأصلي، وأكثر متعمد 356 00:17:48,630 --> 00:17:49,870 وظائف. 357 00:17:49,870 --> 00:18:01,080 "إذا كانت لمس الحافة، ثم" أريد لتحويل، كما اقترح فيكتوريا، 358 00:18:01,080 --> 00:18:02,480 180 درجة. 359 00:18:02,480 --> 00:18:05,497 والقيام أريد أن ألعب صوت "أوتش" هناك؟ 360 00:18:05,497 --> 00:18:11,800 361 00:18:11,800 --> 00:18:15,580 >> نعم، لاحظ انها خارج أن الكتلة الصفراء. 362 00:18:15,580 --> 00:18:17,680 لذلك هذا، أيضا، سيكون علة، ولكن لقد لاحظت ذلك. 363 00:18:17,680 --> 00:18:21,290 لذلك أنا ذاهب لجرها إلى هنا، وإشعار الآن حان داخل "إذا". 364 00:18:21,290 --> 00:18:24,250 حتى "لو" هو هذا النوع شبيه مثل الذراع وصمة عار 365 00:18:24,250 --> 00:18:26,260 وهذا ما لن يؤدي الا الى تفعل ما هو داخل منه. 366 00:18:26,260 --> 00:18:30,216 حتى الآن إذا كنت التصغير في خطر annoying-- 367 00:18:30,216 --> 00:18:32,860 368 00:18:32,860 --> 00:18:36,470 >> COMPUTER: أوتش، أوتش، أوتش. 369 00:18:36,470 --> 00:18:39,910 >> DAVID مالان: وذلك سوف تذهب فقط إلى الأبد. 370 00:18:39,910 --> 00:18:44,160 الآن فقط لتسريع الامور هنا، اسمحوا لي أن المضي قدما وفتح، 371 00:18:44,160 --> 00:18:50,460 دعونا say-- السماح لي بالذهاب إلى بعض من أشيائي الخاصة من الصف. 372 00:18:50,460 --> 00:18:53,000 373 00:18:53,000 --> 00:19:00,220 واسمحوا لي أن تفتح، دعنا نقول، هذا قدم واحدا تلو الآخر من زملاء التدريس لدينا 374 00:19:00,220 --> 00:19:01,500 بضع سنوات مضت. 375 00:19:01,500 --> 00:19:04,732 وحتى بعض من تذكرون هذه اللعبة من الأمس، 376 00:19:04,732 --> 00:19:05,940 وانها ملحوظا في الواقع. 377 00:19:05,940 --> 00:19:08,190 على الرغم من أننا قد فعلت أبسط البرامج في الوقت الحالي، 378 00:19:08,190 --> 00:19:09,980 دعونا نتأمل ما هذا في الواقع يبدو مثل. 379 00:19:09,980 --> 00:19:10,650 اسمحوا لي أن ضرب اللعب. 380 00:19:10,650 --> 00:19:14,210 381 00:19:14,210 --> 00:19:18,980 >> حتى في هذه اللعبة، لدينا الضفدع، وباستخدام السهم keys-- 382 00:19:18,980 --> 00:19:23,340 ويأخذ خطوات أكبر مما كنت remember-- لدي السيطرة على هذا الضفدع. 383 00:19:23,340 --> 00:19:29,630 والهدف من ذلك هو الحصول على جميع أنحاء مشغول الطريق دون الوقوع في السيارات. 384 00:19:29,630 --> 00:19:34,735 ودعونا see-- إذا ذهبت إلى هنا، وأنا يجب أن ننتظر لسجل للتمرير من قبل. 385 00:19:34,735 --> 00:19:38,130 386 00:19:38,130 --> 00:19:39,274 هذا يبدو وكأنه علة. 387 00:19:39,274 --> 00:19:42,240 388 00:19:42,240 --> 00:19:43,495 هذا هو نوع من الخلل. 389 00:19:43,495 --> 00:19:45,980 390 00:19:45,980 --> 00:19:46,480 حسنا. 391 00:19:46,480 --> 00:19:51,550 أنا على هذا هنا، هناك، ثم عليك أن تبقي 392 00:19:51,550 --> 00:19:54,100 الذهاب حتى تحصل على كل الضفادع لمنصات زنبق. 393 00:19:54,100 --> 00:19:55,920 الآن هذا قد يبدو جميع أكثر تعقيدا، 394 00:19:55,920 --> 00:19:57,840 ولكن دعونا نحاول كسر هذه أسفل عقليا 395 00:19:57,840 --> 00:20:00,040 وشفهيا إلى كتل عنصرها. 396 00:20:00,040 --> 00:20:03,910 لذلك هناك على الارجح هو لغز قطعة أننا لم نر حتى الآن 397 00:20:03,910 --> 00:20:07,440 ولكن هذا ردا على ضربات المفاتيح، إلى أشياء أنا ضربت على لوحة المفاتيح. 398 00:20:07,440 --> 00:20:11,660 >> ولذلك لا يوجد ربما نوع من كتلة أن يقول، إذا كان المفتاح يساوي حتى، 399 00:20:11,660 --> 00:20:15,965 ثم تفعل شيئا مع Scratch-- ربما تحريكه 10 خطوات هذا الطريق. 400 00:20:15,965 --> 00:20:20,240 إذا لم تضغط على مفتاح لأسفل، نقل 10 خطوات بهذه الطريقة، أو مفتاح اليسار، نقل 10 خطوات 401 00:20:20,240 --> 00:20:21,710 بهذه الطريقة، 10 خطوات ذلك. 402 00:20:21,710 --> 00:20:23,644 لقد تحولت بوضوح القط إلى ضفدع. 403 00:20:23,644 --> 00:20:26,060 ولهذا فقط حيث زي، عن مكالمات خدش it-- نحن 404 00:20:26,060 --> 00:20:28,440 فقط المستوردة صورة من الضفادع. 405 00:20:28,440 --> 00:20:29,570 >> ولكن ماذا يحدث؟ 406 00:20:29,570 --> 00:20:32,794 ما الخطوط الأخرى للقانون، ما غيرها من قطع اللغز 407 00:20:32,794 --> 00:20:35,460 لم بليك، لدينا تدريس زميل، استخدامها في هذا البرنامج، على ما يبدو؟ 408 00:20:35,460 --> 00:20:38,320 409 00:20:38,320 --> 00:20:42,730 ما جعل كل شيء move-- ما البرمجة بناء؟ 410 00:20:42,730 --> 00:20:44,950 >> الحركة، sure-- ذلك نقل كتلة، لعلى يقين. 411 00:20:44,950 --> 00:20:49,330 وما هو أن كتلة حركة داخل، وعلى الأرجح؟ 412 00:20:49,330 --> 00:20:52,850 نعم، نوعا من حلقة، وربما منع إلى الأبد، وربما تكرار block-- 413 00:20:52,850 --> 00:20:54,070 كرر حتى كتلة. 414 00:20:54,070 --> 00:20:57,330 وهذا ما جعل سجلات و منصات زنبق وكل شيء تحرك آخر 415 00:20:57,330 --> 00:20:57,990 ذهابا وايابا. 416 00:20:57,990 --> 00:21:00,270 انها مجرد يحدث ما لا نهاية. 417 00:21:00,270 --> 00:21:03,180 >> لماذا بعض السيارات تتحرك بشكل أسرع من الآخرين؟ 418 00:21:03,180 --> 00:21:06,607 ما هو مختلف عن تلك البرامج؟ 419 00:21:06,607 --> 00:21:09,690 نعم، ربما البعض منهم أخذ المزيد من الخطوات دفعة واحدة وبعض منهم 420 00:21:09,690 --> 00:21:10,690 خطوات أقل في وقت واحد. 421 00:21:10,690 --> 00:21:14,670 والمؤثرات البصرية سريع مقابل بطيئة. 422 00:21:14,670 --> 00:21:16,030 >> ما رأيك حدث؟ 423 00:21:16,030 --> 00:21:19,700 عندما حصلت على ضفدع على طول الطريق عبر الشارع والنهر 424 00:21:19,700 --> 00:21:23,560 على لوحة الزنبق، شيء حدث يذكر. 425 00:21:23,560 --> 00:21:26,540 ما حدث في أقرب وقت كما فعلت ذلك؟ 426 00:21:26,540 --> 00:21:27,210 توقفت. 427 00:21:27,210 --> 00:21:29,680 توقف هذا الضفدع، و حصلت على الضفدع الثاني. 428 00:21:29,680 --> 00:21:33,155 وماذا في ذلك بناء يجب أن يكون المستخدمة هناك، ما الميزة؟ 429 00:21:33,155 --> 00:21:36,020 430 00:21:36,020 --> 00:21:38,660 >> نعم، لذلك هناك نوع من "إذا" الحالة هناك، أيضا. 431 00:21:38,660 --> 00:21:41,909 ويتحول out-- لم نر this-- ولكن هناك كتل أخرى في ان هناك 432 00:21:41,909 --> 00:21:45,300 يمكن القول، إذا كنت لمس شيء آخر على الشاشة، 433 00:21:45,300 --> 00:21:47,720 إذا كنت لمس لوحة الزنبق "، ثم". 434 00:21:47,720 --> 00:21:50,810 ثم هذا عندما كنا تجعل الضفدع الثاني تظهر. 435 00:21:50,810 --> 00:21:54,969 ذلك على الرغم من هذه اللعبة هو بالتأكيد بتاريخ جدا، على الرغم من النظرة الأولى 436 00:21:54,969 --> 00:21:58,010 هناك الكثير الذهاب بليك on-- و لم سوط هذا الأمر في دقيقتين، 437 00:21:58,010 --> 00:22:00,390 وربما أخذته عدة ساعات لخلق هذه اللعبة 438 00:22:00,390 --> 00:22:03,850 بناء على ذاكرته أو أشرطة الفيديو النسخة الأمس منه. 439 00:22:03,850 --> 00:22:07,940 ولكن كل هذه الأشياء الصغيرة الذهاب على الشاشة في عزلة 440 00:22:07,940 --> 00:22:11,550 تختزل إلى هذه بسيطة جدا الحركات constructs-- أو بيانات 441 00:22:11,550 --> 00:22:15,519 كما ناقشناه، والحلقات الظروف، وذلك حول هذا الموضوع. 442 00:22:15,519 --> 00:22:17,060 هناك عدد قليل من السمات الأخرى مربي الحيوانات. 443 00:22:17,060 --> 00:22:19,130 بعض منهم بحتة جمالية أو الصوتية، 444 00:22:19,130 --> 00:22:20,964 مثل الأصوات لعبت فقط مع. 445 00:22:20,964 --> 00:22:23,380 ولكن بالنسبة للجزء الأكبر، كنت لدينا في هذه اللغة، خدش، 446 00:22:23,380 --> 00:22:25,350 كل الأساسية اللبنات التي تقوم 447 00:22:25,350 --> 00:22:29,280 يكون في C، جافا، جافا سكريبت، PHP، روبي، بيثون، 448 00:22:29,280 --> 00:22:32,960 وأي عدد من اللغات الأخرى. 449 00:22:32,960 --> 00:22:36,720 أي أسئلة حول الصفر؟ 450 00:22:36,720 --> 00:22:37,220 حسنا. 451 00:22:37,220 --> 00:22:40,303 لذلك نحن لن الغوص في أعمق للخدش، لو كنت موضع ترحيب في نهاية هذا الاسبوع، 452 00:22:40,303 --> 00:22:42,860 وخاصة إذا كان لديك أطفال أو بنات وأبناء وكذا، 453 00:22:42,860 --> 00:22:44,220 لتعريفهم خدش. 454 00:22:44,220 --> 00:22:47,960 انها في الواقع لعوب رائعة البيئة مع، كما يقول أصحابها، 455 00:22:47,960 --> 00:22:49,120 السقوف العالية جدا. 456 00:22:49,120 --> 00:22:51,670 على الرغم من أننا بدأنا مع جدا من التفاصيل على مستوى منخفض، 457 00:22:51,670 --> 00:22:54,890 يمكنك القيام به حقا لا بأس به مع ذلك، وهذا هو ربما 458 00:22:54,890 --> 00:22:57,360 مظاهرة من ذلك تماما. 459 00:22:57,360 --> 00:23:02,920 >> ولكن دعونا الآن ننتقل لبعض أكثر مشاكل معقدة، إذا صح التعبير، 460 00:23:02,920 --> 00:23:05,870 المعروفة باسم "البحث" و "الفرز،" بشكل عام. 461 00:23:05,870 --> 00:23:09,500 كان لدينا هذا الكتاب الهاتف earlier-- هنا واحد آخر فقط لdiscussion-- 462 00:23:09,500 --> 00:23:13,460 أننا كنا قادرين على البحث أكثر كفاءة ل 463 00:23:13,460 --> 00:23:15,270 من افتراض كبير. 464 00:23:15,270 --> 00:23:17,655 ومجرد أن يكون واضحا، ما كان الافتراض الأول جعل 465 00:23:17,655 --> 00:23:19,280 عند البحث من خلال هذا الكتاب الهاتف؟ 466 00:23:19,280 --> 00:23:23,342 467 00:23:23,342 --> 00:23:25,300 أن كان مايك سميث في دفتر الهاتف، على الرغم من أنني 468 00:23:25,300 --> 00:23:27,410 سوف تكون قادرة على التعامل مع السيناريو بدونه 469 00:23:27,410 --> 00:23:30,720 هناك إذا أنا مجرد توقف قبل الأوان. 470 00:23:30,720 --> 00:23:31,806 هذا الكتاب هو الأبجدي. 471 00:23:31,806 --> 00:23:33,930 وهذا سخية جدا الافتراض، لأن ذلك 472 00:23:33,930 --> 00:23:36,580 يعني someone-- انا من النوع قطع زاوية، 473 00:23:36,580 --> 00:23:40,580 مثل أنا أسرع لشخص ما آخر فعل الكثير من العمل الشاق بالنسبة لي. 474 00:23:40,580 --> 00:23:43,120 >> ولكن ما إذا كان الهاتف تم فرزها الكتاب؟ 475 00:23:43,120 --> 00:23:47,050 ربما حصلت فيريزون كسول، ورمى فقط الجميع أسماء والأرقام في هناك 476 00:23:47,050 --> 00:23:50,120 ربما في الترتيب الذي وقعت لخدمة الهاتف. 477 00:23:50,120 --> 00:23:54,570 وكم من الوقت يستغرق لي للعثور على شخص مثل مايك سميث؟ 478 00:23:54,570 --> 00:23:58,160 book-- 1000 الهاتف الصفحة كم صفحات لا بد لي من البحث عن طريق؟ 479 00:23:58,160 --> 00:23:58,905 >> كل منهم. 480 00:23:58,905 --> 00:24:00,030 كنت نوعا من الخروج من الحظ. 481 00:24:00,030 --> 00:24:03,420 لديك حرفيا للنظر في كل الصفحة إذا كان الكتاب الهاتف فقط 482 00:24:03,420 --> 00:24:04,450 مرتبة بشكل عشوائي. 483 00:24:04,450 --> 00:24:06,910 قد تحصل على الحظ وتجد مايك على الصفحة الأولى للغاية، لأنه 484 00:24:06,910 --> 00:24:08,826 كان أول زبون لطلب خدمة الهاتف. 485 00:24:08,826 --> 00:24:10,760 لكنه قد يكون الأخير أيضا. 486 00:24:10,760 --> 00:24:12,500 >> لذلك بترتيب عشوائي ليست جيدة. 487 00:24:12,500 --> 00:24:16,750 لذلك نفترض أن لدينا لفرز دليل الهاتف أو في البيانات النوع العام 488 00:24:16,750 --> 00:24:18,520 أننا قد أعطيت. 489 00:24:18,520 --> 00:24:19,440 كيف يمكننا فعل ذلك؟ 490 00:24:19,440 --> 00:24:21,360 >> حسنا، اسمحوا لي أن مجرد محاولة مثال بسيط هنا. 491 00:24:21,360 --> 00:24:24,290 اسمحوا لي أن نمضي قدما وإرم أرقام قليلة على متن الطائرة. 492 00:24:24,290 --> 00:24:35,480 لنفترض أن الأرقام لدينا هي، دعنا نقول، أربعة، اثنان، واحد، وثلاثة. 493 00:24:35,480 --> 00:24:38,390 و، بن، فرز هذه الأرقام بالنسبة لنا. 494 00:24:38,390 --> 00:24:39,017 >> موافق، وحسن. 495 00:24:39,017 --> 00:24:39,850 كيف فعلت ذلك؟ 496 00:24:39,850 --> 00:24:42,731 497 00:24:42,731 --> 00:24:43,230 حسنا. 498 00:24:43,230 --> 00:24:44,710 بحيث تبدأ مع أصغر قيمة وأعلى، 499 00:24:44,710 --> 00:24:46,084 وهذا هو حقا الحدس الجيد. 500 00:24:46,084 --> 00:24:48,080 وندرك أننا البشر هم جميلة فعلا 501 00:24:48,080 --> 00:24:49,913 جيدة في حل المشاكل مثل هذا، على الأقل 502 00:24:49,913 --> 00:24:51,810 عندما تكون البيانات صغير نسبيا. 503 00:24:51,810 --> 00:24:54,860 بمجرد البدء في الحصول على مئات من الأرقام، الآلاف من الأرقام، 504 00:24:54,860 --> 00:24:58,440 الملايين من الأرقام، بن ربما لا يمكن أن يفعل ذلك تماما بهذه السرعة، 505 00:24:58,440 --> 00:25:00,620 على افتراض أن هناك الفجوات في الأرقام. 506 00:25:00,620 --> 00:25:03,450 من السهل جدا أن العد إلى مليون خلاف ذلك، والوقت فقط المستهلكة. 507 00:25:03,450 --> 00:25:07,150 >> ولذلك فإن خوارزمية يشعرك مثل بن تستخدم فقط الآن 508 00:25:07,150 --> 00:25:08,930 كان البحث عن أصغر رقم. 509 00:25:08,930 --> 00:25:12,900 حتى على الرغم من أننا يمكن للانسان ان يأخذ في الكثير من المعلومات بصريا، 510 00:25:12,900 --> 00:25:14,830 جهاز كمبيوتر هو في الواقع أكثر من ذلك بقليل محدودة. 511 00:25:14,830 --> 00:25:17,560 الكمبيوتر لا يمكن إلا أن ننظر بايت واحد في وقت واحد 512 00:25:17,560 --> 00:25:20,770 أو ربما أربعة بايت في time-- في هذه الأيام ربما 8 بايت في time-- 513 00:25:20,770 --> 00:25:24,450 ولكن عدد قليل جدا بايت من في وقت معين. 514 00:25:24,450 --> 00:25:28,480 >> ذلك بالنظر إلى أن لدينا حقا أربع قيم منفصلة here-- 515 00:25:28,480 --> 00:25:32,440 ويمكن ان يخطر لك من بن وجود غمامات على لو كان جهاز الكمبيوتر هذا 516 00:25:32,440 --> 00:25:36,450 انه لا يستطيع رؤية أي شيء آخر من رقم واحد في time-- 517 00:25:36,450 --> 00:25:39,720 لذلك نحن عموما سوف نفترض، كما هو الحال في اللغة الإنجليزية، فإننا سوف تقرأ من اليمين إلى اليسار. 518 00:25:39,720 --> 00:25:42,870 وبالتالي فإن الرقم الأول بن ربما بدا في كان أربعة ثم بسرعة كبيرة 519 00:25:42,870 --> 00:25:44,770 أدركت هذا هو كبير جدا number-- اسمحوا لي أن مواصلة البحث. 520 00:25:44,770 --> 00:25:45,357 >> هناك اثنان. 521 00:25:45,357 --> 00:25:45,940 انتظر دقيقة. 522 00:25:45,940 --> 00:25:47,070 الثاني هو أصغر من أربعة. 523 00:25:47,070 --> 00:25:47,986 انا ذاهب الى تذكر. 524 00:25:47,986 --> 00:25:49,070 الثاني هو الآن أصغر. 525 00:25:49,070 --> 00:25:50,417 الآن احدا-- هذا أفضل. 526 00:25:50,417 --> 00:25:51,250 هذا هو أصغر من ذلك. 527 00:25:51,250 --> 00:25:54,000 انا ذاهب الى نسيان اثنين وتذكر فقط واحد الآن. 528 00:25:54,000 --> 00:25:56,550 >> ويمكنه التوقف عن النظر؟ 529 00:25:56,550 --> 00:25:58,360 حسنا، يمكن أن يستند على هذه المعلومات، 530 00:25:58,360 --> 00:26:00,477 ولكن عنيدا أفضل بحث بقية القائمة. 531 00:26:00,477 --> 00:26:02,060 لأن ما إذا الصفر كانت في القائمة؟ 532 00:26:02,060 --> 00:26:03,643 ماذا لو كانت سلبية واحدة في القائمة؟ 533 00:26:03,643 --> 00:26:07,720 انه يعرف فقط أن جوابه هو الصحيح اذا كان باستفاضة 534 00:26:07,720 --> 00:26:08,729 فحص اللائحة بأكملها. 535 00:26:08,729 --> 00:26:10,020 لذلك نحن ننظر في بقية هذا. 536 00:26:10,020 --> 00:26:11,394 Three-- التي كانت مضيعة للوقت. 537 00:26:11,394 --> 00:26:13,540 حصلت سيئ الحظ، لكني لم اكن لا تزال صحيحة للقيام بذلك. 538 00:26:13,540 --> 00:26:17,857 وحتى الآن كان يفترض اختيار أقل عدد 539 00:26:17,857 --> 00:26:20,440 ومجرد وضعها في بداية من القائمة، كما سأفعل هنا. 540 00:26:20,440 --> 00:26:23,480 الآن ماذا فعلتم بعد ذلك، على الرغم من أنك لم تفكر في ذلك ما يقرب من 541 00:26:23,480 --> 00:26:25,962 إلى هذا الحد؟ 542 00:26:25,962 --> 00:26:27,670 كرر هذه العملية، هكذا نوع من الحلقة. 543 00:26:27,670 --> 00:26:28,920 هناك فكرة مألوفة. 544 00:26:28,920 --> 00:26:30,860 حتى هنا هو أربعة. 545 00:26:30,860 --> 00:26:32,110 هذا هو حاليا أصغر. 546 00:26:32,110 --> 00:26:33,220 هذا المرشح. 547 00:26:33,220 --> 00:26:33,900 ليس بعد الآن. 548 00:26:33,900 --> 00:26:34,770 الآن رأيت اثنين. 549 00:26:34,770 --> 00:26:36,630 هذا هو التالي أصغر عنصر. 550 00:26:36,630 --> 00:26:40,800 Three-- هذا ليس أصغر، لذلك الآن بن يمكن أن أقتلع اثنين. 551 00:26:40,800 --> 00:26:44,510 >> والآن نكرر هذه العملية، و بالطبع يحصل سحبت ثلاثة من القادم. 552 00:26:44,510 --> 00:26:45,420 تكرار هذه العملية. 553 00:26:45,420 --> 00:26:46,990 يحصل سحبت أربعة من. 554 00:26:46,990 --> 00:26:50,140 والآن نحن من الأرقام، لذا يجب أن يتم فرز القائمة. 555 00:26:50,140 --> 00:26:51,960 >> وبالفعل، هذا هو خوارزمية الرسمية. 556 00:26:51,960 --> 00:26:56,610 عالم الكمبيوتر سوف نسمي هذا "نوع الاختيار، و" 557 00:26:56,610 --> 00:27:00,880 والفكرة هي نوع من قائمة iteratively-- مرة أخرى 558 00:27:00,880 --> 00:27:03,807 ومرارا وتكرارا اختيار أصغر رقم. 559 00:27:03,807 --> 00:27:06,140 وما هو لطيف عن ذلك هو انها فقط حتى بديهية الرتق. 560 00:27:06,140 --> 00:27:07,470 في غاية البساطة. 561 00:27:07,470 --> 00:27:11,100 ويمكنك تكرار نفس العملية مرة أخرى ومرة ​​أخرى. 562 00:27:11,100 --> 00:27:12,150 انه سهل. 563 00:27:12,150 --> 00:27:17,170 >> في هذه الحالة كان سريع، ولكن وكم من الوقت تأخذ في الواقع؟ 564 00:27:17,170 --> 00:27:19,880 دعونا جعل الأمر يبدو و يشعر أكثر قليلا مملة. 565 00:27:19,880 --> 00:27:24,150 حتى واحد، اثنان، ثلاثة، أربعة، خمسة ستة، سبعة، ثمانية، تسعة، 10، 11، 12، 13، 14، 566 00:27:24,150 --> 00:27:26,160 15، 16-- عدد التعسفي. 567 00:27:26,160 --> 00:27:28,780 أردت فقط أكثر هذه الوقت من مجرد أربعة. 568 00:27:28,780 --> 00:27:30,780 حتى لو كنت قد حصلت على العموم مجموعة من الأرقام الآن-- ذلك 569 00:27:30,780 --> 00:27:32,420 حتى لا يهم ما are-- في السماح 570 00:27:32,420 --> 00:27:34,380 التفكير في ما هذا الخوارزمية هو مثل حقا. 571 00:27:34,380 --> 00:27:35,857 >> لنفترض أن هناك أعدادا هناك. 572 00:27:35,857 --> 00:27:38,190 مرة أخرى، لا يهم ما هم، لكنهم عشوائي. 573 00:27:38,190 --> 00:27:39,679 وأنا على تطبيق الخوارزمية بن ل. 574 00:27:39,679 --> 00:27:41,220 ولست بحاجة لتحديد أقل عدد. 575 00:27:41,220 --> 00:27:41,761 ماذا أفعل؟ 576 00:27:41,761 --> 00:27:44,240 وانا ذاهب الى جسديا تفعل ذلك هذه المرة للعمل بها. 577 00:27:44,240 --> 00:27:46,099 أبحث، أبحث، تبحث، وتبحث، وتبحث. 578 00:27:46,099 --> 00:27:48,140 فقط في الوقت أحصل على في نهاية القائمة يمكن 579 00:27:48,140 --> 00:27:51,230 وأنا أدرك أصغر كان عدد اثنين من هذا الوقت. 580 00:27:51,230 --> 00:27:52,720 واحد ليس في القائمة. 581 00:27:52,720 --> 00:27:54,400 لذلك أنا وضعت أسفل اثنين. 582 00:27:54,400 --> 00:27:55,590 >> ماذا أفعل بعد ذلك؟ 583 00:27:55,590 --> 00:27:58,600 أبحث، أبحث، أبحث، أبحث. 584 00:27:58,600 --> 00:28:02,250 الآن وجدت الرقم سبعة، ل هناك ثغرات في هذه numbers-- 585 00:28:02,250 --> 00:28:03,300 ولكن فقط تعسفية. 586 00:28:03,300 --> 00:28:03,800 حسنا. 587 00:28:03,800 --> 00:28:06,030 حتى الآن أستطيع اخماد سبعة. 588 00:28:06,030 --> 00:28:08,860 أبحث تبحث، وتبحث. 589 00:28:08,860 --> 00:28:11,030 >> الآن أفترض، من بطبيعة الحال، أن بن لا 590 00:28:11,030 --> 00:28:14,780 لديها ذاكرة إضافية، خارج الذاكرة، لأنه، بطبيعة الحال، 591 00:28:14,780 --> 00:28:16,080 أنا أبحث في نفس العدد. 592 00:28:16,080 --> 00:28:18,246 بالتأكيد كان يمكن أن تذكر كل من هذه الأرقام، 593 00:28:18,246 --> 00:28:19,930 وهذا صحيح تماما. 594 00:28:19,930 --> 00:28:22,610 ولكن إذا بن يتذكر كل الأرقام رآه، 595 00:28:22,610 --> 00:28:24,430 وقال انه لم تصدر حقا تقدم أساسي 596 00:28:24,430 --> 00:28:26,170 لأن لديه بالفعل القدرة على البحث 597 00:28:26,170 --> 00:28:27,540 من خلال الأرقام الموجودة على متنها. 598 00:28:27,540 --> 00:28:29,373 تذكر كل من الأرقام لا يساعد، 599 00:28:29,373 --> 00:28:32,490 لأنه يمكن لا يزال كجهاز كمبيوتر ننظر فقط في، قلنا، رقم واحد 600 00:28:32,490 --> 00:28:33,080 في وقت واحد. 601 00:28:33,080 --> 00:28:35,760 لذلك ليس هناك نوع من الغش هناك والتي يمكنك الاستفادة. 602 00:28:35,760 --> 00:28:39,170 >> حتى في واقع الأمر، وأنا إبقاء البحث في قائمة، 603 00:28:39,170 --> 00:28:44,200 لدي حرفيا للحفاظ على مجرد الذهاب ذهابا وإيابا من خلال ذلك، ونتف من 604 00:28:44,200 --> 00:28:45,710 في اليوم التالي أصغر رقم. 605 00:28:45,710 --> 00:28:48,810 وكما يمكنك النوع من الاستدلال من تحركاتي سخيفة، 606 00:28:48,810 --> 00:28:50,860 هذا يحصل فقط جدا مملة بشكل سريع جدا، 607 00:28:50,860 --> 00:28:54,850 ويبدو لي أن يذهب إلى الخلف و إيابا، ذهابا وإيابا لا بأس به. 608 00:28:54,850 --> 00:29:03,220 الآن لكي نكون منصفين، أنا لم يكن لديك للذهاب تماما كما، حسنا، دعونا see-- لكي نكون منصفين، 609 00:29:03,220 --> 00:29:06,310 أنا لم يكن لديك على المشي تماما العديد من الخطوات كما في كل مرة. 610 00:29:06,310 --> 00:29:09,200 لأنه، بطبيعة الحال، كما أنا اختيار الأرقام من القائمة، 611 00:29:09,200 --> 00:29:11,860 قائمة المتبقية هو الحصول على أقصر. 612 00:29:11,860 --> 00:29:14,240 >> وهكذا دعونا نفكر في عدد الخطوات وأنا فعلا 613 00:29:14,240 --> 00:29:16,010 التمشي من خلال كل الوقت. 614 00:29:16,010 --> 00:29:18,950 في الحالة الأولى جدا كان لدينا 16 أرقام، 615 00:29:18,950 --> 00:29:22,210 وهكذا maximally-- دعونا فقط تفعل هذا لdiscussion-- 616 00:29:22,210 --> 00:29:25,640 كان لي أن ننظر من خلال 16 أرقام للعثور على أصغر. 617 00:29:25,640 --> 00:29:28,420 ولكن مرة واحدة أنا وقلعوا أقل عدد، كيف 618 00:29:28,420 --> 00:29:30,590 وكان لفترة طويلة قائمة المتبقية، وبطبيعة الحال؟ 619 00:29:30,590 --> 00:29:31,420 فقط 15. 620 00:29:31,420 --> 00:29:34,670 فعلت ذلك عدد الأرقام بن أو لدي لننظر من خلال المرة الثانية؟ 621 00:29:34,670 --> 00:29:36,832 15، لمجرد الذهاب والعثور على أصغر. 622 00:29:36,832 --> 00:29:39,540 ولكن الآن، وبطبيعة الحال، فإن القائمة، جدا، أصغر مما كان عليه من قبل. 623 00:29:39,540 --> 00:29:42,540 فكيف العديد من الخطوات فعلت أنا يجب أن تأخذ في المرة القادمة؟ 624 00:29:42,540 --> 00:29:49,970 14 ثم 13 ثم 12، بالإضافة إلى نقطة، نقطة، نقطة، حتى أنا تركت مع واحد فقط. 625 00:29:49,970 --> 00:29:53,146 وحتى الآن من شأنه عالم الكمبيوتر نسأل، حسنا، ماذا يفعل ذلك جميعا على قدم المساواة؟ 626 00:29:53,146 --> 00:29:55,770 فإنه يساوي فعلا بعض الخرسانة الرقم الذي يمكننا بالتأكيد 627 00:29:55,770 --> 00:30:00,490 به حسابيا، ولكن نريد أن نتحدث حول كفاءة الخوارزميات 628 00:30:00,490 --> 00:30:04,940 أكثر من ذلك بقليل formulaically، بغض النظر عن متى القائمة. 629 00:30:04,940 --> 00:30:06,240 >> وحتى تعرف ماذا؟ 630 00:30:06,240 --> 00:30:09,860 هذا هو 16، ولكن كما قلت من قبل، دعونا مجرد دعوة حجم المشكلة 631 00:30:09,860 --> 00:30:10,970 n، حيث n هو عدد بعض. 632 00:30:10,970 --> 00:30:13,220 ربما حان 16، وربما انها ثلاثة، وربما انها المليون. 633 00:30:13,220 --> 00:30:13,761 انا لا اعرف. 634 00:30:13,761 --> 00:30:14,390 لا أهتم. 635 00:30:14,390 --> 00:30:16,520 ما أريد حقا هو صيغة يمكنني 636 00:30:16,520 --> 00:30:19,420 استخدامها لمقارنة هذه الخوارزمية ضد خوارزميات أخرى 637 00:30:19,420 --> 00:30:22,350 أن شخصا ما قد يدعي هي أفضل أو أسوأ من ذلك. 638 00:30:22,350 --> 00:30:25,430 >> لذلك تبين، وأنا فقط أعرف هذا من المدارس الابتدائية، 639 00:30:25,430 --> 00:30:34,790 أن هذا يعمل فعلا لنفسه شيء كما ن على ن زائد واحد أكثر من اثنين. 640 00:30:34,790 --> 00:30:40,020 ويحدث هذا على قدم المساواة، من بالطبع، ن تربيع زائد ن أكثر من اثنين. 641 00:30:40,020 --> 00:30:43,250 لذلك إذا أردت صيغة لكيفية العديد من الخطوات 642 00:30:43,250 --> 00:30:46,330 وشارك في النظر في جميع من هذه الأرقام مرة أخرى ومرة ​​أخرى 643 00:30:46,330 --> 00:30:52,681 ومرة أخرى، ومرة ​​أخرى، أود أن أقول انها المربعة ن بالإضافة إلى ن أكثر من اثنين. 644 00:30:52,681 --> 00:30:53,430 ولكن هل تعرف لماذا؟ 645 00:30:53,430 --> 00:30:54,500 هذا يبدو مجرد فوضى. 646 00:30:54,500 --> 00:30:56,470 أنا فقط حقا تريد الشعور العام من الأشياء. 647 00:30:56,470 --> 00:30:58,810 وتذكرون من المدرسة الثانوية أن هناك 648 00:30:58,810 --> 00:31:00,660 هو مفهوم الدرجة الأولى المدى. 649 00:31:00,660 --> 00:31:05,300 أي من هذه الشروط، ن مربع، ن، أو النصف، 650 00:31:05,300 --> 00:31:07,550 له أكبر الأثر على مر الزمن؟ 651 00:31:07,550 --> 00:31:11,920 ن أكبر يحصل، التي من هذه المسائل أكثر؟ 652 00:31:11,920 --> 00:31:15,560 >> وبعبارة أخرى، إذا كنت سد العجز في المليون، ن تربيع 653 00:31:15,560 --> 00:31:17,900 سيكون على الأرجح العامل المهيمن، 654 00:31:17,900 --> 00:31:21,670 لمليون مرة في حد ذاته هو أكبر بكثير 655 00:31:21,670 --> 00:31:23,682 من زائد واحد إضافي مليون. 656 00:31:23,682 --> 00:31:24,390 لذلك أنت تعرف لماذا؟ 657 00:31:24,390 --> 00:31:27,305 هذا هو مثل هذا الرتق كبيرة عدد إذا كنت تربيع عدد. 658 00:31:27,305 --> 00:31:28,430 هذا لا يهم حقا. 659 00:31:28,430 --> 00:31:30,596 نحن ذاهبون فقط عبر هذا من ونسيانها. 660 00:31:30,596 --> 00:31:34,250 وهكذا فإن عالم الكمبيوتر ويقول أن كفاءة هذه الخوارزمية 661 00:31:34,250 --> 00:31:37,850 هو بناء على أمر من ن squared-- أعني حقا تقريبي. 662 00:31:37,850 --> 00:31:40,810 والمربعة نوع تقريبا ن ذلك. 663 00:31:40,810 --> 00:31:44,130 مع مرور الوقت، وأكبر وأكبر ن يحصل، وهذا 664 00:31:44,130 --> 00:31:47,610 هو تقدير جيد لما كفاءة أو عدم كفاءة 665 00:31:47,610 --> 00:31:49,400 هذه الخوارزمية في الواقع. 666 00:31:49,400 --> 00:31:52,040 وأنا اشتقاق هذا، بطبيعة الحال، من فعل فعلا الرياضيات. 667 00:31:52,040 --> 00:31:54,040 ولكن الآن أنا مجرد التلويح يدي، لأنني فقط 668 00:31:54,040 --> 00:31:55,790 تريد الشعور العام من هذه الخوارزمية. 669 00:31:55,790 --> 00:31:58,850 >> وذلك باستخدام نفس المنطق، وفي الوقت نفسه، دعونا النظر خوارزمية أخرى 670 00:31:58,850 --> 00:32:01,162 نظرنا بالفعل at-- البحث الخطي. 671 00:32:01,162 --> 00:32:02,870 عندما كنت تبحث لbook-- الهاتف 672 00:32:02,870 --> 00:32:05,980 لا فرز ذلك، البحث من خلال book-- الهاتف 673 00:32:05,980 --> 00:32:09,197 حافظنا قائلا انه كان 1000 خطوات، أو 500 خطوة. 674 00:32:09,197 --> 00:32:10,280 ولكن دعونا تعميم ذلك. 675 00:32:10,280 --> 00:32:12,860 إذا كان هناك ن الصفحات في دفتر الهاتف، ما هو 676 00:32:12,860 --> 00:32:17,250 إدارة الوقت أو كفاءة البحث الخطي؟ 677 00:32:17,250 --> 00:32:19,750 انها على ترتيب عدد الخطوات لإيجاد 678 00:32:19,750 --> 00:32:24,210 مايك سميث باستخدام البحث الخطي، و الخوارزمية الأولى، أو حتى الثانية؟ 679 00:32:24,210 --> 00:32:27,240 680 00:32:27,240 --> 00:32:31,710 >> في أسوأ الحالات، مايك هو في نهاية الكتاب. 681 00:32:31,710 --> 00:32:35,590 حتى إذا كان الكتاب يحتوي الهاتف على 1000 صفحة، قلنا آخر مرة، في أسوأ الأحوال، 682 00:32:35,590 --> 00:32:38,380 قد يستغرق ما يقرب كيف العديد من الصفحات للعثور مايك؟ 683 00:32:38,380 --> 00:32:38,990 مثل 1000. 684 00:32:38,990 --> 00:32:39,830 انها الحد الأعلى. 685 00:32:39,830 --> 00:32:41,790 إنها أسوأ حالة ممكنة. 686 00:32:41,790 --> 00:32:44,410 ولكن مرة أخرى، نحن نبتعد من أرقام مثل 1000 الآن. 687 00:32:44,410 --> 00:32:45,730 انها مجرد ن. 688 00:32:45,730 --> 00:32:47,470 >> فما هي النتيجة المنطقية؟ 689 00:32:47,470 --> 00:32:50,210 العثور مايك في الهاتف كتاب يتضمن صفحات ن 690 00:32:50,210 --> 00:32:55,280 قد تتخذ، في أسوأ حالة جدا، عدد الخطوات بناء على أمر من ن؟ 691 00:32:55,280 --> 00:32:58,110 وبالفعل جهاز كمبيوتر ان عالم يقول 692 00:32:58,110 --> 00:33:02,340 أن الوقت يعمل، أو أداء أو كفاءة 693 00:33:02,340 --> 00:33:07,470 أو عدم الكفاءة، خوارزمية مثل بحث الخطي هو بناء على أمر من ن. 694 00:33:07,470 --> 00:33:10,010 ويمكن أن نطبق نفس منطق عبور شيء 695 00:33:10,010 --> 00:33:13,170 كما فعلت في الثانية الخوارزمية التي أجريناها مع دفتر الهاتف، 696 00:33:13,170 --> 00:33:16,040 حيث ذهبنا صفحتين في وقت واحد. 697 00:33:16,040 --> 00:33:20,120 >> لذلك قد 1000 صفحة دليل الهاتف تأخذنا 500 المنعطفات صفحة، زائد واحد 698 00:33:20,120 --> 00:33:21,910 إذا ضاعفنا الى الوراء قليلا. 699 00:33:21,910 --> 00:33:26,590 حتى إذا كان الكتاب يحتوي الهاتف على صفحات ن، ولكن نقوم به صفحتين في وقت واحد، 700 00:33:26,590 --> 00:33:28,900 وهذا تقريبا ما؟ 701 00:33:28,900 --> 00:33:33,190 N على اثنين، ذلك أن مثل ن على اثنين. 702 00:33:33,190 --> 00:33:38,490 لكني اتخذت مطالبة لحظة قبل أن ن على two-- 703 00:33:38,490 --> 00:33:41,060 هذا النوع من نفس فقط ن. 704 00:33:41,060 --> 00:33:44,050 انها مجرد عاملا ثابتا، سوف يقول علماء الكمبيوتر. 705 00:33:44,050 --> 00:33:45,970 دعونا نركز فقط على المتغيرات، really-- 706 00:33:45,970 --> 00:33:47,780 أكبر المتغيرات في المعادلة. 707 00:33:47,780 --> 00:33:52,530 >> البحث الخطي لذلك، سواء فعل ذلك واحد الصفحة في وقت واحد أو صفحتين في وقت واحد، 708 00:33:52,530 --> 00:33:54,810 هو نوع من الأساس نفسه. 709 00:33:54,810 --> 00:33:56,880 انها لا تزال في حدود ن. 710 00:33:56,880 --> 00:34:01,930 لكن ادعيت مع صورة بلدي في وقت سابق أن الخوارزمية الثالثة لم تكن 711 00:34:01,930 --> 00:34:02,480 خطي. 712 00:34:02,480 --> 00:34:03,605 لم يكن خط مستقيم. 713 00:34:03,605 --> 00:34:08,659 كان عليه أن الخط المنحني، و وكان جبري صيغة هناك ما؟ 714 00:34:08,659 --> 00:34:11,812 سجل n-- ذلك تسجيل قاعدة اثنين من ن. 715 00:34:11,812 --> 00:34:14,520 ونحن لم يكن لديك للذهاب إلى غاية الكثير من التفاصيل على اللوغاريتمات اليوم، 716 00:34:14,520 --> 00:34:17,394 ولكن معظم علماء الكمبيوتر لن حتى ان اقول لكم ما هي القاعدة. 717 00:34:17,394 --> 00:34:20,639 لأن كل شيء فقط عوامل ثابتة، إذا جاز التعبير، 718 00:34:20,639 --> 00:34:22,659 مجرد اختلافات رقمية طفيفة. 719 00:34:22,659 --> 00:34:31,179 وهكذا سيكون هذا شائع جدا طريقة لجهاز رسمي ولا سيما 720 00:34:31,179 --> 00:34:33,949 العلماء في لوحة أو المبرمجين في لوحة بيضاء 721 00:34:33,949 --> 00:34:36,889 بحجة الواقع الذي خوارزمية أنهم سيستخدمون 722 00:34:36,889 --> 00:34:39,500 أو ما كفاءة من خوارزمية هي. 723 00:34:39,500 --> 00:34:42,960 >> وهذا ليس بالضرورة شيئا أن تناقش في أي بقدر كبير من التفصيل، 724 00:34:42,960 --> 00:34:47,889 لكن مبرمج الجيد هو شخص الذي لديه، الخلفية رسمية الصلبة. 725 00:34:47,889 --> 00:34:50,120 انه قادر على التحدث إلى كنت في هذا النوع من الطريق 726 00:34:50,120 --> 00:34:53,350 وجعل الواقع الحجج النوعية كما 727 00:34:53,350 --> 00:34:56,870 لماذا خوارزمية واحدة أو قطعة واحدة من البرمجيات 728 00:34:56,870 --> 00:35:00,165 متفوقة في بعض الطريق إلى أخرى. 729 00:35:00,165 --> 00:35:02,540 لأنك يمكن بالتأكيد فقط تشغيل البرنامج شخص واحد 730 00:35:02,540 --> 00:35:04,980 والاعتماد على عدد الثواني ما يلزم لفرز بعض الأرقام، 731 00:35:04,980 --> 00:35:06,710 ويمكنك تشغيل بعض برنامج الشخص الآخر 732 00:35:06,710 --> 00:35:08,418 وحساب عدد من الثواني الذي يستغرقه. 733 00:35:08,418 --> 00:35:12,840 ولكن هذا هو وسيلة أكثر العامة التي يمكنك استخدامها لتحليل الخوارزميات، 734 00:35:12,840 --> 00:35:15,520 اذا صح التعبير، فقط على ورق أو مجرد لفظيا. 735 00:35:15,520 --> 00:35:18,430 دون حتى تشغيله، دون حتى محاولة المدخلات العينة، 736 00:35:18,430 --> 00:35:20,180 يمكنك التفكير فقط من خلال ذلك. 737 00:35:20,180 --> 00:35:24,670 وحتى مع التعاقد مع المطور أو إذا وجود له أو لها نوعا من يقول لك 738 00:35:24,670 --> 00:35:28,460 لماذا خوارزمية، سرهم صلصة للبحث مليارات 739 00:35:28,460 --> 00:35:30,580 من صفحات الويب الخاصة بك الشركة هي أفضل، هذه 740 00:35:30,580 --> 00:35:33,302 هي أنواع الحجج التي يجب أن يكون مثاليا قادرا على القيام بها. 741 00:35:33,302 --> 00:35:35,010 أو هذه على الأقل هي أنواع الأشياء 742 00:35:35,010 --> 00:35:40,211 التي من شأنها أن تطرح في المناقشة، في الأقل في مناقشة رسمية جدا. 743 00:35:40,211 --> 00:35:40,710 حسنا. 744 00:35:40,710 --> 00:35:44,400 لذلك اقترح بن شيئا دعا اختيار نوع. 745 00:35:44,400 --> 00:35:48,200 ولكن انا ذاهب الى أقترح أن هناك طرق أخرى للقيام بذلك أيضا. 746 00:35:48,200 --> 00:35:50,400 ما لم يعجبني حقا حول خوارزمية بن ل 747 00:35:50,400 --> 00:35:54,400 غير أنه أبقى المشي، أو بعد أن لي المشي، ذهابا وإيابا 748 00:35:54,400 --> 00:35:56,930 وذهابا وإيابا وذهابا وإيابا. 749 00:35:56,930 --> 00:36:04,130 ماذا لو بدلا من ذلك كان علي أن أفعل شيء من هذا القبيل هذه الأرقام هنا 750 00:36:04,130 --> 00:36:08,200 وكان لي أن مجرد التعامل مع كل عدد بدورها كما أنا أعطيت ذلك؟ 751 00:36:08,200 --> 00:36:10,780 >> وبعبارة أخرى، من هنا قائمتي من الأرقام. 752 00:36:10,780 --> 00:36:12,944 أربعة، واحد، ثلاثة، اثنان. 753 00:36:12,944 --> 00:36:14,360 وانا ذاهب الى القيام بما يلي. 754 00:36:14,360 --> 00:36:17,230 أنا ذاهب لإدراج أرقام حيث تنتمي بالأحرى 755 00:36:17,230 --> 00:36:18,980 من اختيار واحد في وقت واحد. 756 00:36:18,980 --> 00:36:20,820 وبعبارة أخرى، وهنا رقم أربعة. 757 00:36:20,820 --> 00:36:22,430 >> وهنا قال لي القائمة الأصلية. 758 00:36:22,430 --> 00:36:25,290 وانا ذاهب للحفاظ على في الأساس قائمة جديدة هنا. 759 00:36:25,290 --> 00:36:26,710 لذلك هذا هو القائمة القديمة. 760 00:36:26,710 --> 00:36:28,560 هذه لائحة جديدة. 761 00:36:28,560 --> 00:36:30,220 أرى رقم أربعة لأول مرة. 762 00:36:30,220 --> 00:36:34,500 قائمتي جديدة في البداية فارغة، هكذا هو الحال بشكل مسلي 763 00:36:34,500 --> 00:36:36,410 أن أربعة من قائمة متنوعة الآن. 764 00:36:36,410 --> 00:36:39,560 أنا مجرد أخذ عدد انا معين، وأنا أضع في بلدي قائمة جديدة. 765 00:36:39,560 --> 00:36:41,460 >> يتم فرز هذه القائمة الجديدة؟ 766 00:36:41,460 --> 00:36:41,990 بلى. 767 00:36:41,990 --> 00:36:45,090 انه من الغباء لأنه لا يوجد واحد فقط عنصر، لكنها مرتبة على الاطلاق. 768 00:36:45,090 --> 00:36:46,390 لا يوجد شيء للخروج من المكان. 769 00:36:46,390 --> 00:36:49,290 انها أكثر إثارة للاهتمام، هذه الخوارزمية، عندما أنتقل إلى الخطوة التالية. 770 00:36:49,290 --> 00:36:50,550 >> الآن لدي واحدة. 771 00:36:50,550 --> 00:36:55,430 حتى واحد، وبطبيعة الحال، وينتمي في بداية أو نهاية لهذه القائمة الجديدة؟ 772 00:36:55,430 --> 00:36:56,360 البداية. 773 00:36:56,360 --> 00:36:58,530 لذلك لا بد لي من القيام ببعض الأعمال الآن. 774 00:36:58,530 --> 00:37:01,410 لقد تم اتخاذ بعض الحريات مع بلدي علامة 775 00:37:01,410 --> 00:37:03,120 فقط عن طريق رسم الأشياء حيث أريد لها، 776 00:37:03,120 --> 00:37:05,320 ولكن هذا ليس حقا دقيقة في جهاز الكمبيوتر. 777 00:37:05,320 --> 00:37:08,530 كمبيوتر، كما نعلم، لديها ذاكرة الوصول العشوائي، أو ذاكرة الوصول العشوائي، 778 00:37:08,530 --> 00:37:12,411 وهذا بايت واحد و البايت آخر والبايت آخر. 779 00:37:12,411 --> 00:37:14,910 وإذا كان لديك غيغا بايت من ذاكرة الوصول العشوائي، لديك مليار بايت، 780 00:37:14,910 --> 00:37:16,680 ولكنهم فعليا في مكان واحد. 781 00:37:16,680 --> 00:37:19,540 لا يمكنك فقط نقل الاشياء حول من خلال الاعتماد على لوحة 782 00:37:19,540 --> 00:37:20,750 أينما تريد. 783 00:37:20,750 --> 00:37:24,090 حتى إذا قائمتي الجديدة لديها أربعة مواقع في الذاكرة، 784 00:37:24,090 --> 00:37:27,480 للأسف الأربعة هو بالفعل في المكان الخطأ. 785 00:37:27,480 --> 00:37:30,410 >> لذلك لإدراج رقم واحد لا أستطيع مجرد رسم من هنا. 786 00:37:30,410 --> 00:37:31,901 عدم وجود هذا الموقع الذاكرة. 787 00:37:31,901 --> 00:37:35,150 من شأنه أن يكون الغش، ولقد كنت الغش بالصور لبضع دقائق 788 00:37:35,150 --> 00:37:35,800 هنا. 789 00:37:35,800 --> 00:37:40,950 ذلك حقا، إذا كنت ترغب في وضع واحد هنا، لدي نسخ أربعة مؤقتا 790 00:37:40,950 --> 00:37:43,030 ومن ثم وضع واحد هناك. 791 00:37:43,030 --> 00:37:45,500 >> هذا شيء طيب، وهذا هو الصحيح، أن من الممكن من الناحية الفنية، 792 00:37:45,500 --> 00:37:48,410 ولكن ندرك أن هذا العمل الإضافي. 793 00:37:48,410 --> 00:37:50,460 لم أكن مجرد وضع الرقم في المكان. 794 00:37:50,460 --> 00:37:53,026 كان أول من نقل عدد، ثم وضعها في المكان، 795 00:37:53,026 --> 00:37:54,650 لذلك النوع من الضعف مبلغ عملي. 796 00:37:54,650 --> 00:37:55,660 حتى أن تبقي في الاعتبار. 797 00:37:55,660 --> 00:37:57,120 >> ولكن أنا الآن القيام به مع هذا العنصر. 798 00:37:57,120 --> 00:37:59,056 الآن أريد أن انتزاع المركز الثالث. 799 00:37:59,056 --> 00:38:00,430 حيث، بطبيعة الحال، وأنها لا تنتمي؟ 800 00:38:00,430 --> 00:38:01,480 ما بين أثنين. 801 00:38:01,480 --> 00:38:03,650 لا أستطيع خداع بعد الآن ومجرد وضعها هناك، 802 00:38:03,650 --> 00:38:06,770 لأنه، مرة أخرى، هذه الذاكرة في المواقع المادية. 803 00:38:06,770 --> 00:38:10,900 لذلك لا بد لي من نسخ الأربعة ووضع ثلاثة أكثر من هنا. 804 00:38:10,900 --> 00:38:11,550 لا صفقة كبيرة. 805 00:38:11,550 --> 00:38:14,610 انها مجرد خطوة واحدة اضافية يشعر again-- غير مكلفة للغاية. 806 00:38:14,610 --> 00:38:16,445 >> ولكن الآن أن أنتقل إلى اثنين. 807 00:38:16,445 --> 00:38:17,820 وهما، بالطبع، وينتمي هنا. 808 00:38:17,820 --> 00:38:20,990 الآن أن تبدأ في رؤية كيف العمل يمكن أن تتراكم. 809 00:38:20,990 --> 00:38:23,520 الآن ماذا علي أن أفعل؟ 810 00:38:23,520 --> 00:38:28,570 نعم، لا بد لي من نقل أربعة، وبعد ذلك يكون لنسخ الثلاث، 811 00:38:28,570 --> 00:38:31,200 والآن أستطيع أن إدراج اثنين. 812 00:38:31,200 --> 00:38:34,460 والصيد مع هذا الخوارزمية، ومن المثير للاهتمام، 813 00:38:34,460 --> 00:38:41,050 هو أن نفترض أن لدينا أكثر تطرفا الحالة حيث انها دعنا نقول ثمانية، سبعة، 814 00:38:41,050 --> 00:38:45,150 ستة، خمسة، أربعة، ثلاثة، اثنان، واحد. 815 00:38:45,150 --> 00:38:49,450 وهذا هو، في العديد من السياقات، أسوأ سيناريو، 816 00:38:49,450 --> 00:38:51,570 لأن الشيء الرتق هو حرفيا إلى الوراء. 817 00:38:51,570 --> 00:38:53,670 >> أنه لا حقا تؤثر خوارزمية بن ل، 818 00:38:53,670 --> 00:38:55,940 لأنه في اختيار بن ل نوع انه ذاهب للحفاظ على 819 00:38:55,940 --> 00:38:58,359 ذهابا وإيابا من خلال القائمة. 820 00:38:58,359 --> 00:39:01,150 ولأنه كان يبحث دائما من خلال قائمة الباقية كلها، 821 00:39:01,150 --> 00:39:02,858 لا يهم حيث العناصر. 822 00:39:02,858 --> 00:39:05,630 ولكن في هذه الحالة مع بلدي ادخال approach-- دعونا نحاول هذا. 823 00:39:05,630 --> 00:39:08,616 >> حتى واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، سبعة، ثمانية. 824 00:39:08,616 --> 00:39:11,630 واحد إثنان ثلاثة أربعة، خمسة، ستة، سبعة، ثمانية. 825 00:39:11,630 --> 00:39:14,320 انا ذاهب الى اتخاذ الثمانية، وأين وضعه؟ 826 00:39:14,320 --> 00:39:17,260 حسنا، في بداية قائمتي، لأنه يتم فرز هذه القائمة الجديدة. 827 00:39:17,260 --> 00:39:18,760 وأعبر بها. 828 00:39:18,760 --> 00:39:20,551 >> أين أضع السبعة؟ 829 00:39:20,551 --> 00:39:21,050 الرتق ذلك. 830 00:39:21,050 --> 00:39:23,174 فإنه يحتاج إلى الذهاب إلى هناك، لذلك لا بد لي من القيام ببعض النسخ. 831 00:39:23,174 --> 00:39:26,820 832 00:39:26,820 --> 00:39:28,480 والآن سبعة يذهب هنا. 833 00:39:28,480 --> 00:39:29,860 الآن أن أنتقل إلى ستة. 834 00:39:29,860 --> 00:39:30,980 الآن حان المزيد من العمل. 835 00:39:30,980 --> 00:39:32,570 >> ثمانية ديه للذهاب هنا. 836 00:39:32,570 --> 00:39:33,920 سبعة أن يذهب هنا. 837 00:39:33,920 --> 00:39:35,450 الآن الست يمكن أن تذهب هنا. 838 00:39:35,450 --> 00:39:37,950 الآن أنا الاستيلاء على خمسة. 839 00:39:37,950 --> 00:39:40,560 الآن ثمانية ديه للذهاب هنا، سبعة أن يذهب هنا، 840 00:39:40,560 --> 00:39:43,650 ستة أن يذهب هنا، و الآن خمسة وتكرار. 841 00:39:43,650 --> 00:39:46,610 وأنا الى حد كبير تحريكه باستمرار. 842 00:39:46,610 --> 00:39:52,950 >> لذلك في النهاية، هذا algorithm-- سنقوم نسميها الإدراج sort-- الواقع 843 00:39:52,950 --> 00:39:55,020 لديه الكثير من العمل أيضا. 844 00:39:55,020 --> 00:39:56,970 انها مختلفة تماما النوع من العمل من وبن. 845 00:39:56,970 --> 00:40:00,090 وكان لعمل بن لذهابي ذهابا وإيابا في كل وقت، 846 00:40:00,090 --> 00:40:03,510 اختيار بجوار أصغر العنصر مرة أخرى ومرة ​​أخرى. 847 00:40:03,510 --> 00:40:06,660 لذلك كان هذا النوع البصري جدا من العمل. 848 00:40:06,660 --> 00:40:10,600 >> هذه الخوارزمية الأخرى، التي لا تزال correct-- أنها سوف تحصل على وظيفة done-- 849 00:40:10,600 --> 00:40:12,800 مجرد تغييرات كمية العمل. 850 00:40:12,800 --> 00:40:15,420 يبدو في البداية كنت إنقاذ، لأنك فقط 851 00:40:15,420 --> 00:40:19,190 التعامل مع كل عنصر في خط الهجوم دون المشي كل 852 00:40:19,190 --> 00:40:20,930 كانت الطريق من خلال قائمة مثل بن. 853 00:40:20,930 --> 00:40:25,300 ولكن المشكلة هي، لا سيما في هذه الحالات مجنون حيث كل شيء الى الوراء، 854 00:40:25,300 --> 00:40:27,830 كنت مجرد نوع من تأجيل العمل الشاق 855 00:40:27,830 --> 00:40:30,360 حتى يكون لديك لتصحيح أخطائك. 856 00:40:30,360 --> 00:40:33,919 >> وحتى إذا كان يمكنك أن تتخيل هذا ثمانية وسبعة وستة وخمسة 857 00:40:33,919 --> 00:40:36,710 وبعد أربعة وثلاثة واثنين تتحرك في طريقهم من خلال القائمة، 858 00:40:36,710 --> 00:40:39,060 لقد غيرت فقط نوع من العمل الذي نقوم به. 859 00:40:39,060 --> 00:40:42,340 بدلا من القيام بذلك في ابتداء من بلدي التكرار، 860 00:40:42,340 --> 00:40:45,250 أنا فقط أفعل ذلك في نهاية كل التكرار. 861 00:40:45,250 --> 00:40:50,550 لذلك تبين أن هذه الخوارزمية، أيضا، وتسمى عادة الإدراج النوع، 862 00:40:50,550 --> 00:40:52,190 هو أيضا بناء على أمر من ن المربعة. 863 00:40:52,190 --> 00:40:56,480 انها في الواقع ليست أفضل، ليست أفضل على الإطلاق. 864 00:40:56,480 --> 00:41:00,810 >> ومع ذلك، هناك نهج ثالث وأود أن أشجع منا أن نفكر: 865 00:41:00,810 --> 00:41:02,970 وهو هذا. 866 00:41:02,970 --> 00:41:07,850 لذلك نفترض قائمتي، عن البساطة مرة أخرى، أربعة، واحد، ثلاثة، 867 00:41:07,850 --> 00:41:11,080 two-- أربعة أرقام فقط. 868 00:41:11,080 --> 00:41:13,300 وكان بن حدس جيد، الحدس البشري جيد 869 00:41:13,300 --> 00:41:16,340 من قبل، ونحن هنا الثابتة كلها قائمة eventually-- الإدراج الفرز. 870 00:41:16,340 --> 00:41:18,020 أنا أقنع لنا على طول. 871 00:41:18,020 --> 00:41:22,530 ولكن دعونا النظر في أبسط طريقة لإصلاح هذه القائمة. 872 00:41:22,530 --> 00:41:24,110 >> لا يتم فرز هذه القائمة. 873 00:41:24,110 --> 00:41:26,130 لماذا؟ 874 00:41:26,130 --> 00:41:31,920 في اللغة الإنجليزية، وشرح لماذا انها ليست مرتبة في الواقع. 875 00:41:31,920 --> 00:41:33,400 ما لا يعني أن مرتبة؟ 876 00:41:33,400 --> 00:41:34,220 >> الطالب: انها ليست متسلسلة. 877 00:41:34,220 --> 00:41:34,990 >> DAVID مالان: غير متسلسلة. 878 00:41:34,990 --> 00:41:35,822 اعطني مثال. 879 00:41:35,822 --> 00:41:37,180 >> الطالب: وضعها في النظام. 880 00:41:37,180 --> 00:41:37,440 >> DAVID مالان: موافق. 881 00:41:37,440 --> 00:41:38,790 أعطني مثالا أكثر تحديدا. 882 00:41:38,790 --> 00:41:39,832 >> الطالب: تصاعدي ترتيب. 883 00:41:39,832 --> 00:41:41,206 DAVID مالان: غير ترتيب تصاعدي. 884 00:41:41,206 --> 00:41:42,100 أن تكون أكثر دقة. 885 00:41:42,100 --> 00:41:45,190 أنا لا أعرف ماذا تقصد ب تصاعدي. 886 00:41:45,190 --> 00:41:47,150 ماالخطب؟ 887 00:41:47,150 --> 00:41:49,930 >> الطالب: أصغر من الأرقام ليست في الفضاء الأول. 888 00:41:49,930 --> 00:41:51,140 >> DAVID مالان: أصغر عدد من وليس في الفضاء الأول. 889 00:41:51,140 --> 00:41:52,120 كن أكثر تحديدا. 890 00:41:52,120 --> 00:41:55,000 أنا بدأت للقبض على. 891 00:41:55,000 --> 00:41:59,470 نحن كنت أعول، ولكن ما هو خارج الترتيب هنا؟ 892 00:41:59,470 --> 00:42:00,707 >> الطالب: التسلسل العددي. 893 00:42:00,707 --> 00:42:02,040 DAVID مالان: التسلسل العددي. 894 00:42:02,040 --> 00:42:04,248 نوع الجميع من حفظ ذلك here-- مستوى عال جدا. 895 00:42:04,248 --> 00:42:07,450 قل لي حرفيا ما هو خطأ مثل القوة البالغ من العمر خمس سنوات. 896 00:42:07,450 --> 00:42:08,310 >> الطالب: زائد واحد. 897 00:42:08,310 --> 00:42:08,750 >> DAVID مالان: ما هذا؟ 898 00:42:08,750 --> 00:42:09,610 >> الطالب: زائد واحد. 899 00:42:09,610 --> 00:42:11,235 >> DAVID مالان: ماذا تقصد زائد واحد؟ 900 00:42:11,235 --> 00:42:12,754 901 00:42:12,754 --> 00:42:14,170 أعطني مختلفة البالغ من العمر خمس سنوات. 902 00:42:14,170 --> 00:42:16,840 903 00:42:16,840 --> 00:42:18,330 ما هو الخطأ، أمي؟ 904 00:42:18,330 --> 00:42:19,940 ما هو الخطأ، يا أبي؟ 905 00:42:19,940 --> 00:42:22,808 ماذا يعني هذا غير مصنفة؟ 906 00:42:22,808 --> 00:42:24,370 >> الطالب: انها ليست المكان المناسب. 907 00:42:24,370 --> 00:42:25,580 >> DAVID مالان: ما هو ليس في المكان المناسب؟ 908 00:42:25,580 --> 00:42:26,174 >> الطالب: أربعة. 909 00:42:26,174 --> 00:42:27,090 DAVID مالان: موافق، وحسن. 910 00:42:27,090 --> 00:42:29,110 حتى أربعة ليس حيث ينبغي أن يكون. 911 00:42:29,110 --> 00:42:30,590 على وجه الخصوص، هل هذا صحيح؟ 912 00:42:30,590 --> 00:42:33,000 أربعة واحد، الأول رقمين أرى. 913 00:42:33,000 --> 00:42:34,930 هل هذا صحيح؟ 914 00:42:34,930 --> 00:42:36,427 لا، انهم خارج الترتيب، أليس كذلك؟ 915 00:42:36,427 --> 00:42:38,135 في الواقع، أعتقد الآن حول جهاز كمبيوتر، أيضا. 916 00:42:38,135 --> 00:42:40,824 ويمكن أن ننظر فقط في ربما واحدة، ربما شيئين في once-- 917 00:42:40,824 --> 00:42:43,240 والواقع شيء واحد فقط في وقت واحد، ولكن يمكن على الأقل 918 00:42:43,240 --> 00:42:45,790 ننظر في شيء واحد ثم الشيء التالي الحق بجانبه. 919 00:42:45,790 --> 00:42:47,380 >> هكذا هي هذه في النظام؟ 920 00:42:47,380 --> 00:42:48,032 بالطبع لا. 921 00:42:48,032 --> 00:42:48,740 لذلك أنت تعرف لماذا؟ 922 00:42:48,740 --> 00:42:51,020 لماذا لا نأخذ الطفل خطوات إصلاح هذه المشكلة 923 00:42:51,020 --> 00:42:53,410 بدلا من القيام بهذه الهوى خوارزميات مثل بن، حيث 924 00:42:53,410 --> 00:42:56,440 انه نوع من تحديد ذلك من قبل حلقات عبر قائمة 925 00:42:56,440 --> 00:42:59,670 بدلا من أن يفعل ما فعلت، حيث أنا مجرد نوع من أنها ثابتة ونحن نمضي؟ 926 00:42:59,670 --> 00:43:03,650 دعونا فقط كسر حرفيا أسفل فكرة الترتيب العددي order--، 927 00:43:03,650 --> 00:43:06,990 يطلق عليه مهما كنت want-- في هذه المقارنات البشرى. 928 00:43:06,990 --> 00:43:07,590 >> أربعة واحد. 929 00:43:07,590 --> 00:43:09,970 هل هذا هو الترتيب الصحيح؟ 930 00:43:09,970 --> 00:43:11,310 لذلك دعونا تحديد ذلك. 931 00:43:11,310 --> 00:43:14,700 واحد وأربعة، ثم سنقوم مجرد نسخ ذلك. 932 00:43:14,700 --> 00:43:15,560 كل الحق، وحسن. 933 00:43:15,560 --> 00:43:17,022 أنا ثابت واحد وأربعة. 934 00:43:17,022 --> 00:43:18,320 ثلاثة واثنين؟ 935 00:43:18,320 --> 00:43:18,820 لا. 936 00:43:18,820 --> 00:43:21,690 السماح كلماتي تطابق أصابعي. 937 00:43:21,690 --> 00:43:23,695 أربعة وثلاثة؟ 938 00:43:23,695 --> 00:43:27,930 >> انها ليست في النظام، لذلك أنا ذاهب لفعل واحد، ثلاثة، أربعة، اثنين. 939 00:43:27,930 --> 00:43:28,680 موافق، وحسن. 940 00:43:28,680 --> 00:43:32,310 الآن أربعة واثنان؟ 941 00:43:32,310 --> 00:43:33,370 نحن بحاجة إلى إصلاح هذا أيضا. 942 00:43:33,370 --> 00:43:36,700 حتى واحد، ثلاثة، اثنان، أربعة. 943 00:43:36,700 --> 00:43:39,820 لذلك فإنه مرتبة؟ 944 00:43:39,820 --> 00:43:43,170 لا، ولكن هل هو أقرب إلى مرتبة؟ 945 00:43:43,170 --> 00:43:48,930 >> هو عليه، لأننا إصلاح هذا خطأ، ونحن إصلاح هذا الخطأ، 946 00:43:48,930 --> 00:43:50,370 ونحن إصلاح هذا الخطأ. 947 00:43:50,370 --> 00:43:52,420 لذلك نحن الثابتة ثلاثة أخطاء يمكن القول. 948 00:43:52,420 --> 00:43:58,100 لا يزال لا تبدو حقا فرزها، ولكن هو أقرب موضوعية فرزها 949 00:43:58,100 --> 00:44:00,080 لأننا إصلاح بعض من تلك الأخطاء. 950 00:44:00,080 --> 00:44:02,047 >> الآن ماذا أفعل بعد ذلك؟ 951 00:44:02,047 --> 00:44:03,630 النوع الأول من وصل إلى نهاية القائمة. 952 00:44:03,630 --> 00:44:05,680 وبدا لي أن الثابتة كل الأخطاء، ولكن لا. 953 00:44:05,680 --> 00:44:08,510 لأنه في هذه الحالة، بعض الأرقام قد انفجر حتى أقرب 954 00:44:08,510 --> 00:44:10,410 إلى أرقام أخرى لا تزال خارج الترتيب. 955 00:44:10,410 --> 00:44:12,951 لذلك دعونا نفعل ذلك مرة أخرى، وسوف أكون مجرد القيام بذلك في المكان هذه المرة. 956 00:44:12,951 --> 00:44:14,170 واحد وثلاثة؟ 957 00:44:14,170 --> 00:44:14,720 أنها على ما يرام. 958 00:44:14,720 --> 00:44:16,070 ثلاثة واثنين؟ 959 00:44:16,070 --> 00:44:17,560 بالطبع لا، لذلك دعونا تغيير ذلك. 960 00:44:17,560 --> 00:44:19,160 حتى سنتين أو ثلاث. 961 00:44:19,160 --> 00:44:21,340 ثلاثة وأربعة؟ 962 00:44:21,340 --> 00:44:24,370 والآن دعونا نكون فقط متحذلق هنا بشكل خاص. 963 00:44:24,370 --> 00:44:26,350 هل مرتبة؟ 964 00:44:26,350 --> 00:44:29,280 كنت البشر يعرفون كل شيء فرزها. 965 00:44:29,280 --> 00:44:30,400 >> أود أن حاول مرة أخرى. 966 00:44:30,400 --> 00:44:31,900 حتى أوليفيا يقترح أحاول مرة أخرى. 967 00:44:31,900 --> 00:44:32,530 لماذا؟ 968 00:44:32,530 --> 00:44:35,810 بسبب عدم توفر جهاز كمبيوتر ترف العين البشرية لدينا 969 00:44:35,810 --> 00:44:38,080 من نظرة عابرة فقط موافق back--، أنا فعلت. 970 00:44:38,080 --> 00:44:41,610 كيف يحدد الكمبيوتر أن يتم فرز القائمة الآن؟ 971 00:44:41,610 --> 00:44:44,590 ميكانيكيا. 972 00:44:44,590 --> 00:44:47,650 >> أود أن تذهب من خلال مرة أخرى، وإلا إذا أنا 973 00:44:47,650 --> 00:44:51,190 لا تجعل / العثور على أي أخطاء يمكنني ثم تختتم في الكمبيوتر، نعم، 974 00:44:51,190 --> 00:44:51,980 نحن على ما يرام. 975 00:44:51,980 --> 00:44:54,850 حتى واحد واثنين، واثنين و ثلاثة، ثلاثة وأربعة. 976 00:44:54,850 --> 00:44:58,030 الآن أستطيع أن أقول بشكل قاطع هذا هو فرزها، لأنني إجراء أية تغييرات. 977 00:44:58,030 --> 00:45:01,940 الآن سيكون خطأ وفقط أحمق لو كنت، الكمبيوتر، 978 00:45:01,940 --> 00:45:05,640 سألت هذه الأسئلة نفسها مرة أخرى تتوقع إجابات مختلفة. 979 00:45:05,640 --> 00:45:07,110 لا ينبغي أن يحدث. 980 00:45:07,110 --> 00:45:08,600 >> وحتى الآن يتم فرز القائمة. 981 00:45:08,600 --> 00:45:12,630 للأسف، تشغيل وقت وN أيضا تربيع هذه الخوارزمية. 982 00:45:12,630 --> 00:45:13,130 لماذا؟ 983 00:45:13,130 --> 00:45:19,520 لأن لديك أرقام ن، وفي أسوأ حال كان لديك لنقل أعداد ن 984 00:45:19,520 --> 00:45:23,637 ن مرات لأنه لديك على الاستمرار العودة إلى تحقق وربما إصلاح 985 00:45:23,637 --> 00:45:24,220 هذه الأرقام. 986 00:45:24,220 --> 00:45:26,280 ويمكننا أن نفعل أكثر تحليل رسمي أيضا. 987 00:45:26,280 --> 00:45:29,530 >> لذلك هذا هو كل شيء أن أقول لقد اتخذنا ثلاثة مناهج مختلفة، واحدة 988 00:45:29,530 --> 00:45:32,210 منهم بديهية فورا قبالة الخفافيش من بن 989 00:45:32,210 --> 00:45:35,170 إلى بلدي الإدراج المقترح الفرز لهذا واحد 990 00:45:35,170 --> 00:45:38,540 أين أنت نوع من فقدان البصر الغابة للأشجار في البداية. 991 00:45:38,540 --> 00:45:41,760 ولكن بعد ذلك إذا كنت تأخذ خطوة إلى الوراء، فويلا، لقد حددت فكرة الفرز. 992 00:45:41,760 --> 00:45:43,824 لذلك هذا هو، أجرؤ على القول، مستوى أدنى ربما 993 00:45:43,824 --> 00:45:45,740 من بعض الأشخاص الذين لا الخوارزميات، ولكن دعونا 994 00:45:45,740 --> 00:45:48,550 نرى ما اذا كنا لا يمكن تصور هذه عن طريق هذا. 995 00:45:48,550 --> 00:45:51,450 >> لذلك هذا هو بعض لطيفة البرامج التي شخص 996 00:45:51,450 --> 00:45:56,110 كتب باستخدام قضبان الملونة هذا الذهاب إلى القيام بما يلي بالنسبة لنا. 997 00:45:56,110 --> 00:45:57,736 كل من هذه القضبان يمثل عددا. 998 00:45:57,736 --> 00:46:00,026 أطول شريط، وأكبر عدد وأصغر شريط، 999 00:46:00,026 --> 00:46:00,990 أصغر رقم. 1000 00:46:00,990 --> 00:46:05,880 حتى من الناحية المثالية نريد الهرم لطيفة حيث يبدأ صغيرا ويحصل كبيرة، 1001 00:46:05,880 --> 00:46:08,330 وهذا يعني أن يتم فرز هذه القضبان. 1002 00:46:08,330 --> 00:46:11,200 لذلك أنا ذاهب إلى المضي قدما واختيار، على سبيل المثال، خوارزمية بن ل 1003 00:46:11,200 --> 00:46:13,990 first-- نوع الاختيار. 1004 00:46:13,990 --> 00:46:16,220 >> وتلاحظ ما تقوم به. 1005 00:46:16,220 --> 00:46:18,670 الطريقة التي اخترتها لل تصور هذه الخوارزمية 1006 00:46:18,670 --> 00:46:22,090 غير أنه، مثلما كنت المشي من خلال قائمتي، 1007 00:46:22,090 --> 00:46:24,710 هذا البرنامج هو المشي من خلال قائمتها للأرقام، 1008 00:46:24,710 --> 00:46:28,160 تسليط الضوء باللون الوردي كل الرقم الذي كان يبحث في. 1009 00:46:28,160 --> 00:46:32,360 وما هو على وشك أن يحدث الآن؟ 1010 00:46:32,360 --> 00:46:35,154 >> أصغر رقم أنا أو بن جدت فجأة 1011 00:46:35,154 --> 00:46:36,820 يحصل انتقل إلى بداية القائمة. 1012 00:46:36,820 --> 00:46:40,037 ولاحظ فعلوا نزع الرقم الذي كان هناك، 1013 00:46:40,037 --> 00:46:41,120 وهذا على ما يرام تماما. 1014 00:46:41,120 --> 00:46:42,600 أنا لم نصل إلى ذلك المستوى من التفصيل. 1015 00:46:42,600 --> 00:46:44,308 ولكن نحن بحاجة إلى وضع هذا العدد في مكان ما، 1016 00:46:44,308 --> 00:46:47,775 لذلك نحن مجرد نقله إلى بقعة المفتوحة التي تم إنشاؤها. 1017 00:46:47,775 --> 00:46:49,900 لذلك أنا ذاهب لتسريع هذه يصل، لأن خلاف ذلك 1018 00:46:49,900 --> 00:46:51,871 يصبح مملة جدا بسرعة. 1019 00:46:51,871 --> 00:46:55,800 1020 00:46:55,800 --> 00:46:58,600 الرسوم المتحركة speed-- هناك نذهب. 1021 00:46:58,600 --> 00:47:01,850 وحتى الآن نفس المبدأ كنت تطبيق، ولكنك 1022 00:47:01,850 --> 00:47:06,540 يمكن أن تبدأ في الشعور الخوارزمية، إذا كنت صح التعبير، أو ترى أنها أكثر قليلا بشكل واضح. 1023 00:47:06,540 --> 00:47:13,190 وهذه الخوارزمية لديه تأثير اختيار أصغر عنصر المقبل، 1024 00:47:13,190 --> 00:47:16,422 حتى وأنت تسير لبدء ل نرى ذلك تكثيف الناحية اليسرى. 1025 00:47:16,422 --> 00:47:19,130 وعلى كل التكرار، وأنا المقترح، فإنه لا أقل قليلا العمل. 1026 00:47:19,130 --> 00:47:21,921 فإنه ليس من الضروري أن يذهب كل في طريقه العودة إلى الطرف الأيسر من القائمة، 1027 00:47:21,921 --> 00:47:23,900 لأنه بالفعل يعرف يتم فرز تلك. 1028 00:47:23,900 --> 00:47:28,129 لذلك النوع من يشعر وكأنه انها تسريع، على الرغم من كل خطوة 1029 00:47:28,129 --> 00:47:29,420 أخذ نفس المقدار من الوقت. 1030 00:47:29,420 --> 00:47:31,600 هناك فقط عدد أقل من الخطوات المتبقية. 1031 00:47:31,600 --> 00:47:35,240 والآن يمكنك نوع من الشعور الخوارزمية تنظيف نهاية لها، 1032 00:47:35,240 --> 00:47:37,040 والواقع الآن هو فرزه. 1033 00:47:37,040 --> 00:47:41,620 >> لذلك الإدراج النوع هو كل ذلك. 1034 00:47:41,620 --> 00:47:43,600 أنا بحاجة إلى إعادة عشوائية-المصفوفة. 1035 00:47:43,600 --> 00:47:45,940 وتلاحظ يمكنني فقط الحفاظ التعشءه ذلك، 1036 00:47:45,940 --> 00:47:50,630 وسوف نحصل على شكل تقريبي ل نفس النهج، إدراج النوع. 1037 00:47:50,630 --> 00:47:55,050 اسمحوا لي أن تبطئ خطاها إلى هنا. 1038 00:47:55,050 --> 00:47:56,915 دعونا نبدأ أن أكثر. 1039 00:47:56,915 --> 00:47:57,414 توقف. 1040 00:47:57,414 --> 00:48:00,662 1041 00:48:00,662 --> 00:48:02,410 >> دعونا تخطي الأربعة. 1042 00:48:02,410 --> 00:48:03,200 هناك نذهب. 1043 00:48:03,200 --> 00:48:04,190 بطريقة عشوائية أنها مجموعة. 1044 00:48:04,190 --> 00:48:05,555 وهنا نحن go-- الإدراج الفرز. 1045 00:48:05,555 --> 00:48:10,260 1046 00:48:10,260 --> 00:48:12,800 لعب. 1047 00:48:12,800 --> 00:48:17,280 لاحظ أنه يتعامل مع كل العنصر أنه واجه على الفور، 1048 00:48:17,280 --> 00:48:20,282 ولكن إذا كان ينتمي في والخطأ إشعار مكان 1049 00:48:20,282 --> 00:48:21,740 كل من العمل الذي يجب أن يحدث. 1050 00:48:21,740 --> 00:48:24,700 علينا أن نحافظ على تحويل المزيد والمزيد من العناصر لجعل الغرفة 1051 00:48:24,700 --> 00:48:27,340 لواحد ونحن نريد أن نضع في المكان. 1052 00:48:27,340 --> 00:48:30,740 >> لذلك نحن نركز على الطرف الأيسر من القائمة فقط. 1053 00:48:30,740 --> 00:48:34,460 لاحظ أننا لم حتى بدا at-- نحن لم سلط عليها الضوء في أي شيء وردي 1054 00:48:34,460 --> 00:48:35,610 إلى اليمين. 1055 00:48:35,610 --> 00:48:38,180 نحن فقط التعامل مع المشاكل ونحن نمضي، 1056 00:48:38,180 --> 00:48:40,430 ولكننا خلق الكثير من العمل من أجل أنفسنا لا يزال. 1057 00:48:40,430 --> 00:48:44,410 وحتى إذا كنا إسراع بهذا، الآن للذهاب إلى الانتهاء، 1058 00:48:44,410 --> 00:48:46,210 لديها شعورا مختلفا لأنه في الواقع. 1059 00:48:46,210 --> 00:48:50,150 انها مجرد التركيز على الطرف الأيسر ولكن القيام بمزيد من العمل أقل قدر needed-- 1060 00:48:50,150 --> 00:48:53,230 نوع من الأشياء تمهيد على، وتحديد الأشياء، 1061 00:48:53,230 --> 00:48:58,350 لكن التعامل في نهاية المطاف مع كل عنصر واحد في وقت واحد 1062 00:48:58,350 --> 00:49:07,740 حتى نصل الى the-- جيدا، ونحن نعلم جميعا كيف أن هذا سوف ينتهي، 1063 00:49:07,740 --> 00:49:09,700 لذلك فمن مخيب قليلا ربما. 1064 00:49:09,700 --> 00:49:12,830 >> لكن القائمة في end-- spoiler-- سوف يتم فرزها. 1065 00:49:12,830 --> 00:49:15,300 لذلك دعونا ننظر في واحد واحد آخر. 1066 00:49:15,300 --> 00:49:16,840 لا يمكننا تخطي ذلك الآن. 1067 00:49:16,840 --> 00:49:18,000 كدنا نصل. 1068 00:49:18,000 --> 00:49:19,980 اثنين للذهاب، واحدة للذهاب. 1069 00:49:19,980 --> 00:49:22,680 وفويلا. 1070 00:49:22,680 --> 00:49:23,450 ممتاز. 1071 00:49:23,450 --> 00:49:27,220 >> حتى الآن دعونا نفعل واحدة واحدة الماضي، إعادة العشوائي مع نوع فقاعة. 1072 00:49:27,220 --> 00:49:31,690 ويلاحظ هنا، وخاصة إذا أنا بطيء عليه أسفل، وهذا لا تبقي الإنقضاض من خلال. 1073 00:49:31,690 --> 00:49:36,830 ولكن لاحظ أنه يجعل من مجرد زوجيا نوع comparisons-- الحلول المحلية. 1074 00:49:36,830 --> 00:49:39,050 ولكن بمجرد أن نصل إلى في نهاية القائمة باللون الوردي، 1075 00:49:39,050 --> 00:49:40,690 ما يحدث لدينا أن يحدث مرة أخرى؟ 1076 00:49:40,690 --> 00:49:44,539 1077 00:49:44,539 --> 00:49:46,830 نعم، انها ستكون لدينا ل البدء من جديد، لأنه فقط 1078 00:49:46,830 --> 00:49:49,870 الأخطاء البشرى ثابتة. 1079 00:49:49,870 --> 00:49:53,120 والتي قد يكشف بعد عن الآخرين. 1080 00:49:53,120 --> 00:49:58,950 وحتى إذا كنت تسريع هذا الأمر، عليك نرى أنه، بقدر ما يوحي الاسم، 1081 00:49:58,950 --> 00:50:01,870 أصغر elements-- أو بالأحرى، وelements-- أكبر بدأت 1082 00:50:01,870 --> 00:50:03,740 إلى فقاعة تصل إلى أعلى، إذا صح التعبير. 1083 00:50:03,740 --> 00:50:07,380 والعناصر الأصغر بدأت فقاعة أسفل إلى اليسار. 1084 00:50:07,380 --> 00:50:10,780 والواقع، أن هذا النوع من المؤثرات البصرية أيضا. 1085 00:50:10,780 --> 00:50:17,150 وحتى هذا سوف ينتهي الانتهاء بطريقة مماثلة جدا، جدا. 1086 00:50:17,150 --> 00:50:19,160 >> ليس لدينا ليسكن على هذا واحد بعينه. 1087 00:50:19,160 --> 00:50:21,010 اسمحوا لي أن فتح هذا الآن، أيضا. 1088 00:50:21,010 --> 00:50:24,040 هناك عدد قليل من خوارزميات الفرز أخرى في العالم، وعدد قليل منها 1089 00:50:24,040 --> 00:50:25,580 يتم التقاطها هنا. 1090 00:50:25,580 --> 00:50:29,960 وخصوصا للمتعلمين الذين ليسوا بالضرورة البصرية أو الرياضية، 1091 00:50:29,960 --> 00:50:31,930 كما فعلنا من قبل، نستطيع أيضا القيام بذلك audially 1092 00:50:31,930 --> 00:50:34,210 إذا كان لنا أن ربط الصوت مع هذا. 1093 00:50:34,210 --> 00:50:36,990 وفقط من أجل المتعة، وهنا بعض خوارزميات مختلفة، 1094 00:50:36,990 --> 00:50:40,950 واحد منهم على وجه الخصوص كنت الذهاب يسمى إشعار "دمج النوع". 1095 00:50:40,950 --> 00:50:43,250 >> هو في الواقع متعصبون لجوهر أفضل الخوارزمية، 1096 00:50:43,250 --> 00:50:45,860 مثل أن دمج النوع، واحدة من تلك التي على وشك أن نرى، 1097 00:50:45,860 --> 00:50:49,170 ليس ترتيب ن المربعة. 1098 00:50:49,170 --> 00:50:57,280 انها على ترتيب n مرة سجل ن، الذي هو في الواقع أصغر، وبالتالي 1099 00:50:57,280 --> 00:50:58,940 أسرع من هؤلاء الثلاثة الأخرى. 1100 00:50:58,940 --> 00:51:00,670 وهناك اثنين آخرين سخيفة تلك التي سنرى. 1101 00:51:00,670 --> 00:51:01,933 >> حتى هنا نذهب مع بعض الصوت. 1102 00:51:01,933 --> 00:51:06,620 1103 00:51:06,620 --> 00:51:10,490 هذا هو ترتيب بالإدراج، لذلك مرة أخرى انها مجرد التعامل مع العناصر 1104 00:51:10,490 --> 00:51:13,420 كما أنها تأتي. 1105 00:51:13,420 --> 00:51:17,180 هذا هو فقاعة النوع، لذلك فمن معتبرة إياها أزواج في وقت واحد. 1106 00:51:17,180 --> 00:51:22,030 1107 00:51:22,030 --> 00:51:24,490 ومرة أخرى، أكبر عناصر وظهرت على السطح تصل إلى أعلى. 1108 00:51:24,490 --> 00:51:38,098 1109 00:51:38,098 --> 00:51:41,710 >> اختيار المقبل حتى الفرز. 1110 00:51:41,710 --> 00:51:45,420 هذا هو خوارزمية بن، حيث مرة أخرى انه اختيار تكراري 1111 00:51:45,420 --> 00:51:46,843 في اليوم التالي أصغر عنصر. 1112 00:51:46,843 --> 00:51:49,801 1113 00:51:49,801 --> 00:51:53,900 ومرة أخرى، الآن يمكنك سماع حقا أن انها تسريع ولكن فقط بقدر ما 1114 00:51:53,900 --> 00:51:58,230 كما يفعل أقل وأقل العمل على كل التكرار. 1115 00:51:58,230 --> 00:52:04,170 هذا هو أسرع واحد، ودمج النوع، وهو فرز مجموعات من أرقام 1116 00:52:04,170 --> 00:52:05,971 معا ومن ثم الجمع بينهما. 1117 00:52:05,971 --> 00:52:07,720 حتى look-- اليسار يتم فرز نصف بالفعل. 1118 00:52:07,720 --> 00:52:14,165 >> الآن انها فرز النصف الأيمن، و الآن انها سوف الجمع بينهما في واحد. 1119 00:52:14,165 --> 00:52:19,160 وهذا هو ما يسمى "غنوم النوع." 1120 00:52:19,160 --> 00:52:23,460 ويمكنك نوع من يرى أن انها تسير ذهابا وإيابا، 1121 00:52:23,460 --> 00:52:27,950 تحديد العمل هنا قليلا و هناك قبل أن يشرع في عمل جديد. 1122 00:52:27,950 --> 00:52:32,900 1123 00:52:32,900 --> 00:52:33,692 وهذا كل شيء. 1124 00:52:33,692 --> 00:52:36,400 هناك نوع آخر، وهو حقا فقط للأغراض الأكاديمية، 1125 00:52:36,400 --> 00:52:40,980 ودعا "نوع من الغباء"، والذي يأخذ البيانات الخاصة بك، يفرز بشكل عشوائي، 1126 00:52:40,980 --> 00:52:43,350 ومن ثم يتحقق إذا تم فرزه. 1127 00:52:43,350 --> 00:52:47,880 وإذا لم يكن، فإنه re-يفرز ذلك عشوائيا، يتحقق إذا هو فرزه، 1128 00:52:47,880 --> 00:52:49,440 وإذا لم يكرر. 1129 00:52:49,440 --> 00:52:52,660 ونظريا، احتماليا سيكتمل، 1130 00:52:52,660 --> 00:52:54,140 ولكن بعد قدرا كبيرا من الوقت. 1131 00:52:54,140 --> 00:52:56,930 انها ليست أكثر كفاءة الخوارزميات. 1132 00:52:56,930 --> 00:53:02,550 لذلك أي أسئلة على تلك خوارزميات أو أي شيء خاصة 1133 00:53:02,550 --> 00:53:04,720 المرتبطة هناك، أيضا؟ 1134 00:53:04,720 --> 00:53:09,430 >> حسنا، دعونا ندف الآن باستثناء ما كل هذه الخطوط هي التي كنت رسم 1135 00:53:09,430 --> 00:53:15,090 وما أفترض الكمبيوتر يمكن القيام به تحت غطاء محرك السيارة. 1136 00:53:15,090 --> 00:53:18,650 أنا أزعم أن كل هذه الأرقام وأظل drawing-- ما يحتاجونه للوصول 1137 00:53:18,650 --> 00:53:21,330 تخزينها في مكان ما في الذاكرة. 1138 00:53:21,330 --> 00:53:24,130 سنقوم نتخلص من هذا الرجل الآن، أيضا. 1139 00:53:24,130 --> 00:53:30,110 >> حتى قطعة من الذاكرة في computer-- ذلك RAM DIMM غير 1140 00:53:30,110 --> 00:53:35,480 ما بحثنا عن أمس، مزدوج ذاكرة مضمنة module-- يشبه هذا. 1141 00:53:35,480 --> 00:53:39,370 ولكل من هذه الرقائق السوداء الصغيرة هو بعض عدد من وحدات البايت، وعادة. 1142 00:53:39,370 --> 00:53:44,380 ثم دبابيس الذهب هي مثل الأسلاك التي توصيله إلى جهاز الكمبيوتر، 1143 00:53:44,380 --> 00:53:47,521 ومجلس السيليكون الأخضر هو فقط ما يبقي كل شيء معا. 1144 00:53:47,521 --> 00:53:48,770 فماذا يعني هذا حقا؟ 1145 00:53:48,770 --> 00:53:53,180 إذا أنا نوع من رسم هذه الصورة نفسها، دعونا نفترض لبساطة 1146 00:53:53,180 --> 00:53:55,280 أن هذا DIMM، مزدوج وحدة الذاكرة المضمنة، 1147 00:53:55,280 --> 00:54:00,530 هو واحد غيغا بايت من ذاكرة الوصول العشوائي، واحد غيغا بايت من الذاكرة، والذي هو كيف كثير من مجموع بايت؟ 1148 00:54:00,530 --> 00:54:02,100 واحد غيغا بايت المهم هو كم بايت؟ 1149 00:54:02,100 --> 00:54:04,860 1150 00:54:04,860 --> 00:54:06,030 اكثر من ذلك. 1151 00:54:06,030 --> 00:54:09,960 1124 هو كيلو، 1000. 1152 00:54:09,960 --> 00:54:11,730 ميجا هو مليون. 1153 00:54:11,730 --> 00:54:14,570 جيجا هو مليار. 1154 00:54:14,570 --> 00:54:15,070 >> أنا الكذب؟ 1155 00:54:15,070 --> 00:54:16,670 حتى يمكننا قراءة الملصق؟ 1156 00:54:16,670 --> 00:54:19,920 هذا هو في الواقع 128 غيغا بايت، لذلك هو أكثر من ذلك. 1157 00:54:19,920 --> 00:54:22,130 ولكننا سوف نتظاهر هذا هو واحد غيغا بايت فقط. 1158 00:54:22,130 --> 00:54:25,640 وهذا يعني هناك مليار بايت من الذاكرة المتاحة لي 1159 00:54:25,640 --> 00:54:29,770 أو 8000000000 بت، ولكن نحن في طريقنا في الحديث من حيث بايت الآن، 1160 00:54:29,770 --> 00:54:30,750 التحرك إلى الأمام. 1161 00:54:30,750 --> 00:54:36,330 >> ذلك ما يعنيه ذلك هو هذا بايت واحد، وهذا هو البايت آخر، 1162 00:54:36,330 --> 00:54:38,680 هذا هو البايت آخر، وإذا كنا نريد حقا 1163 00:54:38,680 --> 00:54:43,280 أن تكون محددة سيكون لدينا ل رسم قليلا مليار الساحات. 1164 00:54:43,280 --> 00:54:44,320 ولكن ماذا يعني ذلك؟ 1165 00:54:44,320 --> 00:54:46,420 حسنا، اسمحوا لي أن التكبير في على هذه الصورة. 1166 00:54:46,420 --> 00:54:50,900 إذا كنت قد حصلت على شيء يبدو مثل هذا الآن، وهذا هو أربعة بايت. 1167 00:54:50,900 --> 00:54:53,710 >> وحتى أتمكن من وضع أربعة أرقام هنا. 1168 00:54:53,710 --> 00:54:54,990 واحد إثنان ثلاثة أربعة. 1169 00:54:54,990 --> 00:55:00,170 أو يمكن أن أضع أربعة أحرف أو رموز. 1170 00:55:00,170 --> 00:55:02,620 "مهلا!" يمكن أن تذهب هناك حق، لأن كل من الحروف، 1171 00:55:02,620 --> 00:55:04,370 ناقشنا في وقت سابق، يمكن أن تكون ممثلة 1172 00:55:04,370 --> 00:55:06,650 مع ثمانية بت أو ASCII أو بايت. 1173 00:55:06,650 --> 00:55:09,370 لذلك وبعبارة أخرى، يمكنك وضع 8000000000 الأشياء داخل 1174 00:55:09,370 --> 00:55:11,137 من هذه عصا واحدة من الذاكرة. 1175 00:55:11,137 --> 00:55:14,345 الآن ماذا يعني ذلك لوضع الأمور مرة أخرى إلى العودة إلى الوراء في الذاكرة مثل هذا؟ 1176 00:55:14,345 --> 00:55:17,330 هذا هو ما مبرمج سيدعو الى "مجموعة". 1177 00:55:17,330 --> 00:55:21,250 في برنامج كمبيوتر، كنت لا أعتقد حول الأجهزة الأساسية، في حد ذاته. 1178 00:55:21,250 --> 00:55:24,427 كنت مجرد التفكير في نفسك وجود الوصول إلى ما مجموعه مليار بايت، 1179 00:55:24,427 --> 00:55:26,010 ويمكنك أي شيء تريده معها. 1180 00:55:26,010 --> 00:55:27,880 ولكن للراحة انها مفيدة بشكل عام 1181 00:55:27,880 --> 00:55:31,202 للحفاظ على حق الذاكرة الخاصة بك بجانب بعضها البعض مثل هذا. 1182 00:55:31,202 --> 00:55:33,660 حتى لو كنت التكبير في this-- لأننا بالتأكيد لن 1183 00:55:33,660 --> 00:55:39,310 رسم قليلا مليار squares-- دعونا نفترض أن هذا المنتدى يمثل 1184 00:55:39,310 --> 00:55:40,610 أن عصا الذاكرة الآن. 1185 00:55:40,610 --> 00:55:43,800 وأنا مجرد رسم ما يصل الى بلدي علامة ينتهي إعطائي هنا. 1186 00:55:43,800 --> 00:55:46,420 1187 00:55:46,420 --> 00:55:52,300 حتى الآن لدينا عصا من الذاكرة على متن الطائرة 1188 00:55:52,300 --> 00:55:56,400 وهذا ما حصل واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، 1189 00:55:56,400 --> 00:56:01,130 seven-- حتى 42 بايت الذاكرة على مجموعه الشاشة. 1190 00:56:01,130 --> 00:56:01,630 شكرا. 1191 00:56:01,630 --> 00:56:02,838 نعم، فعلت بلدي الحساب حق. 1192 00:56:02,838 --> 00:56:05,120 حتى 42 بايت من الذاكرة هنا. 1193 00:56:05,120 --> 00:56:06,660 فماذا يعني ذلك في الواقع؟ 1194 00:56:06,660 --> 00:56:09,830 حسنا، وهو مبرمج كمبيوتر لو فعلا عموما 1195 00:56:09,830 --> 00:56:12,450 التفكير في هذه الذاكرة كما عنونة. 1196 00:56:12,450 --> 00:56:16,630 وبعبارة أخرى، كل واحد من هؤلاء مواقع في الذاكرة، في الأجهزة، 1197 00:56:16,630 --> 00:56:18,030 لديه عنوان فريد. 1198 00:56:18,030 --> 00:56:22,020 >> انها ليست معقدة كما واحدة براتل مربع، كامبريدج، ماساشوستس، 02138. 1199 00:56:22,020 --> 00:56:23,830 بدلا من ذلك، انها مجرد عدد. 1200 00:56:23,830 --> 00:56:27,930 هذا هو بايت الرقم صفر، وهذا هو واحد، وهذا هو اثنين، وهذا هو ثلاثة، 1201 00:56:27,930 --> 00:56:30,327 وهذا هو 41. 1202 00:56:30,327 --> 00:56:30,910 انتظر دقيقة. 1203 00:56:30,910 --> 00:56:32,510 فكرت قلت 42 قبل لحظة. 1204 00:56:32,510 --> 00:56:35,050 1205 00:56:35,050 --> 00:56:37,772 أنا بدأت العد من الصفر، ذلك أن الصحيح في الواقع. 1206 00:56:37,772 --> 00:56:40,980 الآن ليس لدينا لاستدراجه في الواقع على شكل شبكة، وإذا كنت استدراجه كشبكة 1207 00:56:40,980 --> 00:56:43,520 أعتقد أن الأمور في الواقع الحصول على مضللة بعض الشيء. 1208 00:56:43,520 --> 00:56:46,650 ما من شأنه مبرمج، في عقله أو عقلها الخاص، 1209 00:56:46,650 --> 00:56:50,310 أعتقد عموما من هذا الذاكرة كما هو تماما مثل الشريط، 1210 00:56:50,310 --> 00:56:53,340 مثل قطعة من اخفاء الشريط الذي يذهب فقط وإلى الأبد 1211 00:56:53,340 --> 00:56:54,980 أو حتى نفاد الذاكرة. 1212 00:56:54,980 --> 00:56:59,200 ولذلك فإن الطريقة الأكثر شيوعا لرسم ومجرد التفكير في الذاكرة 1213 00:56:59,200 --> 00:57:03,710 سوف يكون هذا هو صفر بايت، واحد، اثنان، ثلاثة، ثم نقطة، نقطة، نقطة. 1214 00:57:03,710 --> 00:57:07,650 وكان لديك 42 هذه بايت الكلي، حتى على الرغم من جسديا قد فعلا 1215 00:57:07,650 --> 00:57:09,480 يكون شيئا أكثر من هذا القبيل. 1216 00:57:09,480 --> 00:57:12,850 >> لذلك إذا كنت تعتقد الآن من الخاصة بك الذاكرة عن هذا، تماما مثل الشريط، 1217 00:57:12,850 --> 00:57:17,640 هذا هو ما مبرمج جديد سيدعو مجموعة من الذاكرة. 1218 00:57:17,640 --> 00:57:20,660 وعندما تريد تخزين الواقع شيء ما في ذاكرة جهاز الكمبيوتر، 1219 00:57:20,660 --> 00:57:23,290 كنت عادة تفعل أشياء مخزن ، ظهر إلى ظهر إلى ظهر إلى ظهر. 1220 00:57:23,290 --> 00:57:25,010 لذلك كنا نتحدث عن الأرقام. 1221 00:57:25,010 --> 00:57:30,880 وعندما أردت أن حل المشاكل مثل أربعة، واحد، ثلاثة، اثنان، 1222 00:57:30,880 --> 00:57:33,820 على الرغم من أنني كنت مجرد رسم فقط الأرقام أربعة، واحد، ثلاثة، 1223 00:57:33,820 --> 00:57:39,490 اثنين على متن الطائرة، من شأنه الكمبيوتر حقا هذا الإعداد في الذاكرة. 1224 00:57:39,490 --> 00:57:43,347 >> وماذا سيكون بجانب اثنين في ذاكرة الكمبيوتر؟ 1225 00:57:43,347 --> 00:57:44,680 حسنا، ليس هناك إجابة على ذلك. 1226 00:57:44,680 --> 00:57:45,770 نحن لا نعرف حقا. 1227 00:57:45,770 --> 00:57:48,200 وطالما أن الكمبيوتر لا حاجة إليها، 1228 00:57:48,200 --> 00:57:51,440 لم يكن لديك لرعاية ما هو القادم إلى أرقام فإنه لا يهتمون. 1229 00:57:51,440 --> 00:57:55,130 وعندما قلت في وقت سابق ان الكمبيوتر يمكن أن ننظر فقط في عنوان واحد في وقت واحد، 1230 00:57:55,130 --> 00:57:56,170 هذا هو نوع من السبب. 1231 00:57:56,170 --> 00:57:59,490 >> لا يختلف رقما قياسيا لاعب ورأس القراءة 1232 00:57:59,490 --> 00:58:03,030 القدرة على النظر في بعض فقط الأخدود في سجل المدرسة القديمة البدني 1233 00:58:03,030 --> 00:58:06,500 في وقت واحد، وبالمثل يمكن لجهاز الكمبيوتر بفضل 1234 00:58:06,500 --> 00:58:09,810 إلى وحدة المعالجة المركزية، ولها مجموعة التعليمات إنتل، 1235 00:58:09,810 --> 00:58:12,480 بين الذين تعليمات قراءة من الذاكرة 1236 00:58:12,480 --> 00:58:15,590 أو حفظ لmemory-- ل الكمبيوتر يمكن أن ننظر فقط 1237 00:58:15,590 --> 00:58:19,210 في مكان واحد في time-- أحيانا مزيجا منها، 1238 00:58:19,210 --> 00:58:21,770 ولكن الموقع في الحقيقة مجرد واحد في وقت واحد. 1239 00:58:21,770 --> 00:58:24,770 حتى عندما كنا نفعل هذه الخوارزميات المختلفة، 1240 00:58:24,770 --> 00:58:28,110 أنا لست مجرد الكتابة في vacuum-- أربعة، واحد، ثلاثة، اثنان. 1241 00:58:28,110 --> 00:58:30,849 هذه الأرقام ينتمون فعلا في مكان ما المادي في الذاكرة. 1242 00:58:30,849 --> 00:58:32,890 لذلك هناك القليل الصغير الترانزستورات أو نوع 1243 00:58:32,890 --> 00:58:35,840 من الالكترونيات تحت غطاء تخزين هذه القيم. 1244 00:58:35,840 --> 00:58:40,460 >> وبشكل إجمالي، كم من البتات تشارك في الوقت الراهن، لمجرد أن يكون واضحا؟ 1245 00:58:40,460 --> 00:58:45,580 لذلك هذا هو أربعة بايت، أو الآن حان مجموعه 32 بت. 1246 00:58:45,580 --> 00:58:49,280 لذلك هناك في الواقع 32 الأصفار و منها تتكون هذه الأمور الأربعة. 1247 00:58:49,280 --> 00:58:52,070 هناك أكثر حتى هنا، ولكن مرة أخرى نحن لا يهمني ذلك. 1248 00:58:52,070 --> 00:58:55,120 >> لذلك اسمحوا الآن نسأل أخرى السؤال باستخدام الذاكرة، 1249 00:58:55,120 --> 00:58:57,519 لأنه في نهاية اليوم في التباين. 1250 00:58:57,519 --> 00:59:00,310 بغض النظر عن ما يمكن أن تفعله مع على جهاز الكمبيوتر، في نهاية اليوم 1251 00:59:00,310 --> 00:59:02,560 الأجهزة لا تزال نفسه تحت غطاء محرك السيارة. 1252 00:59:02,560 --> 00:59:04,670 كيف يمكنني تخزين كلمة هنا؟ 1253 00:59:04,670 --> 00:59:09,710 حسنا، كلمة في الكمبيوتر مثل "مهلا!" سيتم تخزينها فقط من هذا القبيل. 1254 00:59:09,710 --> 00:59:12,300 وإذا أردت أطول كلمة، يمكنك ببساطة 1255 00:59:12,300 --> 00:59:19,120 الكتابة التي وأقول شيئا مثل "مرحبا" وتخزين ذلك هنا. 1256 00:59:19,120 --> 00:59:23,930 >> وحتى هنا، أيضا، هذا التلامس هو في الواقع ميزة، 1257 00:59:23,930 --> 00:59:26,530 لأنه يمكن لجهاز الكمبيوتر فقط قراءتها من اليمين إلى اليسار. 1258 00:59:26,530 --> 00:59:28,680 ولكن هنا سؤال. 1259 00:59:28,680 --> 00:59:33,480 في سياق هذه الكلمة، ح-ل-ه-ل-س، تعجب، 1260 00:59:33,480 --> 00:59:38,740 كيف يمكن معرفة الكمبيوتر حيث كلمة تبدأ وأين تنتهي الكلمة؟ 1261 00:59:38,740 --> 00:59:41,690 1262 00:59:41,690 --> 00:59:43,800 في سياق الأرقام، كيف يمكن للكمبيوتر 1263 00:59:43,800 --> 00:59:48,396 أعرف كم من الوقت تسلسل الأرقام هي أو أين يبدأ ذلك؟ 1264 00:59:48,396 --> 00:59:50,270 حسنا، فإنه يتحول out-- ونحن لن نذهب كثيرا 1265 00:59:50,270 --> 00:59:54,970 إلى هذا المستوى من detail-- أجهزة الكمبيوتر تتحرك الاشياء حولها في الذاكرة 1266 00:59:54,970 --> 00:59:57,800 حرفيا عن طريق هذه العناوين. 1267 00:59:57,800 --> 01:00:02,080 حتى في الكمبيوتر، وإذا كنت كتابة التعليمات البرمجية لتخزين الأشياء 1268 01:00:02,080 --> 01:00:05,800 مثل الكلمات، ما كنت به حقا هو كتابة 1269 01:00:05,800 --> 01:00:11,320 التعبيرات التي نتذكر فيها في ذاكرة الكمبيوتر هذه الكلمات. 1270 01:00:11,320 --> 01:00:14,370 لذلك اسمحوا لي أن تفعل جدا، مثال بسيط جدا. 1271 01:00:14,370 --> 01:00:18,260 >> انا ذاهب الى المضي قدما و فتح برنامج نصي، 1272 01:00:18,260 --> 01:00:20,330 وانا ذاهب الى خلق ملف يسمى hello.c. 1273 01:00:20,330 --> 01:00:22,849 معظم هذه المعلومات نحن لن أخوض في بقدر كبير من التفصيل، 1274 01:00:22,849 --> 01:00:25,140 ولكن انا ذاهب لكتابة برنامج في تلك اللغة نفسها، 1275 01:00:25,140 --> 01:00:31,140 C. وهذا أبعد ما يكون أكثر ترهيبا، أنا أزعم، من الصفر، 1276 01:00:31,140 --> 01:00:32,490 لكنه مشابه جدا في الروح. 1277 01:00:32,490 --> 01:00:34,364 في الواقع، هذه مجعد braces-- يمكنك نوع من 1278 01:00:34,364 --> 01:00:37,820 التفكير في ما أنا فقط كما فعل هذا. 1279 01:00:37,820 --> 01:00:39,240 >> دعونا نفعل ذلك، في الواقع. 1280 01:00:39,240 --> 01:00:45,100 وعندما ينقر العلم الأخضر، اعمل كالآتي. 1281 01:00:45,100 --> 01:00:50,210 أريد أن طباعة "مرحبا". 1282 01:00:50,210 --> 01:00:51,500 لذلك هذا هو الآن شبة الكود. 1283 01:00:51,500 --> 01:00:53,000 انا من النوع طمس الخطوط. 1284 01:00:53,000 --> 01:00:56,750 في C، هذه اللغة أنا أتحدث حول، هذا الخط طباعة مرحبا 1285 01:00:56,750 --> 01:01:01,940 يصبح في الواقع "printf" مع بعض الأقواس ومنقوطة. 1286 01:01:01,940 --> 01:01:03,480 >> ولكن انها نفس الفكرة بالضبط. 1287 01:01:03,480 --> 01:01:06,730 وهذا جدا سهل الاستعمال "عندما ينقر العلم الأخضر" يصبح 1288 01:01:06,730 --> 01:01:10,182 أكثر غامضة كثيرا "الفراغ الرئيسي كثافة العمليات." 1289 01:01:10,182 --> 01:01:12,890 وهذا في الحقيقة لا رسم الخرائط، لذلك أنا ذاهب لمجرد تجاهل ذلك. 1290 01:01:12,890 --> 01:01:17,210 لكن الأقواس المعقوفة هي مثل قطع اللغز المنحنية مثل هذا. 1291 01:01:17,210 --> 01:01:18,700 >> حتى تتمكن من نوع من التخمين. 1292 01:01:18,700 --> 01:01:22,357 حتى لو كنت قد برمجت لم يحدث من قبل، ماذا يعني هذا البرنامج ربما تفعل؟ 1293 01:01:22,357 --> 01:01:25,560 1294 01:01:25,560 --> 01:01:28,000 يطبع ربما مرحبا مع علامة تعجب. 1295 01:01:28,000 --> 01:01:29,150 >> لذلك دعونا نحاول ذلك. 1296 01:01:29,150 --> 01:01:30,800 أنا ذاهب لحفظه. 1297 01:01:30,800 --> 01:01:34,000 وهذا هو، مرة أخرى، جدا البيئة المدرسية القديمة. 1298 01:01:34,000 --> 01:01:35,420 لا أستطيع انقر، وأنا لا يمكن سحب. 1299 01:01:35,420 --> 01:01:36,910 ولا بد لي من كتابة الأوامر. 1300 01:01:36,910 --> 01:01:41,320 لذلك أريد أن تشغيل برنامج بلدي، لذلك وأود أن تفعل هذا، مثل hello.c. 1301 01:01:41,320 --> 01:01:42,292 هذا الملف ركضت. 1302 01:01:42,292 --> 01:01:43,500 ولكن مهلا، أنا في عداد المفقودين خطوة. 1303 01:01:43,500 --> 01:01:46,470 ما فعله نقوله هو ضروري خطوة للغة مثل C؟ 1304 01:01:46,470 --> 01:01:49,470 لقد كتبت للتو مصدر الرمز، ولكن ما الذي أحتاجه؟ 1305 01:01:49,470 --> 01:01:50,670 نعم، أنا بحاجة إلى مترجم. 1306 01:01:50,670 --> 01:01:57,670 لذلك على بلدي ماك هنا، ولدي برنامج يسمى دول مجلس التعاون الخليجي، GNU C مترجم، 1307 01:01:57,670 --> 01:02:03,990 والذي يسمح لي أن تفعل this-- بدوره قانون بلدي المصدر إلى، ونحن سوف يطلق عليه، 1308 01:02:03,990 --> 01:02:04,930 كود الآلة. 1309 01:02:04,930 --> 01:02:10,180 >> وأستطيع أن أرى ذلك، مرة أخرى، على النحو التالي، هذه 1310 01:02:10,180 --> 01:02:14,090 هي الآحاد والأصفار وأنا فقط التي تم إنشاؤها من شفرة المصدر الخاص بي، 1311 01:02:14,090 --> 01:02:15,730 كل من الآحاد والأصفار و. 1312 01:02:15,730 --> 01:02:17,770 وإذا كنت ترغب في تشغيل بلدي program-- يحدث 1313 01:02:17,770 --> 01:02:23,010 ليتم استدعاؤها a.out ل reasons-- التاريخية "مرحبا". 1314 01:02:23,010 --> 01:02:24,070 يمكنني تشغيله مرة أخرى. 1315 01:02:24,070 --> 01:02:25,690 اهلا اهلا اهلا. 1316 01:02:25,690 --> 01:02:27,430 ويبدو أن العمل. 1317 01:02:27,430 --> 01:02:31,000 >> ولكن هذا يعني في مكان ما في بلدي ذاكرة الكمبيوتر هي عبارة 1318 01:02:31,000 --> 01:02:35,279 ح-ه-ل-ل-س، تعجب. 1319 01:02:35,279 --> 01:02:38,070 وكما تبين، تماما كما جانبا، ما من شأنه كمبيوتر عادة 1320 01:02:38,070 --> 01:02:40,550 ذلك أنه يعرف أين تبدأ الامور وend-- انها 1321 01:02:40,550 --> 01:02:42,460 الذهاب لوضع رمز خاص هنا. 1322 01:02:42,460 --> 01:02:46,064 والاتفاقية هي لوضع الرقم صفر في نهاية الكلمة 1323 01:02:46,064 --> 01:02:48,230 حتى يتسنى لك معرفة أين ينتهي في الواقع، حتى يتسنى لك 1324 01:02:48,230 --> 01:02:52,750 لا تبقي طبع أكثر وأكثر شخصيات من كنت تنوي فعلا. 1325 01:02:52,750 --> 01:02:55,400 >> ولكن الوجبات الجاهزة هنا، حتى وإن كان هذا هو غامضة إلى حد ما، 1326 01:02:55,400 --> 01:02:58,140 غير أنه في نهاية المطاف بسيط نسبيا. 1327 01:02:58,140 --> 01:03:04,550 أعطيت لك نوعا من الشريط، فارغة الفضاء الذي يمكنك كتابة الرسائل. 1328 01:03:04,550 --> 01:03:07,150 لديك لمجرد أن يكون رمز خاص، مثل تعسفا 1329 01:03:07,150 --> 01:03:10,316 الرقم صفر، لوضع نهاية لل كلماتك بحيث يعرف الكمبيوتر، 1330 01:03:10,316 --> 01:03:13,410 أوه، يجب أن إيقاف الطباعة بعد أرى أن تعجب. 1331 01:03:13,410 --> 01:03:16,090 لأن الشيء القادم هناك هي قيمة ASCII من الصفر، 1332 01:03:16,090 --> 01:03:19,125 أو حرف خالية كما شخص ما من شأنه يطلق عليه. 1333 01:03:19,125 --> 01:03:21,500 ولكن هناك نوع من مشكلة هنا، ودعونا تعود مرة أخرى 1334 01:03:21,500 --> 01:03:23,320 إلى أرقام لحظة. 1335 01:03:23,320 --> 01:03:28,720 لنفترض أن أفعل، في الواقع، لدينا مجموعة من الأرقام، 1336 01:03:28,720 --> 01:03:30,730 ونفترض أن برنامج أنا أكتب هو 1337 01:03:30,730 --> 01:03:34,680 مثل كتاب الصف للمعلم والفصول الدراسية المعلمين. 1338 01:03:34,680 --> 01:03:38,720 وهذا البرنامج يسمح له أو لها لكتابة عشرات طلابهم 1339 01:03:38,720 --> 01:03:39,960 على الاختبارات. 1340 01:03:39,960 --> 01:03:43,750 ونفترض أن الطالب يحصل 100 في أول اختبار، وربما 1341 01:03:43,750 --> 01:03:49,920 مثل 80 على واحد القادم، ثم 75، ثم 90 في مسابقة الرابعة. 1342 01:03:49,920 --> 01:03:54,150 >> حتى في هذه النقطة في القصة، مجموعة ذات حجم الأربعة. 1343 01:03:54,150 --> 01:03:58,470 هناك المزيد من الاطلاق الذاكرة في الكمبيوتر، ولكن مجموعة، إذا جاز التعبير، 1344 01:03:58,470 --> 01:04:00,350 هي من الحجم الأربعة. 1345 01:04:00,350 --> 01:04:06,060 لنفترض الآن أن المعلم يريد تعيين مسابقة الخامسة إلى الفئة. 1346 01:04:06,060 --> 01:04:08,510 حسنا، واحدة من الأشياء التي كان أو أنها في طريقها إلى القيام به 1347 01:04:08,510 --> 01:04:10,650 هو الآن تخزين قيمة إضافية هنا. 1348 01:04:10,650 --> 01:04:15,490 ولكن إذا كان مجموعة من المعلمين لديها التي تم إنشاؤها في هذا البرنامج هو من حجم، 1349 01:04:15,490 --> 01:04:22,440 واحد من المشكلة مع مجموعة هو أن لا يمكنك فقط الحفاظ على إضافة إلى الذاكرة. 1350 01:04:22,440 --> 01:04:26,470 لأن ما إذا كان جزء آخر من البرنامج لديه كلمة "يا" هناك حق؟ 1351 01:04:26,470 --> 01:04:29,650 >> وبعبارة أخرى، يمكن أن ذاكرتي يكون استخدامها في أي شيء في هذا البرنامج. 1352 01:04:29,650 --> 01:04:33,250 وإذا مقدما أنا كتبته في، مهلا، أريد لإدخال أربع درجات المسابقة، 1353 01:04:33,250 --> 01:04:34,784 أنها قد تذهب هنا وهنا. 1354 01:04:34,784 --> 01:04:37,700 وإذا كنت فجأة غيرت رأيك في وقت لاحق، ويقول أريد مسابقة الخامسة 1355 01:04:37,700 --> 01:04:40,872 النتيجة، لا يمكنك فقط وضعه في أي مكان تريد، 1356 01:04:40,872 --> 01:04:42,580 لأن ما إذا كان هذا ويجري استخدام الذاكرة 1357 01:04:42,580 --> 01:04:45,990 عن شيء else-- بعض البرامج الأخرى أو بعض ميزة أخرى من البرنامج 1358 01:04:45,990 --> 01:04:46,910 ان كنت تستخدم؟ 1359 01:04:46,910 --> 01:04:50,650 ولذلك عليك أن تفكر مقدما كيف تريد لتخزين البيانات الخاصة بك، 1360 01:04:50,650 --> 01:04:54,480 لأنه الآن كنت قد رسمت نفسك في زاوية الرقمية. 1361 01:04:54,480 --> 01:04:57,280 >> حتى يمكن المعلم بدلا من ذلك يقول عند كتابة برنامج 1362 01:04:57,280 --> 01:04:59,360 لتخزين له أو لها الدرجات، وانت تعرف ماذا؟ 1363 01:04:59,360 --> 01:05:04,180 وانا ذاهب لطلب، عند كتابة برنامجي، 1364 01:05:04,180 --> 01:05:12,070 الذي أريد صفر، واحد، اثنان، ثلاثة، مجموع أربعة، خمسة، ستة، ثمانية درجات. 1365 01:05:12,070 --> 01:05:15,320 حتى واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، سبعة، ثمانية. 1366 01:05:15,320 --> 01:05:18,612 يمكن للمدرس أن ما يزيد قليلا عن تخصص الذاكرة عند الكتابة له أو لها برنامج 1367 01:05:18,612 --> 01:05:19,570 وأقول، أنت تعرف لماذا؟ 1368 01:05:19,570 --> 01:05:22,236 أنا أبدا لتعيين أكثر من ثماني مسابقات في الفصل الدراسي. 1369 01:05:22,236 --> 01:05:23,130 هذا مجرد مجنون. 1370 01:05:23,130 --> 01:05:24,470 أنا لن تخصيص ذلك. 1371 01:05:24,470 --> 01:05:28,270 ذلك أن هذه الطريقة هو أو هي لديه المرونة لعشرات مخزن طالب، 1372 01:05:28,270 --> 01:05:33,010 مثل 75، 90، وربما واحد إضافي حيث حصل الطالب رصيد إضافي و 105. 1373 01:05:33,010 --> 01:05:36,130 >> ولكن إذا كان المعلم أبدا يستخدم هذه المساحات الثلاث، 1374 01:05:36,130 --> 01:05:38,860 هناك على الوجبات الجاهزة بديهية هنا. 1375 01:05:38,860 --> 01:05:41,410 هو أو هي مجرد إضاعة الفضاء. 1376 01:05:41,410 --> 01:05:44,790 لذلك وبعبارة أخرى، هناك هذا المقايضة مشتركة في البرمجة 1377 01:05:44,790 --> 01:05:48,241 حيث يمكنك تخصيص إما بالضبط قدر الذاكرة كما تريد، 1378 01:05:48,241 --> 01:05:51,490 الاتجاه الصعودي الذي هو أنك السوبر efficient-- كنت عدم الإسراف 1379 01:05:51,490 --> 01:05:54,640 في all-- ولكن الجانب السلبي منها هو ما إذا غيرت رأيك عندما 1380 01:05:54,640 --> 01:05:58,780 باستخدام البرنامج الذي تريد تخزين المزيد من البيانات مما كنت أصلا. 1381 01:05:58,780 --> 01:06:03,030 >> ولذلك ربما يكون الحل هو، إذن، كتابة البرامج الخاصة بك في مثل هذه الطريقة 1382 01:06:03,030 --> 01:06:05,605 التي يستخدمونها المزيد من الذاكرة مما يحتاجون فعلا. 1383 01:06:05,605 --> 01:06:07,730 بهذه الطريقة أنت لن لتشغيل إلى هذه المشكلة، 1384 01:06:07,730 --> 01:06:09,730 ولكن كنت يجري الإسراف. 1385 01:06:09,730 --> 01:06:12,960 والمزيد من الذاكرة يستخدم البرنامج الخاص بك، كما ناقشنا أمس، وأقل 1386 01:06:12,960 --> 01:06:15,410 الذاكرة التي تتوفر لغيرها من البرامج، 1387 01:06:15,410 --> 01:06:18,790 وكلما قد يبطئ جهاز الكمبيوتر الخاص بك أسفل بسبب الذاكرة الظاهرية. 1388 01:06:18,790 --> 01:06:22,670 وبالتالي فإن الحل الأمثل قد يكون ماذا؟ 1389 01:06:22,670 --> 01:06:24,610 >> تحت تخصيص يبدو سيئا. 1390 01:06:24,610 --> 01:06:27,030 الإفراط في تخصيص يبدو سيئا. 1391 01:06:27,030 --> 01:06:31,120 وذلك ما قد يكون أفضل حل؟ 1392 01:06:31,120 --> 01:06:32,390 إعادة تخصيص. 1393 01:06:32,390 --> 01:06:33,590 تكون أكثر ديناميكية. 1394 01:06:33,590 --> 01:06:37,520 لا تجبر نفسك على اختيار بداهة، في البداية، ما تريد. 1395 01:06:37,520 --> 01:06:41,370 وبالتأكيد لا الإفراط في تخصيص، لئلا يكون الإسراف. 1396 01:06:41,370 --> 01:06:45,770 >> وذلك لتحقيق هذا الهدف، ونحن تحتاج إلى رمي هذه البنية البيانات، 1397 01:06:45,770 --> 01:06:48,100 إذا جاز التعبير، بعيدا. 1398 01:06:48,100 --> 01:06:51,080 وماذا في ذلك مبرمجا وعادة ما تستخدم 1399 01:06:51,080 --> 01:06:55,940 وما يسمى يست مجموعة ولكن قائمة مرتبطة. 1400 01:06:55,940 --> 01:07:00,860 وبعبارة أخرى، وقال انه أو انها سوف البدء في التفكير في ذاكرتهم 1401 01:07:00,860 --> 01:07:05,280 بأنها نوع من الشكل الذي كانوا يمكن رسم على النحو التالي. 1402 01:07:05,280 --> 01:07:08,520 إذا أريد لتخزين رقم واحد في وprogram-- لذلك فمن سبتمبر 1403 01:07:08,520 --> 01:07:12,600 لقد منحت طلابي مسابقة. انا اريد لتخزين مسابقة الأولى للطلاب، 1404 01:07:12,600 --> 01:07:16,220 وأنها حصلت على 100 على it-- أنا انا ذاهب الى طرح جهاز الكمبيوتر الخاص بي، 1405 01:07:16,220 --> 01:07:19,540 عن طريق برنامج عندي مكتوب لقطعة واحدة من الذاكرة. 1406 01:07:19,540 --> 01:07:22,570 وانا ذاهب لتخزين عدد 100 في ذلك، وهذا كل شيء. 1407 01:07:22,570 --> 01:07:24,820 >> بعد أسابيع ثم بضع عندما أحصل على بلدي مسابقة الثانية، 1408 01:07:24,820 --> 01:07:27,890 وحان الوقت لكتابة في ذلك 90٪، وانا ذاهب 1409 01:07:27,890 --> 01:07:32,129 أن تطلب من جهاز الكمبيوتر، مهلا، الكمبيوتر، يمكن أن لدي قطعة أخرى من الذاكرة؟ 1410 01:07:32,129 --> 01:07:34,170 انها سوف تعطيني هذا قطعة فارغة من الذاكرة. 1411 01:07:34,170 --> 01:07:39,370 أنا ذاهب لوضعها في عدد 90، ولكن في برنامجي بطريقة أو بأخرى أو other-- 1412 01:07:39,370 --> 01:07:42,100 ونحن لن تقلق بناء الجملة من أجل this-- أحتاج 1413 01:07:42,100 --> 01:07:44,430 إلى حد ما سلسلة هذه الأشياء معا. 1414 01:07:44,430 --> 01:07:47,430 وسوف سلسلة معا مع ما يشبه السهم هنا. 1415 01:07:47,430 --> 01:07:50,050 >> هذه المسابقة الثالثة التي تأتي، انا ذاهب الى القول، مهلا، الكمبيوتر، 1416 01:07:50,050 --> 01:07:51,680 تعطيني قطعة أخرى من الذاكرة. 1417 01:07:51,680 --> 01:07:54,660 وانا ذاهب الى اخماد مهما كان، مثل 75، 1418 01:07:54,660 --> 01:07:56,920 ولقد لسلسلة هذه معا الآن بطريقة أو بأخرى. 1419 01:07:56,920 --> 01:08:00,290 مسابقة الرابعة تأتي جنبا إلى جنب، وربما هذا هو في نهاية الفصل الدراسي. 1420 01:08:00,290 --> 01:08:03,140 وهذه النقطة برنامجي قد يكون استخدام الذاكرة 1421 01:08:03,140 --> 01:08:05,540 في كل مكان، في جميع أنحاء جسديا. 1422 01:08:05,540 --> 01:08:08,170 وذلك فقط لركلات، وأنا الذهاب إلى رسم هذا إيابا 1423 01:08:08,170 --> 01:08:11,260 quiz-- أنسى ما كان عليه. أنا أعتقد ربما 80 أو something-- 1424 01:08:11,260 --> 01:08:12,500 طريقة أكثر من هنا. 1425 01:08:12,500 --> 01:08:15,920 >> لكن لا بأس، لأن بالصور انا ذاهب الى رسم هذا الخط. 1426 01:08:15,920 --> 01:08:19,063 وبعبارة أخرى، في الواقع، في جهاز الكمبيوتر الخاص بك، 1427 01:08:19,063 --> 01:08:20,979 النتيجة الأولى قد ينتهي الأمر هنا لأنه 1428 01:08:20,979 --> 01:08:22,529 الحق في بداية الفصل الدراسي. 1429 01:08:22,529 --> 01:08:25,810 قد تنتهي المرحلة التالية هنا لأن قليلا من الوقت قد مر 1430 01:08:25,810 --> 01:08:27,210 والبرنامج يبقى قيد التشغيل. 1431 01:08:27,210 --> 01:08:30,060 النتيجة التالية، التي كانت 75، قد يكون أكثر من هنا. 1432 01:08:30,060 --> 01:08:33,420 والنتيجة الأخيرة قد تكون 80، والتي هي أكثر من هنا. 1433 01:08:33,420 --> 01:08:38,729 >> حتى في واقع الأمر، جسديا، وهذا قد يكون ما تبدو ذاكرة الكمبيوتر الخاص بك مثل. 1434 01:08:38,729 --> 01:08:41,569 ولكن هذه ليست عقلية مفيدة نموذج لمبرمج كمبيوتر. 1435 01:08:41,569 --> 01:08:44,649 لماذا يجب أن يهمك فيها هيك بياناتك ينتهي بهم المطاف؟ 1436 01:08:44,649 --> 01:08:46,200 كنت ترغب فقط لتخزين البيانات. 1437 01:08:46,200 --> 01:08:49,390 >> هذا هو نوع من مثل مناقشتنا في وقت سابق من رسم مكعب. 1438 01:08:49,390 --> 01:08:52,200 لماذا يهمني ما كانت الزاوية من المكعب 1439 01:08:52,200 --> 01:08:53,740 وكيف يجب أن تتحول لاستدراجه؟ 1440 01:08:53,740 --> 01:08:54,950 كنت ترغب فقط في المكعب. 1441 01:08:54,950 --> 01:08:57,359 وبالمثل هنا، فقط أريد أن كتاب الصف. 1442 01:08:57,359 --> 01:08:59,559 كنت ترغب فقط في التفكير في هذا كقائمة من الأرقام. 1443 01:08:59,559 --> 01:09:01,350 من يهتم كيف أنها تنفذ في الأجهزة؟ 1444 01:09:01,350 --> 01:09:05,180 >> لذا فإن التجريد الآن هي هذه الصورة هنا. 1445 01:09:05,180 --> 01:09:07,580 هذا هو قائمة مرتبطة، كما سيكون مبرمجا يطلق عليه، 1446 01:09:07,580 --> 01:09:10,640 بقدر ما لديك قائمة، من الواضح من الأرقام. 1447 01:09:10,640 --> 01:09:14,990 لكنها مرتبطة بالصور عن طريق هذه الأسهم، 1448 01:09:14,990 --> 01:09:18,510 وجميع هذه الأسهم are-- تحت غطاء محرك السيارة، إذا كنت غريبة، 1449 01:09:18,510 --> 01:09:23,210 نذكر أن لدينا الأجهزة الفعلي له عناوين صفر، واحد، اثنان، ثلاثة، أربعة. 1450 01:09:23,210 --> 01:09:28,465 كل هذه السهام هي أشبه خريطة أو الاتجاهات، حيث إن 90 أعرف، الآن 1451 01:09:28,465 --> 01:09:29,090 حصلت على الاعتماد. 1452 01:09:29,090 --> 01:09:31,750 >> صفر، واحد، اثنان، ثلاثة، أربعة، خمسة، ستة، سبعة. 1453 01:09:31,750 --> 01:09:35,640 يبدو أن 90 هو في ذاكرة عنوان الرقم سبعة. 1454 01:09:35,640 --> 01:09:38,460 كل هذه السهام هي هي مثل قصاصة صغيرة من الورق 1455 01:09:38,460 --> 01:09:42,439 وهذا ما يعطي توجيهات لل البرنامج الذي تقول اتبع هذه الخريطة 1456 01:09:42,439 --> 01:09:43,880 للوصول الى موقع سبعة. 1457 01:09:43,880 --> 01:09:46,680 وهناك سوف تجد نتيجة مسابقة الثانية الطالب. 1458 01:09:46,680 --> 01:09:52,100 وفي الوقت نفسه، 75-- إذا ما زلت هذا، هذا هو سبعة، ثمانية، تسعة، 10، 11، 12، 1459 01:09:52,100 --> 01:09:54,240 13، 14، 15. 1460 01:09:54,240 --> 01:09:59,080 >> هذا السهم الآخر يمثل فقط خريطة لموقع الذاكرة 15. 1461 01:09:59,080 --> 01:10:02,550 ولكن مرة أخرى، مبرمج لا عادة لا يهمني هذا المستوى من التفصيل. 1462 01:10:02,550 --> 01:10:05,530 وفي معظم كل البرمجة لغة اليوم، مبرمج 1463 01:10:05,530 --> 01:10:10,490 لن تعرف حتى مكان في الذاكرة هذه الأرقام هي في الواقع. 1464 01:10:10,490 --> 01:10:14,830 كل ديه أو لديها إلى يهمني هو أنها ترتبط بطريقة أو بأخرى معا 1465 01:10:14,830 --> 01:10:18,390 في بنية بيانات من هذا القبيل. 1466 01:10:18,390 --> 01:10:21,580 >> ولكن تبين عدم للحصول على التقنية أيضا. 1467 01:10:21,580 --> 01:10:27,430 ولكن فقط لأننا يمكن ربما تحمل أن يكون هذا النقاش هنا، 1468 01:10:27,430 --> 01:10:33,630 لنفترض أن نعيد النظر هذه المسألة هنا من صفيف. 1469 01:10:33,630 --> 01:10:35,780 دعونا نرى ما اذا كنا نأسف الذهاب هنا. 1470 01:10:35,780 --> 01:10:42,950 هذه هي 100، 90، 75، و 80. 1471 01:10:42,950 --> 01:10:44,980 >> اسمحوا لي أن فترة وجيزة هذا الادعاء. 1472 01:10:44,980 --> 01:10:48,980 هذا هو مجموعة، ومرة ​​أخرى، السمة البارزة لمجموعة 1473 01:10:48,980 --> 01:10:52,400 غير أن جميع البيانات الخاصة بك عاد ل العودة إلى الوراء في memory-- حرفيا 1474 01:10:52,400 --> 01:10:56,830 بايت واحد أو ربما أربعة بايت، بعض عدد محدد من وحدات البايت بعيدا. 1475 01:10:56,830 --> 01:11:00,710 في قائمة مرتبطة، ونحن قد رسم مثل هذا، تحت غطاء محرك السيارة الذي 1476 01:11:00,710 --> 01:11:02,000 يعرف أين هذه الأشياء هو؟ 1477 01:11:02,000 --> 01:11:03,630 بل لا تحتاج إلى تدفق مثل هذا. 1478 01:11:03,630 --> 01:11:06,050 بعض البيانات يمكن أن يكون إلى اليسار هناك. 1479 01:11:06,050 --> 01:11:07,530 حتى أنك لا تعرف. 1480 01:11:07,530 --> 01:11:15,430 >> وذلك مع مجموعة، لديك ميزة يعرف الوصول العشوائي. 1481 01:11:15,430 --> 01:11:20,570 وما وسائل الوصول العشوائي غير أن الكمبيوتر يمكن القفز على الفور 1482 01:11:20,570 --> 01:11:22,730 إلى أي مكان في صفيف. 1483 01:11:22,730 --> 01:11:23,580 لماذا؟ 1484 01:11:23,580 --> 01:11:26,000 لأنه يعرف الكمبيوتر أن الموقع الأول 1485 01:11:26,000 --> 01:11:29,540 صفر، واحد، اثنان، وثلاثة. 1486 01:11:29,540 --> 01:11:33,890 >> وحتى إذا كنت تريد أن تذهب من هذا العنصر إلى العنصر التالي، 1487 01:11:33,890 --> 01:11:36,099 لكم حرفيا، في عقل الكمبيوتر، فقط إضافة واحد. 1488 01:11:36,099 --> 01:11:39,140 إذا كنت ترغب في الذهاب إلى العنصر الثالث، فقط إضافة احدا-- العنصر التالي، فقط 1489 01:11:39,140 --> 01:11:40,290 أضف واحدا. 1490 01:11:40,290 --> 01:11:42,980 ومع ذلك، في هذا الإصدار من القصة، لنفترض 1491 01:11:42,980 --> 01:11:46,080 تبحث حاليا الكمبيوتر في أو التعامل مع عدد 100. 1492 01:11:46,080 --> 01:11:49,770 كيف تحصل على التالي الصف في كتاب الصف؟ 1493 01:11:49,770 --> 01:11:52,560 >> عليك أن تأخذ سبع الخطوات، التي هي تعسفية. 1494 01:11:52,560 --> 01:11:58,120 للوصول الى المرحلة التالية، لديك ل اتخاذ ثماني خطوات أخرى للوصول الى 15. 1495 01:11:58,120 --> 01:12:02,250 وبعبارة أخرى، انها ليست الفجوة المستمرة بين الأرقام، 1496 01:12:02,250 --> 01:12:04,857 وهكذا فإنه يأخذ فقط الكمبيوتر مزيدا من الوقت هو نقطة. 1497 01:12:04,857 --> 01:12:06,940 يحتوي جهاز الكمبيوتر للبحث من خلال الذاكرة من أجل 1498 01:12:06,940 --> 01:12:08,990 للعثور على ما كنت أبحث عنه. 1499 01:12:08,990 --> 01:12:14,260 >> ذلك في حين أن مجموعة يميل إلى أن يكون ل structure-- البيانات بسرعة لأنك 1500 01:12:14,260 --> 01:12:17,610 يمكن حرفيا مجرد القيام بعملية حسابية بسيطة ونصل الى حيث تريد عن طريق إضافة واحدة، 1501 01:12:17,610 --> 01:12:21,300 لinstance-- قائمة مرتبطة، تضحي هذه الميزة. 1502 01:12:21,300 --> 01:12:24,020 لا يمكنك الذهاب فقط من البداية الى المركز الثاني إلى المركز الثالث الى المركز الرابع. 1503 01:12:24,020 --> 01:12:25,240 عليك أن تتبع الخريطة. 1504 01:12:25,240 --> 01:12:28,160 لديك لاتخاذ المزيد من الخطوات للوصول الى تلك القيم، التي 1505 01:12:28,160 --> 01:12:30,230 يبدو أن إضافة تكلفة. 1506 01:12:30,230 --> 01:12:35,910 لذلك نحن ندفع الثمن، ولكن ما كان الميزة التي دان كان يسعى هنا؟ 1507 01:12:35,910 --> 01:12:38,110 ماذا قائمة مرتبطة على ما يبدو تسمح لنا القيام به، 1508 01:12:38,110 --> 01:12:40,240 الذي كان أصل هذه القصة؟ 1509 01:12:40,240 --> 01:12:43,250 1510 01:12:43,250 --> 01:12:43,830 >> بالضبط. 1511 01:12:43,830 --> 01:12:46,220 وحجم الديناميكي لذلك. 1512 01:12:46,220 --> 01:12:48,040 ويمكننا أن نضيف إلى هذه القائمة. 1513 01:12:48,040 --> 01:12:51,430 حتى يمكننا تقليص قائمة، لذلك أننا فقط باستخدام قدر الذاكرة 1514 01:12:51,430 --> 01:12:55,560 كما نريد فعلا وهكذا نحن أبدا الإفراط في تخصيص. 1515 01:12:55,560 --> 01:12:58,470 >> الآن لمجرد أن يكون أحمق من الصعب إرضاءه حقا، هناك تكاليف خفية. 1516 01:12:58,470 --> 01:13:01,980 لذلك يجب أن لا فقط اسمحوا لي أن يقنع لك أن هذا هو المقايضة مقنعة. 1517 01:13:01,980 --> 01:13:04,190 هناك تكاليف خفية أخرى هنا. 1518 01:13:04,190 --> 01:13:06,550 صالح، أن تكون واضحة، غير أن نحصل على ديناميكية. 1519 01:13:06,550 --> 01:13:10,359 إذا كنت تريد عنصر آخر، يمكنني فقط استدراجه ووضع عدد من هناك. 1520 01:13:10,359 --> 01:13:12,150 وبعد ذلك يمكن ربطه مع صورة هنا، 1521 01:13:12,150 --> 01:13:14,970 في حين أن أكثر من هنا، مرة أخرى، إذا كنت قد حوصرت في زاوية، 1522 01:13:14,970 --> 01:13:19,410 إذا كان هناك شيء آخر يستخدم بالفعل الذاكرة هنا، وأنا من الحظ. 1523 01:13:19,410 --> 01:13:21,700 لقد رسمت نفسي في الزاوية. 1524 01:13:21,700 --> 01:13:24,390 >> ولكن ما هو المستور تكلف في هذه الصورة؟ 1525 01:13:24,390 --> 01:13:27,690 انها ليست مجرد مبلغ من الوقت الذي يستغرقه 1526 01:13:27,690 --> 01:13:29,870 للانتقال من هنا إلى هنا، وهي سبع خطوات، ثم 1527 01:13:29,870 --> 01:13:32,820 ثماني خطوات، التي هي أكثر من واحد. 1528 01:13:32,820 --> 01:13:34,830 ما هي تكاليف خفية أخرى؟ 1529 01:13:34,830 --> 01:13:35,440 لا وقت فقط. 1530 01:13:35,440 --> 01:13:44,790 1531 01:13:44,790 --> 01:13:49,940 المعلومات الإضافية ضروري لتحقيق هذه الصورة. 1532 01:13:49,940 --> 01:13:53,210 >> نعم، تلك الخريطة، تلك قصاصات صغيرة من ورقة، وأظل اصفا إياها ب. 1533 01:13:53,210 --> 01:13:55,650 هذه arrows-- تلك ليست حرة. 1534 01:13:55,650 --> 01:13:57,660 وcomputer-- تعلمون ما لديه جهاز كمبيوتر. 1535 01:13:57,660 --> 01:13:58,790 لديها الآحاد والأصفار و. 1536 01:13:58,790 --> 01:14:03,170 إذا كنت تريد أن تمثل سهم أو خريطة أو عدد، كنت بحاجة الى بعض الذاكرة. 1537 01:14:03,170 --> 01:14:05,950 وبالتالي فإن السعر الأخرى التي دفع للحصول على قائمة مرتبط، 1538 01:14:05,950 --> 01:14:09,070 علم الكمبيوتر المشتركة الموارد، هو أيضا الفضاء. 1539 01:14:09,070 --> 01:14:11,710 >> والواقع جدا، لذلك عادة، بين المفاضلات 1540 01:14:11,710 --> 01:14:15,580 في تصميم هندسة البرمجيات نظم وقتا وspace-- 1541 01:14:15,580 --> 01:14:18,596 وهما من المكونات الخاصة بك، وهما من المكونات الأكثر تكلفة. 1542 01:14:18,596 --> 01:14:21,220 هذا يكلف لي المزيد من الوقت لاني اريد ان اتبع هذه الخريطة، 1543 01:14:21,220 --> 01:14:25,730 ولكن هذا يكلف لي أيضا مساحة أكبر لأن لدي للحفاظ على هذه الخريطة حولها. 1544 01:14:25,730 --> 01:14:28,730 لذلك الأمل، كما قمنا نوع من ناقش خلال أمس واليوم، 1545 01:14:28,730 --> 01:14:31,720 غير أن الفوائد سوف تفوق التكاليف. 1546 01:14:31,720 --> 01:14:33,870 >> ولكن ليس هناك حل واضح هنا. 1547 01:14:33,870 --> 01:14:35,870 ربما هو better-- سريع لوس انجليس وقذرة، 1548 01:14:35,870 --> 01:14:38,660 كما اقترح كريم earlier-- لرمي الذاكرة في المشكلة. 1549 01:14:38,660 --> 01:14:42,520 مجرد شراء المزيد من الذاكرة، والتفكير أقل مليا حل المشكلة، 1550 01:14:42,520 --> 01:14:44,595 وحلها بطريقة أسهل. 1551 01:14:44,595 --> 01:14:46,720 وبالفعل في وقت سابق، عندما تحدثنا عن المفاضلات، 1552 01:14:46,720 --> 01:14:49,190 لم يكن الفضاء في الكمبيوتر والوقت. 1553 01:14:49,190 --> 01:14:51,810 كان الوقت قد حان المطور، الذي هو بعد مورد آخر. 1554 01:14:51,810 --> 01:14:54,829 >> ذلك مرة أخرى، هو هذا التوازن تحاول أن تقرر أي من تلك الأشياء 1555 01:14:54,829 --> 01:14:55,870 هل أنت على استعداد لقضاء؟ 1556 01:14:55,870 --> 01:14:57,380 وهو أقل تكلفة؟ 1557 01:14:57,380 --> 01:15:01,040 التي تعطي نتائج أفضل؟ 1558 01:15:01,040 --> 01:15:01,540 بلى؟ 1559 01:15:01,540 --> 01:15:11,310 1560 01:15:11,310 --> 01:15:12,580 >> في الواقع. 1561 01:15:12,580 --> 01:15:15,970 في هذه الحالة، إذا كنت تمثل الأرقام في maps-- 1562 01:15:15,970 --> 01:15:18,820 وتسمى هذه في العديد من اللغات "مؤشرات" أو "عناوين" - 1563 01:15:18,820 --> 01:15:20,390 انها ضعف مساحة. 1564 01:15:20,390 --> 01:15:24,390 أن لا يلزم أن يكون سيئا كما ضعف إذا الآن نحن فقط تخزين الأرقام. 1565 01:15:24,390 --> 01:15:27,410 لنفترض أننا كنا تخزين سجلات المرضى في hospital-- 1566 01:15:27,410 --> 01:15:30,870 حتى أسماء بيرسون، وأرقام الهواتف، أرقام الضمان الاجتماعي، الطبيب 1567 01:15:30,870 --> 01:15:31,540 التاريخ. 1568 01:15:31,540 --> 01:15:34,160 قد يكون هذا المربع الكثير، أكبر من ذلك بكثير، في هذه الحالة 1569 01:15:34,160 --> 01:15:38,000 مؤشر الصغير للغاية، عنوان element-- المقبل انها ليست صفقة كبيرة. 1570 01:15:38,000 --> 01:15:40,620 انها مثل هامشية تكلفة لا يهم. 1571 01:15:40,620 --> 01:15:43,210 ولكن في هذه الحالة، نعم، انها مضاعفة. 1572 01:15:43,210 --> 01:15:45,290 سؤال جيد. 1573 01:15:45,290 --> 01:15:47,900 >> دعونا نتحدث عن وقت ل قليلا أكثر تحديدا. 1574 01:15:47,900 --> 01:15:50,380 ما هي إدارة الوقت من البحث في هذه القائمة؟ 1575 01:15:50,380 --> 01:15:53,640 لنفترض أنني أريد أن ابحث من خلال جميع الدرجات للطلاب، 1576 01:15:53,640 --> 01:15:55,980 وهناك درجات ن في هذا الهيكل البيانات. 1577 01:15:55,980 --> 01:15:58,830 هنا، أيضا، يمكننا أن الاقتراض مفردات في وقت سابق. 1578 01:15:58,830 --> 01:16:00,890 هذا هو هيكل البيانات الخطية. 1579 01:16:00,890 --> 01:16:04,570 >> يا كبير من ن غير ما هو مطلوب للحصول على في نهاية هذا الهيكل البيانات، 1580 01:16:04,570 --> 01:16:08,410 whereas-- ولم نر هذا before-- مجموعة يعطيك 1581 01:16:08,410 --> 01:16:13,555 ما يسمى وقت ثابت، وهو ما يعني خطوة واحدة أو خطوتين أو 10 steps-- 1582 01:16:13,555 --> 01:16:14,180 لا يهم. 1583 01:16:14,180 --> 01:16:15,440 إنه رقم ثابت. 1584 01:16:15,440 --> 01:16:17,440 عليها أن تفعل مع أي شيء حجم المصفوفة. 1585 01:16:17,440 --> 01:16:20,130 والسبب في ذلك، مرة أخرى، هو الوصول العشوائي. 1586 01:16:20,130 --> 01:16:23,180 الكمبيوتر يمكن فقط على الفور القفز إلى موقع آخر، 1587 01:16:23,180 --> 01:16:27,770 لأنهم كل نفس المسافة من كل شيء آخر. 1588 01:16:27,770 --> 01:16:29,112 ليس هناك تفكير المعنية. 1589 01:16:29,112 --> 01:16:31,900 1590 01:16:31,900 --> 01:16:32,400 حسنا. 1591 01:16:32,400 --> 01:16:39,230 حتى لو كنت تستطيع، واسمحوا لي أن أحاول ل ترسم صورتين النهائية. 1592 01:16:39,230 --> 01:16:42,830 واحد شائع جدا تعرف باسم جدول تجزئة. 1593 01:16:42,830 --> 01:16:51,120 وذلك لتحفيز هذه المناقشة، اسمحوا لي أن التفكير في كيفية القيام بذلك. 1594 01:16:51,120 --> 01:16:52,610 >> فكيف هذا؟ 1595 01:16:52,610 --> 01:16:55,160 لنفترض أن المشكلة نريد أن نحل الآن 1596 01:16:55,160 --> 01:16:58,360 تنفذ في dictionary-- حتى في مجمله مجموعة من الكلمات الإنجليزية 1597 01:16:58,360 --> 01:16:59,330 أو أيا كان. 1598 01:16:59,330 --> 01:17:02,724 والهدف هو أن تكون قادرا على الإجابة أسئلة النموذج هو هذا الكلمة؟ 1599 01:17:02,724 --> 01:17:04,640 لذلك كنت ترغب في تنفيذ المدقق الإملائي، فقط 1600 01:17:04,640 --> 01:17:07,220 مثل القاموس البدني التي يمكن أن ننظر الامور في. 1601 01:17:07,220 --> 01:17:10,490 أفترض أن نفعل هذا مع صفيف. 1602 01:17:10,490 --> 01:17:12,590 يمكنني أن أفعل هذا. 1603 01:17:12,590 --> 01:17:20,756 >> وافترض أن الكلمات هي التفاح والموز والشمام. 1604 01:17:20,756 --> 01:17:23,330 1605 01:17:23,330 --> 01:17:26,465 وأنا لا أستطيع التفكير في الفواكه التي تبدأ مع د، لذلك نحن فقط 1606 01:17:26,465 --> 01:17:27,590 ستكون لدينا ثلاثة الفواكه. 1607 01:17:27,590 --> 01:17:31,510 لذلك هذا هو صفيف، ونحن تخزين كل هذه الكلمات 1608 01:17:31,510 --> 01:17:34,200 في هذا القاموس كما صفيف. 1609 01:17:34,200 --> 01:17:39,350 والسؤال إذن هو كيف آخر هل يمكن تخزين هذه المعلومات؟ 1610 01:17:39,350 --> 01:17:43,160 >> حسنا، أنا نوع من الغش هنا، ل كل من هذه الحروف في كلمة 1611 01:17:43,160 --> 01:17:44,490 هو في حقيقة الأمر بايت الفردية. 1612 01:17:44,490 --> 01:17:46,740 لذلك إذا أردت حقا أن تكون أحمق من الصعب إرضاءه، ينبغي لي حقا 1613 01:17:46,740 --> 01:17:49,600 يتم تقسيم هذا الأمر في كثير قطع أصغر من الذاكرة، 1614 01:17:49,600 --> 01:17:51,289 ونحن يمكن ان نفعل ذلك بالضبط. 1615 01:17:51,289 --> 01:17:53,580 ولكن ونحن في طريقنا لتصل الى نفس المشكلة كما كان من قبل. 1616 01:17:53,580 --> 01:17:56,674 ماذا لو، وميريام وبستر أو أكسفورد يفعل كل year-- يضيفون كلمات 1617 01:17:56,674 --> 01:17:59,340 إلى dictionary-- نحن لا نريد بالضرورة أن ترسم أنفسنا 1618 01:17:59,340 --> 01:18:00,780 في زاوية مع مجموعة؟ 1619 01:18:00,780 --> 01:18:05,710 >> بدلا من ذلك، ربما نهجا أكثر ذكاء هو وضع التفاح في العقدة الخاصة أو مربع، 1620 01:18:05,710 --> 01:18:11,190 كما نقول، والموز، و ثم لدينا هنا الشمام. 1621 01:18:11,190 --> 01:18:14,990 1622 01:18:14,990 --> 01:18:16,790 ونحن سلسلة هذه الأشياء معا. 1623 01:18:16,790 --> 01:18:19,980 لذلك هذا هو مجموعة، و هذه هي قائمة مرتبطة. 1624 01:18:19,980 --> 01:18:23,300 إذا كنت لا تستطيع رؤية جدا، هو فقط وتقول "مجموعة"، وهذا يقول "قائمة". 1625 01:18:23,300 --> 01:18:25,780 >> لذلك لدينا نفس قضايا بالضبط كما كان من قبل، 1626 01:18:25,780 --> 01:18:28,600 حيث لدينا الآن ديناميكية في قائمة مرتبطة لدينا. 1627 01:18:28,600 --> 01:18:31,090 ولكن لدينا قاموس بطيئة إلى حد ما. 1628 01:18:31,090 --> 01:18:32,870 لنفترض أنني أريد للبحث عن كلمة واحدة. 1629 01:18:32,870 --> 01:18:35,430 قد يستغرق لي يا كبير من ن الخطوات، لأن الكلمة قد 1630 01:18:35,430 --> 01:18:37,840 يكون كل وسيلة في نهاية القائمة، مثل الشمام. 1631 01:18:37,840 --> 01:18:40,600 واتضح أن في البرمجة، نوع 1632 01:18:40,600 --> 01:18:42,700 من الكأس المقدسة من البيانات الهياكل، شيء 1633 01:18:42,700 --> 01:18:46,620 والتي تمنحك ثابت الوقت مثل مجموعة 1634 01:18:46,620 --> 01:18:50,870 ولكن هذا لا يزال يمنحك الحيوية. 1635 01:18:50,870 --> 01:18:52,940 >> بحيث يمكن لدينا أفضل من كلا العالمين؟ 1636 01:18:52,940 --> 01:18:55,570 وبالفعل، هناك شيء دعا جدول التجزئة 1637 01:18:55,570 --> 01:18:59,320 هذا يسمح لك أن تفعل بالضبط هذا، وإن كان ما يقرب من. 1638 01:18:59,320 --> 01:19:03,140 جدول التجزئة هو مربي الحيوانات هيكل البيانات التي لدينا 1639 01:19:03,140 --> 01:19:06,340 يمكن التفكير في مثل مزيج من array-- 1640 01:19:06,340 --> 01:19:12,390 وانا ذاهب لاستدراجه مثل this-- والقوائم المرتبطة 1641 01:19:12,390 --> 01:19:17,310 أنني سوف يوجه مثل هذا أكثر من هنا. 1642 01:19:17,310 --> 01:19:19,760 >> وطريقة هذا الشيء يعمل هو على النحو التالي. 1643 01:19:19,760 --> 01:19:23,310 1644 01:19:23,310 --> 01:19:29,540 إذا كانت هذه الآن-- تجزئة table-- هو بلدي بنية بيانات الثالث، 1645 01:19:29,540 --> 01:19:32,590 وأريد أن تخزين كلام في هذا، وأنا لا 1646 01:19:32,590 --> 01:19:35,440 تريد فقط تخزين جميع الكلمات العودة إلى الوراء إلى العودة إلى الوراء. 1647 01:19:35,440 --> 01:19:37,430 أريد أن الاستفادة من بعض جزء من معلومة 1648 01:19:37,430 --> 01:19:40,330 حول الكلمات التي سوف تسمح لي الحصول عليها حيث أنها أسرع. 1649 01:19:40,330 --> 01:19:43,666 >> ذلك نظرا لكلمات التفاح والموز والشمام، 1650 01:19:43,666 --> 01:19:45,040 أنا اختار عمدا تلك الكلمات. 1651 01:19:45,040 --> 01:19:45,340 لماذا؟ 1652 01:19:45,340 --> 01:19:47,631 ما هو نوع من الأساس مختلف عن الثلاثة؟ 1653 01:19:47,631 --> 01:19:49,950 1654 01:19:49,950 --> 01:19:51,484 ما هو واضح؟ 1655 01:19:51,484 --> 01:19:52,900 وهي تبدأ بأحرف مختلفة. 1656 01:19:52,900 --> 01:19:53,900 >> لذلك أنت تعرف لماذا؟ 1657 01:19:53,900 --> 01:19:57,120 بدلا من وضع كل كلامي في نفس دلو، إذا جاز التعبير، 1658 01:19:57,120 --> 01:20:00,390 كما هو الحال في لائحة واحدة كبيرة، لماذا لا أنا على الأقل في محاولة لتحسين 1659 01:20:00,390 --> 01:20:04,180 وجعل القوائم بلدي 1/26 طالما. 1660 01:20:04,180 --> 01:20:07,440 والأمثل مقنعة قد يكون السبب لا 1661 01:20:07,440 --> 01:20:10,650 I-- عند إدخال كلمة في هذا الهيكل البيانات، 1662 01:20:10,650 --> 01:20:14,300 في ذاكرة الكمبيوتر، لماذا لا أضع كل "أ" الكلمات هنا، 1663 01:20:14,300 --> 01:20:17,270 جميع 'ب' الكلمات هنا، وجميع 'ج' الكلمات هنا؟ 1664 01:20:17,270 --> 01:20:24,610 لذلك هذا ينتهي وضع تفاحة هنا، الموز هنا والشمام هنا، 1665 01:20:24,610 --> 01:20:25,730 وهكذا دواليك. 1666 01:20:25,730 --> 01:20:31,700 >> وإذا كان لدي مبلغ إضافي كلمة like-- ما هو آخر؟ 1667 01:20:31,700 --> 01:20:36,640 التفاح والموز والكمثرى. 1668 01:20:36,640 --> 01:20:39,370 أي شخص يفكر في الفاكهة الذي يبدأ ب أ، ب، أو ج؟ 1669 01:20:39,370 --> 01:20:40,570 الكمال Blueberry--. 1670 01:20:40,570 --> 01:20:43,990 الذي لن ينتهي هنا. 1671 01:20:43,990 --> 01:20:47,530 وهكذا يبدو لنا أن لديها هامشي أفضل حل، 1672 01:20:47,530 --> 01:20:50,820 لأنه الآن إذا كنت تريد للبحث عن التفاح، وأنا 1673 01:20:50,820 --> 01:20:53,200 first-- أنا فقط لا الغوص في بنية البيانات الخاصة بي. 1674 01:20:53,200 --> 01:20:54,850 أنا لا يغوص في ذاكرة جهاز الكمبيوتر الخاص بي. 1675 01:20:54,850 --> 01:20:56,530 أنا أولا ننظر إلى الحرف الأول. 1676 01:20:56,530 --> 01:20:58,610 >> وهذا هو ما كمبيوتر ان عالم يقول. 1677 01:20:58,610 --> 01:21:00,760 يمكنك تجزئة في بنية البيانات الخاصة بك. 1678 01:21:00,760 --> 01:21:04,100 كنت تأخذ المدخلات الخاصة بك، والتي في هذه الحالة هي كلمة مثل التفاح. 1679 01:21:04,100 --> 01:21:07,150 كنت نحللها، وتبحث في أول حرف في هذه الحالة، 1680 01:21:07,150 --> 01:21:08,340 وبالتالي تجزئة عليه. 1681 01:21:08,340 --> 01:21:10,950 التجزئة هو حيث العام المدى كنت تأخذ شيئا كمدخل 1682 01:21:10,950 --> 01:21:12,116 وكنت تنتج بعض الانتاج. 1683 01:21:12,116 --> 01:21:15,090 وخرج في ذلك القضية هي المكان 1684 01:21:15,090 --> 01:21:18,150 تريد البحث، الأول المكان، والمكان الثاني، الثالث. 1685 01:21:18,150 --> 01:21:22,160 لذلك المدخل هو التفاح، الإخراج هو أولا. 1686 01:21:22,160 --> 01:21:25,054 المدخل هو الموز، و يجب أن يكون الناتج الثاني. 1687 01:21:25,054 --> 01:21:27,220 المدخل هو الشمام، يجب أن يكون الإخراج الثالث. 1688 01:21:27,220 --> 01:21:30,320 المدخل هو عنبية، ل الناتج ينبغي أن تكون مرة أخرى الثانية. 1689 01:21:30,320 --> 01:21:34,010 وهذا ما يساعدك على اتخاذ اختصارات من خلال الذاكرة الخاصة بك 1690 01:21:34,010 --> 01:21:39,050 من أجل الحصول على كلمات أو البيانات بشكل أكثر فعالية. 1691 01:21:39,050 --> 01:21:43,330 >> الآن هذه التخفيضات عصرنا يحتمل بنسبة تصل إلى واحد من أصل 26، 1692 01:21:43,330 --> 01:21:45,850 لأنه إذا افترض أن ل لدينا العديد من "أ" كلمات ب "ض" 1693 01:21:45,850 --> 01:21:48,080 كلمات ككلمات "س"، التي لا realistic-- حقا 1694 01:21:48,080 --> 01:21:50,830 وأنت تسير أن يكون الانحراف عبر رسائل معينة من alphabet-- 1695 01:21:50,830 --> 01:21:53,204 ولكن هذا سيكون بشكل تدريجي، النهج الذي لا تسمح 1696 01:21:53,204 --> 01:21:55,930 لك للحصول على الكلمات بسرعة أكثر من ذلك بكثير. 1697 01:21:55,930 --> 01:21:59,660 وفي الواقع، متطورة برنامج، وغوغل من العالم، 1698 01:21:59,660 --> 01:22:02,180 وFacebooks من world-- انها ستستخدم جدول تجزئة 1699 01:22:02,180 --> 01:22:03,740 لكثير من الأغراض المختلفة. 1700 01:22:03,740 --> 01:22:06,590 لكنها لن تكون السذاجة بحيث لمجرد إلقاء نظرة على الحرف الأول 1701 01:22:06,590 --> 01:22:09,700 في التفاح أو الموز أو الكمثرى أو الشمام، 1702 01:22:09,700 --> 01:22:13,420 لأنه كما ترون هذه قوائم يمكن الحصول على ما زالت طويلة. 1703 01:22:13,420 --> 01:22:17,130 >> وحتى هذا قد يكون لا يزال الفرز من linear-- ذلك نوع من البطء، 1704 01:22:17,130 --> 01:22:19,980 كما هو الحال مع يا كبير من ن أن ناقشنا في وقت سابق. 1705 01:22:19,980 --> 01:22:25,290 ذلك ما سوف طاولة الحقيقي التجزئة جيدة do-- سيكون لها مجموعة أكبر من ذلك بكثير. 1706 01:22:25,290 --> 01:22:28,574 وسوف تستخدم أكثر من ذلك بكثير وظيفة التجزئة متطورة، 1707 01:22:28,574 --> 01:22:30,240 بحيث لا مجرد إلقاء نظرة على "أ." 1708 01:22:30,240 --> 01:22:35,480 ربما يبدو في "لف ف-ل-ه" و بطريقة ما يحول تلك الأحرف الخمسة 1709 01:22:35,480 --> 01:22:38,400 إلى الموقع حيث يجب أن يتم تخزين التفاح. 1710 01:22:38,400 --> 01:22:42,660 نحن فقط بسذاجة باستخدام حرف "أ" وحده، لأنه لطيف وبسيط. 1711 01:22:42,660 --> 01:22:44,600 >> لكن جدول تجزئة، في في النهاية، يمكنك التفكير 1712 01:22:44,600 --> 01:22:47,270 من حيث أن مجموعة مجموعة، كل واحدة منها 1713 01:22:47,270 --> 01:22:51,700 لديه قائمة مرتبط بشكل مثالي يجب أن تكون قصيرة قدر الإمكان. 1714 01:22:51,700 --> 01:22:54,364 وهذه ليست الحل واضح. 1715 01:22:54,364 --> 01:22:57,280 في الواقع، فإن الكثير من ضبط ما يدور تحت غطاء محرك السيارة عندما 1716 01:22:57,280 --> 01:22:59,654 تنفيذ هذه الأنواع من هياكل البيانات المتطورة 1717 01:22:59,654 --> 01:23:01,640 ما هو الحق طول المصفوفة؟ 1718 01:23:01,640 --> 01:23:03,250 ما هي وظيفة تجزئة الصحيحة؟ 1719 01:23:03,250 --> 01:23:04,830 كيف يمكنك تخزين الأشياء في الذاكرة؟ 1720 01:23:04,830 --> 01:23:07,249 >> ولكن ندرك مدى سرعة هذا النوع من النقاش 1721 01:23:07,249 --> 01:23:10,540 تصاعدت، إما حتى الآن أنه من نوع أكثر من واحد في الرأس عند هذه النقطة، التي 1722 01:23:10,540 --> 01:23:11,360 على ما يرام. 1723 01:23:11,360 --> 01:23:18,820 ولكن بدأنا، أذكر، مع حقا شيء على مستوى منخفض والإلكترونية. 1724 01:23:18,820 --> 01:23:20,819 وحتى هذا مرة أخرى هذا موضوع التجريد، 1725 01:23:20,819 --> 01:23:23,610 حيث بمجرد البدء في اتخاذ ل منح، حسنا، لقد حصلت على it-- هناك 1726 01:23:23,610 --> 01:23:26,680 الذاكرة الفعلية، موافق، وحصلت عليه، كل الموقع الجغرافي لديه عنوان، 1727 01:23:26,680 --> 01:23:29,910 حسنا، أنا حصلت عليه، ويمكن أن تمثل هذه العناوين كما arrows-- 1728 01:23:29,910 --> 01:23:34,650 يمكنك البدء بسرعة جدا أن يكون محادثات أكثر تطورا أن 1729 01:23:34,650 --> 01:23:38,360 في النهاية يبدو أن يسمح لنا لحل مشاكل مثل البحث 1730 01:23:38,360 --> 01:23:41,620 والفرز بشكل أكثر فعالية. 1731 01:23:41,620 --> 01:23:44,190 وتطمئن، too-- لأنني أعتقد أن هذا 1732 01:23:44,190 --> 01:23:48,700 هو أعمق انتقلنا إلى بعض من هذه المواضيع CS proper-- قمنا 1733 01:23:48,700 --> 01:23:51,880 يتم في يوم واحد ونصف في هذا نقطة ما قد تفعل عادة على 1734 01:23:51,880 --> 01:23:55,520 خلال ثمانية أسابيع في فصل دراسي. 1735 01:23:55,520 --> 01:23:59,670 >> أي أسئلة حول هذه؟ 1736 01:23:59,670 --> 01:24:01,100 لا؟ 1737 01:24:01,100 --> 01:24:01,940 حسنا. 1738 01:24:01,940 --> 01:24:05,610 حسنا، لماذا لا نتوقف هناك، بدء الغداء بضع دقائق في وقت مبكر، 1739 01:24:05,610 --> 01:24:07,052 استئناف في غضون ساعة تقريبا؟ 1740 01:24:07,052 --> 01:24:08,760 وسوف إغلاقه ل قليلا مع الأسئلة. 1741 01:24:08,760 --> 01:24:11,343 ثم انا ذاهب لدينا للذهاب تأخذ المكالمات الزوجين إذا كان هذا هو موافق. 1742 01:24:11,343 --> 01:24:15,000 أنا تشغيل بعض الموسيقى في هذه الأثناء، ولكن الغداء ينبغي أن يكون قاب قوسين أو أدنى. 1743 01:24:15,000 --> 01:24:17,862