1 00:00:00,000 --> 00:00:00,030 2 00:00:00,030 --> 00:00:00,460 >> دیوید مالان: بسیار خوب. 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 البته با استفاده از یک بیشتر اهل تفریح محیط برنامه نویسی 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 بنابراین به آن URL سر، که در آن شما باید یک صفحه کاملا شبیه به این را ببینید، 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 account--. 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 و من فقط سریع گوگل جستجو برای پیدا کردن کد 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 و این بدان معناست که یک CPU است که شما باید یک مجموعه دستورالعمل، 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 >> بنابراین آنچه که شما در این ببینید محیط و در واقع فقط اجازه دهید 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 و خوشبختانه MIT، که باعث می شود ابتدا، فقط 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 جلو بروید و آن را تغییر دهید to-- آنچه را که شما 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 آره، توجه کنید که برخی از این بلوک می توان پارامتری، پس به صحبت می کنند. 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 OK، مراحل حرکت می کند. 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 >> آره، من، آن را دانشگاه MIT گسل. آنها به من یک قطعه پازل 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 بنابراین به نظر می رسد MIT است انتزاع در اینجا ساخته شده است. 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 >> A SO در حال حاضر من ضبط فقط "آخ." 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 >> کامپیوتر: آخ، آخ، آخ. 369 00:18:36,470 --> 00:18:39,910 >> دیوید مالان: و فقط تا ابد. 370 00:18:39,910 --> 00:18:44,160 در حال حاضر فقط برای سرعت بخشیدن به همه چیز اینجا، اجازه دهید من به جلو و باز کردن، 371 00:18:44,160 --> 00:18:50,460 اجازه دهید می گویند اجازه دهید من به برخی از رفتن از مسائل خود من از کلاس. 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 وجود دارد خیلی از رفتن بلیک کنین و این در دو دقیقه شلاق نیست، 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، جاوا، جاوا اسکریپت را داشته باشد، پی اچ پی، روبی، پایتون، 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 1000 تلفن صفحه book-- چگونه بسیاری از صفحات من باید از طریق نگاه می کنید؟ 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 >> OK، خوب است. 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 حالا one-- که حتی بهتر است. 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 بنابراین اگر من یک کل کردم دسته از اعداد آن now-- 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 که این در واقع کار می کند به همان چیزی که به عنوان نفر بیش از N به علاوه یک بیش از دو. 640 00:30:34,790 --> 00:30:40,020 و این اتفاق می افتد را برابر، از البته، N مربع به علاوه N بیش از دو. 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 و دوباره و دوباره، من می گویند آن را N مربع به علاوه N بیش از دو. 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 کدام یک از این شرایط، N مربع از N، یا نیمه، 650 00:31:05,300 --> 00:31:07,550 است که بیشترین تاثیر در طول زمان. 651 00:31:07,550 --> 00:31:11,920 از N بزرگتر می شود، که از این مسائل است؟ 652 00:31:11,920 --> 00:31:15,560 >> به عبارت دیگر، اگر من پلاگین در یک میلیون، N مربع 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 است در دستور N squared-- منظورم این است که واقعا یک تقریب است. 662 00:31:37,850 --> 00:31:40,810 این است که به نوعی از تقریبا N مربع. 663 00:31:40,810 --> 00:31:44,130 با گذشت زمان، بزرگتر و n بزرگتر می شود، این 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 اگر در N صفحات وجود دارد دفترچه تلفن، چه 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 این فقط N است. 688 00:32:45,730 --> 00:32:47,470 >> پس چه نتیجه گیری منطقی است؟ 689 00:32:47,470 --> 00:32:50,210 پیدا کردن مایک در یک گوشی کتاب را که n صفحه 690 00:32:50,210 --> 00:32:55,280 ممکن است را، در بدترین حالت، چگونه بسیاری از مراحل در دستور N؟ 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 یا ناکارآمدی، از یک الگوریتم مانند در دستور n یک جستجوی خطی است. 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 بنابراین اگر یک دفترچه تلفن دارای صفحات N، اما ما در حال انجام دو صفحه در یک زمان، 700 00:33:26,590 --> 00:33:28,900 که تقریبا چه؟ 701 00:33:28,900 --> 00:33:33,190 N بیش از دو، به طوری که مانند N بیش از دو. 702 00:33:33,190 --> 00:33:38,490 اما من یک ادعای لحظه پیش که n بیش از two-- 703 00:33:38,490 --> 00:33:41,060 این نوع از همان را به عنوان تنها N. 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 آن را هنوز هم در دستور N. 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-- بنابراین پایه دو از 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 این امر می تواند تقلب، و من شده اند تقلب pictorially برای چند دقیقه 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 >> بنابراین در پایان، این الگوریتم خواهیم پاسخ آن را درج sort-- در واقع 843 00:39:52,950 --> 00:39:55,020 است مقدار زیادی از کار، TOO. 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 همچنین در دستور N مربع. 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 >> دیوید مالان: ترتیبی نه. 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 >> دیوید مالان: OK. 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 دیوید مالان: صعودی مرتب. 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 >> دیوید مالان: کوچکترین عدد است در فضای اول نیست. 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 دیوید مالان: دنباله عددی. 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 >> دیوید مالان: آن چیست؟ 898 00:42:08,750 --> 00:42:09,610 >> دانشجو: به علاوه یک است. 899 00:42:09,610 --> 00:42:11,235 >> دیوید مالان: چه یک به علاوه شما؟ 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 >> دیوید مالان: چه خبر در جای مناسب نیست؟ 908 00:42:25,580 --> 00:42:26,174 >> دانشجو: چهار. 909 00:42:26,174 --> 00:42:27,090 دیوید مالان: خوب، خوب است. 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 در واقع، فکر می کنم اکنون در مورد یک کامپیوتر، TOO. 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 OK، خوب است. 940 00:43:28,680 --> 00:43:32,310 در حال حاضر چهار و دو؟ 941 00:43:32,310 --> 00:43:33,370 ما باید برای حل این مشکل، TOO. 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-- OK، من انجام می شود. 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 از آنجا که شما عدد n، و در بدترین حالت شما را به حرکت اعداد n 984 00:45:19,520 --> 00:45:23,637 n بار به خاطر شما باید به رفتن ادامه تماس برای بررسی و به طور بالقوه تعمیر 985 00:45:23,637 --> 00:45:24,220 این اعداد. 986 00:45:24,220 --> 00:45:26,280 و ما می توانیم یک بیشتر انجام تجزیه و تحلیل رسمی، TOO. 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 اما پس از آن اگر شما یک گام به عقب، voila، در حال مفهوم مرتب سازی ثابت کرده ایم. 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 پس از آن یک underwhelming کمی شاید. 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 و این پایان خواهد رسید تا در پایان در یک راه بسیار مشابه، TOO. 1086 00:50:17,150 --> 00:50:19,160 >> ما لازم نیست به ساکن در این مورد خاص. 1087 00:50:19,160 --> 00:50:21,010 اجازه بدهید من این را باز کن، TOO. 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 است منظور از N نمی مربع. 1098 00:50:49,170 --> 00:50:57,280 این در دستور n بار ورود از این 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 و اگر آن نمی باشد، آن را دوباره مرتب آن به طور تصادفی، چک می کند اگر آن را طبقه بندی شده اند، 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-- تا رم 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 یا 8 میلیارد بیت، اما ما قصد داریم به صحبت در شرایط بایت در حال حاضر، 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 بنابراین به عبارت دیگر، شما می توانید قرار 8 میلیارد همه چیز در داخل 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 >> آن را به عنوان مجموعه به عنوان یکی از شلوغ نیست مربع، کمبریج، ماساچوست، 02،138. 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 به CPU و آن آن اینتل مجموعه دستورالعمل، 1235 00:58:09,810 --> 00:58:12,480 در میان که آموزش از حافظه به عنوان خوانده شده 1236 00:58:12,480 --> 00:58:15,590 و یا ذخیره به حافظه کامپیوتر می تواند نگاه 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 >> و بنابراین در اینجا، بیش از حد، این contiguousness است که در واقع یک مزیت است، 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 در زمینه این کلمه، ساعت-E-L-L-O، علامت تعجب، 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 بسیار محرمانه بیشتر "بی اعتبار اصلی نوع int است." 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 A SO بر روی مک من در اینجا، من برنامه ای به نام شورای همکاری خلیج فارس، کامپایلر 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 ساعت-E-L-L-O، علامت تعجب. 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 و یا شخصیت null به عنوان کسی که آن تماس بگیرید. 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 >> اما این خوب است، چون pictorially من قصد دارم به رسم این خط. 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 اما آن را pictorially مرتبط توسط این فلش، 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 is-- اکنون 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 این است که تمام اطلاعات خود را به عقب است به پشت به پشت در حافظه به معنای واقعی کلمه 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 اگر شما می خواهید برای رفتن به عنصر سوم، فقط one-- عنصر بعدی اضافه کنید، فقط 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 و N نمرات وجود دارد در این ساختار داده. 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 >> O بزرگ از n همان چیزی است که مورد نیاز برای دریافت به پایان این ساختار داده ها، 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 این ممکن است به من O بزرگ از n را مراحل، زیرا کلمه ممکن است 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 اگر این now-- هش 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 به حافظه کامپیوتر، به همین دلیل می توانم همه 'A' کلمات قرار داده نشده در اینجا، 1663 01:20:14,300 --> 01:20:17,270 همه ب `کلمات در اینجا، و همه 'C' کلمات در اینجا؟ 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 هر کسی از یک میوه فکر می کنم که با A، B، و C شروع می شود؟ 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 چرا که اگر شما فرض کنیم که شما به عنوان بسیاری از "A" کلمات به عنوان "الف" 1693 01:21:45,850 --> 01:21:48,080 کلمات به عنوان "Q" کلمات، که واقعا 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 فیسبوک از 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 مانند با O بزرگ از n که ما قبلا بحث شده است. 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 شاید آن را در به نظر می رسد "A-P-P-L-E" و به نحوی تبدیل آن پنج حرف 1709 01:22:35,480 --> 01:22:38,400 به مکانی که در آن اپل باید ذخیره شود. 1710 01:22:38,400 --> 01:22:42,660 ما فقط ساده لوحانه با استفاده از حرف 'a' تنهایی، به دلیل آن را خوب و ساده است. 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 حافظه فیزیکی، OK، آن را کردم، هر مکان فیزیکی است آدرس، 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 سپس من قصد دارم به به یک زن و شوهر در صورتی که تماس های OK. 1742 01:24:11,343 --> 01:24:15,000 من در برخی از موسیقی در عین حال به نوبه خود، اما ناهار باید در اطراف گوشه است. 1743 01:24:15,000 --> 01:24:17,862