1 00:00:00,000 --> 00:00:00,488 2 00:00:00,488 --> 00:00:10,800 >> [پخش موسیقی] 3 00:00:10,800 --> 00:00:13,500 دیوید مالان: بسیار خوب. 4 00:00:13,500 --> 00:00:14,670 همه حق است، خوش آمدید. 5 00:00:14,670 --> 00:00:18,120 بنابراین در این هفته 4، آغاز آن، در حال حاضر. 6 00:00:18,120 --> 00:00:21,320 و شما که هفته گذشته را به یاد بیاورید، ما را کد جدا برای فقط کمی 7 00:00:21,320 --> 00:00:24,240 و ما شروع به صحبت کمی بیشتر سطح بالا، در مورد چیزهایی مثل 8 00:00:24,240 --> 00:00:28,130 جستجو و مرتب سازی، که هر چند ایده تا حدودی ساده است، عبارتند از 9 00:00:28,130 --> 00:00:31,840 نماینده یک طبقه از مشکلات شما آغاز خواهد شد برای حل ویژه 10 00:00:31,840 --> 00:00:34,820 همانطور که شما شروع به فکر کردن در مورد نهایی پروژه ها و راه حل های جالب برای شما 11 00:00:34,820 --> 00:00:36,760 ممکن است به مشکلات دنیای واقعی داشته باشد. 12 00:00:36,760 --> 00:00:39,490 در حال حاضر مرتب سازی بر حباب یکی از ساده ترین بود چنین الگوریتم، و آن را 13 00:00:39,490 --> 00:00:42,900 با داشتن این اعداد کوچک مشغول به کار در یک لیست و یا در نوع آرایه 14 00:00:42,900 --> 00:00:46,530 حباب راه خود را به بالا، و اعداد بزرگ فعالیت می کند راه خود را به 15 00:00:46,530 --> 00:00:47,930 در پایان از این لیست است. 16 00:00:47,930 --> 00:00:50,650 >> به یاد بیاورید که ما می تواند تجسم مرتب کردن بر اساس حباب کوچک 17 00:00:50,650 --> 00:00:52,310 چیزی شبیه به این. 18 00:00:52,310 --> 00:00:53,640 پس اجازه دهید من جلو بروید و شروع را کلیک کنید. 19 00:00:53,640 --> 00:00:55,350 من مرتب سازی حبابی از پیش انتخاب کرده ام. 20 00:00:55,350 --> 00:00:58,920 و اگر شما به یاد بیاورید که آبی بلندتر خطوط نمایش اعداد بزرگ، کوچک 21 00:00:58,920 --> 00:01:03,300 خطوط آبی نشان دهنده اعداد کوچک، به عنوان ما را از طریق این دوباره و دوباره بروید و 22 00:01:03,300 --> 00:01:07,680 دوباره، مقایسه دو میله در کنار یکدیگر دیگر به رنگ قرمز، ما قصد داریم به مبادله 23 00:01:07,680 --> 00:01:11,010 بزرگترین و کوچکترین اگر آنها از نظم هستند. 24 00:01:11,010 --> 00:01:14,150 >> بنابراین این کار در رفتن و رفتن و رفتن ، و شما خواهید دید که بزرگتر 25 00:01:14,150 --> 00:01:16,700 عناصر در حال ساخت راه خود را به حق و عناصر کوچکتر 26 00:01:16,700 --> 00:01:17,900 ساخت راه خود را به سمت چپ. 27 00:01:17,900 --> 00:01:21,380 اما ما شروع به کمی بهره وری، 28 00:01:21,380 --> 00:01:22,970 کیفیت این الگوریتم. 29 00:01:22,970 --> 00:01:25,200 و به ما گفت که در بدترین مورد، این الگوریتم در زمان 30 00:01:25,200 --> 00:01:27,940 تقریبا چند مرحله؟ 31 00:01:27,940 --> 00:01:28,980 >> بنابراین نفر مربع. 32 00:01:28,980 --> 00:01:30,402 و چه نفر بود؟ 33 00:01:30,402 --> 00:01:31,650 >> مخاطبان: تعداد عناصر. 34 00:01:31,650 --> 00:01:32,790 >> دیوید مالان: نفر بود تعدادی از عناصر. 35 00:01:32,790 --> 00:01:33,730 و بنابراین ما این اغلب انجام دهد. 36 00:01:33,730 --> 00:01:36,650 هر زمان که ما می خواهیم به صحبت در مورد اندازه یک مشکل و یا اندازه 37 00:01:36,650 --> 00:01:39,140 ورودی، یا مدت زمانی که طول می کشد برای تولید خروجی، ما فقط 38 00:01:39,140 --> 00:01:41,610 هر چیز دیگری تعمیم ورودی به عنوان نفر است. 39 00:01:41,610 --> 00:01:45,970 پس از بازگشت در هفته 0، صفحات تعداد در دفترچه تلفن بود. 40 00:01:45,970 --> 00:01:47,550 تعداد دانش آموزان در اتاق نفر شد. 41 00:01:47,550 --> 00:01:49,630 بنابراین در اینجا، بیش از حد، ما به دنبال که الگو. 42 00:01:49,630 --> 00:01:52,800 >> در حال حاضر نفر مربع است به خصوص سریع، بنابراین ما سعی به انجام این کار بهتر است. 43 00:01:52,800 --> 00:01:55,970 و بنابراین ما در چند نگاه الگوریتم های دیگر، که در میان آن 44 00:01:55,970 --> 00:01:57,690 مرتب سازی بر اساس انتخاب. 45 00:01:57,690 --> 00:01:59,180 بنابراین مرتب سازی بر اساس انتخاب بود کمی متفاوت است. 46 00:01:59,180 --> 00:02:03,130 آن را تقریبا ساده بود، من به جرات گفت، به موجب آن من در آغاز از آغاز 47 00:02:03,130 --> 00:02:06,740 لیست داوطلبان ما و من فقط به دوباره و دوباره و دوباره از طریق رفت 48 00:02:06,740 --> 00:02:10,060 لیست، برداشت کوچکترین عنصر در یک زمان و قرار دادن او و یا 49 00:02:10,060 --> 00:02:13,040 او در ابتدای لیست است. 50 00:02:13,040 --> 00:02:16,410 >> اما این، بیش از حد، زمانی که ما شروع به فکر می کنم از طریق ریاضی و بزرگتر 51 00:02:16,410 --> 00:02:19,860 تصویر، در مورد چند بار فکر من که قرار بود به عقب و جلو و عقب 52 00:02:19,860 --> 00:02:24,090 جلو و عقب، ما در بدترین حالت گفت: مرتب سازی بر انتخاب، بیش از حد، چه بود؟ 53 00:02:24,090 --> 00:02:24,960 N مربع. 54 00:02:24,960 --> 00:02:27,490 در حال حاضر در دنیای واقعی، ممکن است در واقع حاشیه سریعتر باشد. 55 00:02:27,490 --> 00:02:30,620 چرا که باز هم من مجبور به نگه داشتن و backtracking می یک بار من طبقه بندی شده اند بود 56 00:02:30,620 --> 00:02:31,880 کوچکترین عناصر. 57 00:02:31,880 --> 00:02:35,090 اما اگر ما درباره n بسیار بزرگ فکر می کنم، و اگر شما مرتب کردن بر اساس ریاضی به عنوان 58 00:02:35,090 --> 00:02:39,170 من در هیئت مدیره، با نفر مربع چیزی منفی، و هر چیز دیگری 59 00:02:39,170 --> 00:02:41,850 علاوه بر ازت مربع، یک بار نفر واقعا بزرگ می شود، نمی کند 60 00:02:41,850 --> 00:02:42,850 واقعا به همان اندازه مهم است. 61 00:02:42,850 --> 00:02:45,470 بنابراین به عنوان دانشمندان کامپیوتر، ما از مرتب کردن بر اساس نوبه خود چشم به کوچکتر 62 00:02:45,470 --> 00:02:49,220 عوامل و تمرکز تنها روی عامل در بیان که رفتن به 63 00:02:49,220 --> 00:02:50,330 بزرگترین تفاوت. 64 00:02:50,330 --> 00:02:52,840 >> خب، در نهایت، ما نگاه مرتب سازی بر درج. 65 00:02:52,840 --> 00:02:56,620 و این در روح مشابه بود، اما به جای رفتن را از طریق تکرار و 66 00:02:56,620 --> 00:03:01,250 کوچکترین عنصر را انتخاب کنید زمان، من به جای دست گرفت که من 67 00:03:01,250 --> 00:03:04,070 رسیدگی شد و من تصمیم گرفتم، همه راست، به اینجا تعلق دارید. 68 00:03:04,070 --> 00:03:06,160 سپس من نقل مکان کرد به عنصر بعدی و تصمیم گرفت که او و یا 69 00:03:06,160 --> 00:03:07,470 در اینجا او تعلق داشت. 70 00:03:07,470 --> 00:03:08,810 و سپس به من در تاریخ و در نقل مکان کرد. 71 00:03:08,810 --> 00:03:11,780 و من به ممکن است، در طول راه، تغییر این افراد به منظور 72 00:03:11,780 --> 00:03:13,030 اتاق را برای آنها. 73 00:03:13,030 --> 00:03:16,880 به طوری که مرتب سازی بر واژگونی روانی بود مرتب کردن بر اساس انتخاب است که ما 74 00:03:16,880 --> 00:03:18,630 نام مرتب سازی بر درج شده است. 75 00:03:18,630 --> 00:03:20,810 >> بنابراین این موضوع رخ می دهد در جهان واقعی است. 76 00:03:20,810 --> 00:03:23,640 فقط چند سال پیش، زمانی که برخی از سناتور برای ریاست جمهوری در حال اجرا بود، 77 00:03:23,640 --> 00:03:27,160 اریک اشمیت، در آن زمان مدیر عامل شرکت گوگل، در واقع تا به حال فرصت 78 00:03:27,160 --> 00:03:28,040 برای مصاحبه با او. 79 00:03:28,040 --> 00:03:32,010 و ما فکر می کنیم می خواهم این یوتیوب به اشتراک بگذارید کلیپ برای شما در اینجا، اگر ما می تواند به نوبه خود 80 00:03:32,010 --> 00:03:32,950 حجم. 81 00:03:32,950 --> 00:03:39,360 >> [پخش ویدئو] 82 00:03:39,360 --> 00:03:44,620 >> در حال حاضر، سناتور، شما در اینجا در گوگل، و من می خواهم به ریاست جمهوری فکر می کنم 83 00:03:44,620 --> 00:03:46,042 به عنوان یک مصاحبه شغلی. 84 00:03:46,042 --> 00:03:47,770 >> [خنده حضار] 85 00:03:47,770 --> 00:03:50,800 >> در حال حاضر آن را سخت برای به دست آوردن کار به عنوان ریاست جمهوری. 86 00:03:50,800 --> 00:03:52,480 و شما در حال رفتن را از طریق لرز در حال حاضر. 87 00:03:52,480 --> 00:03:54,330 آن را نیز سخت به یک کار در گوگل. 88 00:03:54,330 --> 00:03:59,610 ما پرسش ها و ما بخواهید نامزدهای سوالات ما. 89 00:03:59,610 --> 00:04:02,250 و این یکی از لری Schwimmer. 90 00:04:02,250 --> 00:04:05,325 >> [خنده حضار] 91 00:04:05,325 --> 00:04:06,400 شما بچه ها فکر می کنم دارم شوخی می کنم؟ 92 00:04:06,400 --> 00:04:08,750 این حق در اینجا. 93 00:04:08,750 --> 00:04:12,110 کارآمد ترین راه برای چیست مرتب سازی بر اساس یک میلیون عدد صحیح دو بیتی؟ 94 00:04:12,110 --> 00:04:15,810 >> [خنده حضار] 95 00:04:15,810 --> 00:04:18,260 >> خب، آه - 96 00:04:18,260 --> 00:04:19,029 >> I'm متاسفم. 97 00:04:19,029 --> 00:04:19,745 شاید ما باید - 98 00:04:19,745 --> 00:04:21,000 >> ، نه، نه، نه، نه، نه. 99 00:04:21,000 --> 00:04:21,470 >> که نیست - 100 00:04:21,470 --> 00:04:22,185 OK را بزنید. 101 00:04:22,185 --> 00:04:25,328 >> من فکر می کنم مرتب سازی حبابی راه نادرست به رفتن. 102 00:04:25,328 --> 00:04:26,792 >> [خنده حضار] 103 00:04:26,792 --> 00:04:28,510 >> [تشویق و تشویق حضار] 104 00:04:28,510 --> 00:04:31,211 >> بیا، که او این را گفت؟ 105 00:04:31,211 --> 00:04:32,155 OK را بزنید. 106 00:04:32,155 --> 00:04:33,350 >> [END پخش ویدئو] 107 00:04:33,350 --> 00:04:35,070 >> دیوید مالان: بنابراین وجود شما به آن را داشته باشد. 108 00:04:35,070 --> 00:04:39,600 بنابراین ما شروع به سنجش این در حال اجرا بار، پس به صحبت می کنند، با چیزی 109 00:04:39,600 --> 00:04:43,480 نام نماد مجانبی است که فقط با اشاره به مرتب سازی بر اساس چرخش ما 110 00:04:43,480 --> 00:04:47,420 یک چشم خود را به آن دسته از عوامل کوچکتر و تنها با نگاه در آن زمان در حال اجرا، 111 00:04:47,420 --> 00:04:51,250 عملکرد این الگوریتم، به عنوان نفر می شود واقعا بزرگ در طول زمان. 112 00:04:51,250 --> 00:04:55,110 و بنابراین ما معرفی O. بزرگ و بزرگ O چیزی نشان داده است که ما فکر 113 00:04:55,110 --> 00:04:57,000 به عنوان حد بالا. 114 00:04:57,000 --> 00:04:59,570 و در واقع، بری، می تواند ما پایین تر از MIC کمی؟ 115 00:04:59,570 --> 00:05:01,040 >> ما از این است که یک حد بالا در نظر داشتند. 116 00:05:01,040 --> 00:05:04,710 O خیلی بزرگ ازت به معنای مربع که در بدترین حالت، چیزی شبیه به 117 00:05:04,710 --> 00:05:07,780 مرتب سازی بر اساس انتخاب می کنند نفر اقدامات مربع. 118 00:05:07,780 --> 00:05:10,310 یا چیزی شبیه به مرتب سازی بر درج خواهد بود مراحل نفر مربع. 119 00:05:10,310 --> 00:05:15,150 در حال حاضر برای چیزی شبیه به درج مرتب کردن، چه بدترین حالت بود؟ 120 00:05:15,150 --> 00:05:18,200 با توجه به آرایه، چه بدترین سناریوی ممکن است که شما ممکن است دریابید 121 00:05:18,200 --> 00:05:20,650 خود را با آنها مواجه؟ 122 00:05:20,650 --> 00:05:21,860 >> این کاملا به عقب، درست است؟ 123 00:05:21,860 --> 00:05:24,530 چرا که اگر آن را به طور کامل به عقب، شما باید انجام دهید تعداد زیادی از کل کار. 124 00:05:24,530 --> 00:05:26,420 چرا که اگر شما به طور کامل به عقب، شما می خواهید برای پیدا کردن 125 00:05:26,420 --> 00:05:28,840 بزرگترین عنصر در اینجا، حتی اگر آن تعلق دارد پایین وجود دارد. 126 00:05:28,840 --> 00:05:31,140 بنابراین شما در حال رفتن به می گویند، همه حق است، در این لحظه در زمان، به اینجا تعلق دارید، 127 00:05:31,140 --> 00:05:32,310 بنابراین شما آن را ترک تنهایی. 128 00:05:32,310 --> 00:05:35,425 >> سپس شما متوجه است، آه، لعنتی، من به حرکت این عنصر کمی کوچکتر به 129 00:05:35,425 --> 00:05:36,470 در سمت چپ شما. 130 00:05:36,470 --> 00:05:38,770 پس من باید به انجام این کار دوباره و دوباره و دوباره. 131 00:05:38,770 --> 00:05:41,410 و اگر من رفتم عقب و جلو، شما مرتب سازی بر اساس احساس عملکرد 132 00:05:41,410 --> 00:05:45,540 این الگوریتم، چون به طور مداوم من برروی آن بکشید و هر کس دیگری را در 133 00:05:45,540 --> 00:05:46,510 آرایه به اتاق را برای آن. 134 00:05:46,510 --> 00:05:47,750 به طوری که بدترین حالت است. 135 00:05:47,750 --> 00:05:48,570 >> در مقابل - 136 00:05:48,570 --> 00:05:50,320 و این یک مطلب یا داستان جالب در زمان گذشته بود - 137 00:05:50,320 --> 00:05:54,065 ما گفت که مرتب سازی بر درج امگا از چه بود؟ 138 00:05:54,065 --> 00:05:57,530 بهترین مورد در حال اجرا زمان مرتب سازی بر درج؟ 139 00:05:57,530 --> 00:05:58,520 پس از آن در واقع N. 140 00:05:58,520 --> 00:06:00,980 که خالی بود که ما را ترک کرد آخرین بار در هیئت مدیره. 141 00:06:00,980 --> 00:06:03,160 >> و آن را امگا از n به دلیل چرا؟ 142 00:06:03,160 --> 00:06:06,630 خب، در بهترین حالت، چه مرتب سازی بر درج تحویل داده شود؟ 143 00:06:06,630 --> 00:06:09,830 خب، یک لیست که به طور کامل طبقه بندی شده اند در حال حاضر، حداقل کار را انجام دهد. 144 00:06:09,830 --> 00:06:12,460 اما آنچه در مورد مرتب سازی بر درج شسته و رفته است است که به دلیل آن را در اینجا شروع می شود و 145 00:06:12,460 --> 00:06:15,340 تصمیم می گیرد، آه، شما تعداد یک، اینجا تعلق دارید. 146 00:06:15,340 --> 00:06:16,970 آه، چه فرصت خوبی است. 147 00:06:16,970 --> 00:06:17,740 >> شما شماره دو هستید. 148 00:06:17,740 --> 00:06:19,030 شما نیز در اینجا تعلق دارند. 149 00:06:19,030 --> 00:06:21,010 شماره سه، حتی بهتر، اینجا تعلق دارید. 150 00:06:21,010 --> 00:06:25,210 به محض این که آن را به پایان می شود شبه لیست، در درج مرتب سازی 151 00:06:25,210 --> 00:06:28,010 که ما را از طریق شفاهی راه می رفت زمان گذشته، آن را انجام داده است. 152 00:06:28,010 --> 00:06:32,790 اما نوع انتخاب، در مقابل، انجام آنچه نگه داشته؟ 153 00:06:32,790 --> 00:06:35,260 >> ایکه حفظ رفتن را از طریق لیست دوباره و دوباره و دوباره. 154 00:06:35,260 --> 00:06:39,160 از آنجا که بینش کلیدی بود تنها یک بار شما را نگاه کرده ام تمام راه را به 155 00:06:39,160 --> 00:06:42,500 انتهای لیست می تواند شما را مطمئن باشید که عنصر انتخاب شما بود 156 00:06:42,500 --> 00:06:45,560 در واقع در حال حاضر کوچکترین عنصر. 157 00:06:45,560 --> 00:06:48,920 بنابراین این مدل پایان ذهنی مختلف است. تا بازده برخی از واقعی جهان بسیار 158 00:06:48,920 --> 00:06:53,130 تفاوت برای ما، و همچنین این تفاوت نظری مجانبی. 159 00:06:53,130 --> 00:06:56,910 >> بنابراین فقط به روکش، پس از آن، بزرگ O N مربع، ما دیده ایم یک چند جمله 160 00:06:56,910 --> 00:06:58,350 الگوریتم های تا کنون. 161 00:06:58,350 --> 00:06:59,580 بزرگ O از n؟ 162 00:06:59,580 --> 00:07:02,870 یک الگوریتم است که می تواند چه خبر توان گفت که بزرگ O از N؟ 163 00:07:02,870 --> 00:07:06,930 در بدترین حالت، طول می کشد تعداد خطی از مراحل. 164 00:07:06,930 --> 00:07:07,810 >> خوب، جستجوی خطی. 165 00:07:07,810 --> 00:07:10,470 و در بدترین حالت، که در آن عنصر شما به دنبال برای زمانی که 166 00:07:10,470 --> 00:07:12,950 استفاده از جستجوی خطی؟ 167 00:07:12,950 --> 00:07:14,680 >> خوب، در بدترین حالت، حتی وجود ندارد. 168 00:07:14,680 --> 00:07:17,000 و یا در بدترین حالت دوم، آن را تمام راه را در پایان است که 169 00:07:17,000 --> 00:07:18,880 به علاوه یا منهای تفاوت یک مرحله. 170 00:07:18,880 --> 00:07:21,180 بنابراین در پایان روز، ما می توانیم بگوییم آن خطی است. 171 00:07:21,180 --> 00:07:23,910 O بزرگ از n خواهد بود جستجوی خطی، زیرا در بدترین حالت، 172 00:07:23,910 --> 00:07:26,610 عنصر حتی وجود ندارد یا آن را تمام راه را در پایان. 173 00:07:26,610 --> 00:07:29,370 >> خوب، بزرگ O از ورود به سیستم از n است. 174 00:07:29,370 --> 00:07:32,760 ما در جزئیات زیادی در مورد صحبت نمی اما ما این کار را قبل از دیده ام. 175 00:07:32,760 --> 00:07:36,840 چه اجرا می شود در اصطلاح لگاریتمی زمان، در بدترین حالت؟ 176 00:07:36,840 --> 00:07:38,500 >> آره، جستجوی دودویی. 177 00:07:38,500 --> 00:07:42,930 و جستجوی دودویی در بدترین حالت ممکن است این عنصر در جایی در 178 00:07:42,930 --> 00:07:45,640 وسط، و یا در جایی در داخل آرایه می شود. 179 00:07:45,640 --> 00:07:48,040 اما شما فقط آن را هنگامی که شما پیدا کنید تقسیم این لیست در نیم، در 180 00:07:48,040 --> 00:07:48,940 نیم، نیم، نیم. 181 00:07:48,940 --> 00:07:50,200 و سپس هورا، آن وجود دارد. 182 00:07:50,200 --> 00:07:52,500 یا دوباره، بدترین حالت، حتی وجود ندارد. 183 00:07:52,500 --> 00:07:56,770 اما شما نمی دانید که آن وجود ندارد تا زمانی که شما به نوعی از رسیدن به این آخرین 184 00:07:56,770 --> 00:08:00,470 پایین ترین عناصر نصف و نصف و نصف. 185 00:08:00,470 --> 00:08:01,400 >> بزرگ O از 1. 186 00:08:01,400 --> 00:08:03,540 بنابراین ما می تواند بزرگ O 2، O بزرگ 3. 187 00:08:03,540 --> 00:08:06,260 در هر زمان شما می خواهید فقط یک عدد ثابت، ما فقط مرتب کردن بر اساس فقط ساده 188 00:08:06,260 --> 00:08:07,280 که به عنوان بزرگ O از 1. 189 00:08:07,280 --> 00:08:10,440 اگرچه اگر در واقع، در آن طول می کشد 2 و یا حتی 100 مرحله، اگر آن را 190 00:08:10,440 --> 00:08:13,680 تعداد ثابتی از مراحل، ما فقط می گویند O بزرگ از 1. 191 00:08:13,680 --> 00:08:15,930 الگوریتم این چیزی است که در بزرگ O از 1؟ 192 00:08:15,930 --> 00:08:18,350 >> مخاطبان: پیدا کردن طول یک متغیر است. 193 00:08:18,350 --> 00:08:21,090 >> دیوید مالان: پیدا کردن طول یک متغیر؟ 194 00:08:21,090 --> 00:08:23,870 >> مخاطبان: نه، طول اگر آن را در حال حاضر طبقه بندی شده اند. 195 00:08:23,870 --> 00:08:24,160 >> دیوید مالان: خوب. 196 00:08:24,160 --> 00:08:27,850 خوب، بنابراین پیدا کردن طول چیزی اگر طول که چیزی، مانند 197 00:08:27,850 --> 00:08:30,020 یک آرایه، در برخی از متغیر ذخیره می شود. 198 00:08:30,020 --> 00:08:33,380 از آنجا که شما فقط می توانید خواندن متغیر، و یا چاپ متغیر، یا 199 00:08:33,380 --> 00:08:34,960 فقط به طور کلی آن متغیر دسترسی داشته باشید. 200 00:08:34,960 --> 00:08:37,299 و voila، که طول می کشد زمان ثابت است. 201 00:08:37,299 --> 00:08:38,909 >> در مقابل، فکر می کنم به خراش. 202 00:08:38,909 --> 00:08:42,460 فکر می کنم به هفته اول C، تماس فقط printf و چاپ 203 00:08:42,460 --> 00:08:46,240 چیزی بر روی صفحه نمایش است مسلما زمان ثابت، به دلیل آن را فقط طول می کشد 204 00:08:46,240 --> 00:08:50,880 برخی از تعدادی از پردازنده را نشان می دهد که متن بر روی صفحه نمایش. 205 00:08:50,880 --> 00:08:52,720 یا صبر کنید - اینطور نیست؟ 206 00:08:52,720 --> 00:08:56,430 چه چیز دیگری ممکن است مدل ما عملکرد چون printf؟ 207 00:08:56,430 --> 00:09:00,420 آیا کسی را دوست مخالف، که شاید هم واقعا ثابت نیست؟ 208 00:09:00,420 --> 00:09:03,600 در چه حس چون printf ممکن است در حال اجرا زمان، در واقع چاپ رشته در 209 00:09:03,600 --> 00:09:05,580 صفحه نمایش، چیزی دیگر از ثابت. 210 00:09:05,580 --> 00:09:07,860 >> مخاطب: [نامفهوم]. 211 00:09:07,860 --> 00:09:08,230 >> دیوید مالان بله. 212 00:09:08,230 --> 00:09:09,300 پس از آن در دیدگاه ما بستگی دارد. 213 00:09:09,300 --> 00:09:13,390 اگر ما در واقع از ورودی به فکر می کنم چون printf به عنوان رشته و 214 00:09:13,390 --> 00:09:16,380 بنابراین ما به اندازه از آن اندازه گیری ورودی طول آن - پس بیایید تماس بگیرید 215 00:09:16,380 --> 00:09:17,780 که طول n و - 216 00:09:17,780 --> 00:09:21,990 مسلما، چون printf خود را بزرگ O N به دلیل آن را به شما N مراحل را 217 00:09:21,990 --> 00:09:24,750 برای چاپ کردن هر یک از کسانی که N شخصیت ها، به احتمال زیاد. 218 00:09:24,750 --> 00:09:27,730 حداقل به حدی که ما فرض می کنیم که شاید آن را با استفاده از یک حلقه for 219 00:09:27,730 --> 00:09:28,560 در زیر هود. 220 00:09:28,560 --> 00:09:30,860 >> اما ما باید به آن نگاه کنید کد برای درک بهتر آن است. 221 00:09:30,860 --> 00:09:33,650 و در واقع، هنگامی که شما بچه ها شروع به تجزیه و تحلیل الگوریتم های خود را، به شما 222 00:09:33,650 --> 00:09:34,900 به معنای واقعی کلمه انجام درست آن. 223 00:09:34,900 --> 00:09:37,765 مرتب کردن بر اساس کد تخم چشم و فکر می کنم خود را در مورد - همه حق است، من این حلقه 224 00:09:37,765 --> 00:09:41,870 اینجا و یا من یک حلقه های تو در تو در اینجا، که رفتن به نفر چیز n بار، 225 00:09:41,870 --> 00:09:46,050 و شما می توانید از خود را بر اساس دلیل راه خود را از طریق کد، حتی اگر آن را 226 00:09:46,050 --> 00:09:47,980 شبه و کد واقعی نیست. 227 00:09:47,980 --> 00:09:49,730 >> بنابراین آنچه در مورد امگا مربع N؟ 228 00:09:49,730 --> 00:09:53,582 الگوریتم چه بود که در بهترین مورد، هنوز هم در زمان N مراحل مربع؟ 229 00:09:53,582 --> 00:09:54,014 آره؟ 230 00:09:54,014 --> 00:09:54,880 >> مخاطب: [نامفهوم]. 231 00:09:54,880 --> 00:09:55,900 >> دیوید مالان: پس مرتب کردن بر اساس انتخاب. 232 00:09:55,900 --> 00:09:59,150 از آنجا که در این مشکل واقعا کاهش می یابد به این واقعیت است که دوباره، من نمی دانم 233 00:09:59,150 --> 00:10:02,600 من کوچکترین تا پیدا کردم من تمام عناصر رفو بررسی کرده ایم. 234 00:10:02,600 --> 00:10:08,050 بنابراین امگا، می گویند، نفر، ما فقط با یک آمد. 235 00:10:08,050 --> 00:10:09,300 مرتب سازی بر درج. 236 00:10:09,300 --> 00:10:12,370 اگر لیست اتفاق می افتد که باید طبقه بندی شده اند در حال حاضر، در بهترین حالت ما فقط باید 237 00:10:12,370 --> 00:10:15,090 برای ساختن یک پاس از طریق آن، که در آن نقطه ما مطمئن هستیم. 238 00:10:15,090 --> 00:10:17,890 و پس از آن که می توان گفت به خطی، برای اطمینان حاصل کنید. 239 00:10:17,890 --> 00:10:20,570 >> در مورد امگا، از مجموع 1 چه؟ 240 00:10:20,570 --> 00:10:23,790 چه، در بهترین حالت ممکن را تعداد ثابتی از مراحل؟ 241 00:10:23,790 --> 00:10:27,220 جستجو خطی بنابراین، اگر شما فقط خوش شانس و عنصر شما دنبال آن هستید 242 00:10:27,220 --> 00:10:31,000 در آغاز از لیست سمت راست است، در صورتی که که در آن شما خود را شروع 243 00:10:31,000 --> 00:10:33,070 پیمایش خطی آن فهرست. 244 00:10:33,070 --> 00:10:35,180 >> و این واقعی است تعداد چیزها می شود. 245 00:10:35,180 --> 00:10:37,660 به عنوان مثال، حتی باینری جستجو، امگا از 1 است. 246 00:10:37,660 --> 00:10:40,310 از آنجا چه می شود اگر شما واقعا رفو خوش شانس و با صدا غذا خوردن با چیز نرمی کسی را زدن یا نوازش کردن در وسط 247 00:10:40,310 --> 00:10:42,950 آرایه شما تعداد شما دنبال آن هستید؟ 248 00:10:42,950 --> 00:10:45,730 بنابراین شما می توانید خوش شانس نیز وجود دارد،. 249 00:10:45,730 --> 00:10:49,190 >> این یکی، در نهایت، امگا n log n استفاده. 250 00:10:49,190 --> 00:10:52,573 بنابراین n log n استفاده، ما واقعا نمی بحث در مورد نشده است، اما - 251 00:10:52,573 --> 00:10:53,300 >> مخاطبان: ادغام مرتب سازی بر؟ 252 00:10:53,300 --> 00:10:53,960 >> دیوید مالان: مرتب کردن بر اساس: ادغام. 253 00:10:53,960 --> 00:10:56,920 این مطلب یا داستان جالب از زمان گذشته بود، که در آن ما مطرح شده است و ما نشان داد 254 00:10:56,920 --> 00:10:58,600 بصری، که الگوریتم وجود دارد. 255 00:10:58,600 --> 00:11:02,470 و ادغام مرتب سازی بر فقط یکی از این الگوریتم این است که اساسا سریعتر 256 00:11:02,470 --> 00:11:03,450 از برخی از این بچه های دیگر. 257 00:11:03,450 --> 00:11:07,800 در واقع، ادغام کوتاه نه تنها در بهترین حالت N N ورود به سیستم، در بدترین 258 00:11:07,800 --> 00:11:09,460 مورد N N ورود به سیستم. 259 00:11:09,460 --> 00:11:14,540 و هنگامی که شما به این تصادف از امگا و O بزرگ بودن همان چیزی است؟ 260 00:11:14,540 --> 00:11:17,310 ما در واقع می تواند توصیف که چه به نام تتا، هر چند آن را 261 00:11:17,310 --> 00:11:18,220 کمی کمتر رایج است. 262 00:11:18,220 --> 00:11:21,730 اما این فقط بدان معنی است که دو محدوده، در این مورد، یکسان هستند. 263 00:11:21,730 --> 00:11:25,770 >> بنابراین مرتب سازی بر ادغام، چه این واقعا جوش پایین برای ما؟ 264 00:11:25,770 --> 00:11:27,000 خب، به یاد انگیزه. 265 00:11:27,000 --> 00:11:30,340 اجازه بدهید من بالا بکشد انیمیشن دیگری است که ما در زمان گذشته به نظر نمی آید. 266 00:11:30,340 --> 00:11:33,390 این یکی، ایده همان است، اما آن را کمی بزرگتر است. 267 00:11:33,390 --> 00:11:36,160 و من قصد دارم به جلو بروید و به این نکته اشاره اول - ما باید مرتب سازی بر درج در 268 00:11:36,160 --> 00:11:39,410 بالا سمت چپ، و سپس مرتب کردن بر اساس انتخاب، مرتب سازی بر حباب، یک زن و شوهر از انواع دیگر - 269 00:11:39,410 --> 00:11:42,670 پوسته و سریع - که ما صحبت نمی در مورد، و پشته و ادغام مرتب سازی بر اساس. 270 00:11:42,670 --> 00:11:47,090 >> بنابراین حداقل سعی کنید به چشم خود تمرکز بر سه در سمت چپ و پس از آن 271 00:11:47,090 --> 00:11:49,120 ادغام مرتب سازی بر زمانی که من کلیک کنید این فلش سبز. 272 00:11:49,120 --> 00:11:51,900 اما من به شما اجازه همه از آنها اجرا شود، فقط به شما حس از تنوع را 273 00:11:51,900 --> 00:11:53,980 الگوریتم هایی که در جهان وجود دارد. 274 00:11:53,980 --> 00:11:56,180 من قصد دارم به شما اجازه این اجرا برای فقط چند ثانیه. 275 00:11:56,180 --> 00:11:59,640 و اگر شما چشمان خود را متمرکز - انتخاب الگوریتم، تمرکز بر آن را فقط برای 276 00:11:59,640 --> 00:12:02,970 ثانیه - شما شروع به دیدن الگوی که آن را پیاده سازی. 277 00:12:02,970 --> 00:12:04,530 >> ادغام مرتب سازی بر، توجه، انجام شده است. 278 00:12:04,530 --> 00:12:06,430 مرتب سازی بر اساس هیپ، مرتب کردن سریع، پوسته - 279 00:12:06,430 --> 00:12:09,480 بنابراین به نظر می رسد ما معرفی سه بدترین الگوریتم های هفته گذشته. 280 00:12:09,480 --> 00:12:12,960 اما این خوب است که ما امروز اینجا هستیم تا به نگاهی جور کردن و ادغام، که یکی از 281 00:12:12,960 --> 00:12:16,500 آنهایی که آسان تر است که در نگاه کنید، حتی هر چند که احتمالا ذهن خود را خم 282 00:12:16,500 --> 00:12:17,490 فقط یک کمی. 283 00:12:17,490 --> 00:12:21,130 در اینجا ما می توانید ببینید که چقدر مرتب سازی بر اساس انتخاب بمکد. 284 00:12:21,130 --> 00:12:24,600 >> اما در سمت تلنگر، آن را واقعا آسان به پیاده سازی. 285 00:12:24,600 --> 00:12:28,160 و شاید برای تنظیم P 3، که یکی از الگوریتم های شما تصمیم به پیاده سازی 286 00:12:28,160 --> 00:12:28,960 برای نسخه استاندارد. 287 00:12:28,960 --> 00:12:30,970 کاملا خوب، کاملا درست است. 288 00:12:30,970 --> 00:12:35,210 >> اما باز هم، به عنوان نفر بزرگ می شود، اگر شما را انتخاب کنید برای اجرای یک الگوریتم سریع تر 289 00:12:35,210 --> 00:12:39,020 دوست ادغام مرتب سازی بر اساس، شانس هستند در بزرگتر و ورودی های بزرگتر، کد خود را فقط 290 00:12:39,020 --> 00:12:39,800 برای اجرای سریع تر. 291 00:12:39,800 --> 00:12:41,090 وب سایت خود را به کار بهتر است. 292 00:12:41,090 --> 00:12:42,650 کاربران شما می رویم به شادتر است. 293 00:12:42,650 --> 00:12:45,280 و به همین ترتیب این اثر وجود دارد در واقع دادن 294 00:12:45,280 --> 00:12:47,350 برخی از ما عمیق تر فکر می کردم. 295 00:12:47,350 --> 00:12:49,990 >> بنابراین اجازه دهید یک نگاهی از در چه ادغام مرتب سازی بر است که در واقع همه چیز در مورد. 296 00:12:49,990 --> 00:12:52,992 نکته جالب این است که ادغام مرتب سازی بر فقط این. 297 00:12:52,992 --> 00:12:56,300 اما این بار، آنچه که ما به نام ام شبه، که شبه 298 00:12:56,300 --> 00:12:57,720 نحو زبان انگلیسی مانند. 299 00:12:57,720 --> 00:12:59,890 و سادگی است مرتب کردن بر اساس جذاب. 300 00:12:59,890 --> 00:13:02,840 >> بنابراین در ورودی از n عنصر - به طوری که فقط به این معنی، در اینجا یک آرایه است. 301 00:13:02,840 --> 00:13:04,000 ازت چیز در آن کردم. 302 00:13:04,000 --> 00:13:05,370 که همه ما می گویید وجود دارد. 303 00:13:05,370 --> 00:13:07,560 >> اگر n کمتر از 2 باشد، بازگشت. 304 00:13:07,560 --> 00:13:08,640 به طوری که فقط در مورد بی اهمیت است. 305 00:13:08,640 --> 00:13:12,580 اگر n کمتر از 2 است، پس بدیهی است که آن را 0 یا 1، که در این صورت چیزی 306 00:13:12,580 --> 00:13:14,780 در حال حاضر طبقه بندی شده اند و یا وجود ندارد، بنابراین فقط بازگشت. 307 00:13:14,780 --> 00:13:15,900 هیچ چیزی برای انجام دادن وجود دارد. 308 00:13:15,900 --> 00:13:18,360 به طوری که یک مورد ساده برای شهامت است. 309 00:13:18,360 --> 00:13:20,110 >> دیگری، ما باید سه مرحله. 310 00:13:20,110 --> 00:13:23,650 مرتب کردن بر اساس نیمه چپ از عناصر، مرتب نیمه سمت راست از عناصر، 311 00:13:23,650 --> 00:13:26,650 و سپس ادغام نیمه طبقه بندی شده اند است. 312 00:13:26,650 --> 00:13:29,400 چه جالب اینجا است که من نوع punting هستم، درست است؟ 313 00:13:29,400 --> 00:13:32,300 نوع تعریف دایره وجود دارد به این الگوریتم است. 314 00:13:32,300 --> 00:13:35,986 به چه معنا است که از این الگوریتم بخشنامه تعریف؟ 315 00:13:35,986 --> 00:13:37,850 >> مخاطب: [نامفهوم]. 316 00:13:37,850 --> 00:13:41,670 >> دیوید مالان: آره، الگوریتم مرتب سازی من، دو مراحل آن "مرتب سازی بر اساس 317 00:13:41,670 --> 00:13:44,640 چیزی. "و به طوری که التماس سوال، که خب، چه من قصد استفاده از 318 00:13:44,640 --> 00:13:46,460 برای مرتب کردن نیمه چپ و نیمه سمت راست است؟ 319 00:13:46,460 --> 00:13:49,600 و زیبایی در اینجا این است که حتی اگر دوباره، این است که ذهن خم 320 00:13:49,600 --> 00:13:54,030 بخشی بالقوه، شما می توانید مشابه استفاده کنید الگوریتم برای مرتب کردن نیمه چپ. 321 00:13:54,030 --> 00:13:54,700 >> اما یک دقیقه صبر کنید. 322 00:13:54,700 --> 00:13:57,070 هنگامی که به شما گفته شده مرتب کردن بر اساس نیمه سمت چپ، دو 323 00:13:57,070 --> 00:13:58,240 مراحل رفتن به بعدی؟ 324 00:13:58,240 --> 00:14:00,550 ما در نیمه سمت چپ خواهید مرتب سازی بر اساس نیمه چپ و راست 325 00:14:00,550 --> 00:14:01,420 نیمی از نیمی چپ. 326 00:14:01,420 --> 00:14:04,430 لعنت، چگونه می توانم آن دو مرتب کردن بر اساس من نیمه، یا چهارم، در حال حاضر؟ 327 00:14:04,430 --> 00:14:05,260 >> اما این خوب است. 328 00:14:05,260 --> 00:14:07,830 ما یک الگوریتم مرتب سازی اینجا. 329 00:14:07,830 --> 00:14:10,660 و حتی اگر شما ممکن است در نگران اولین بار این نوع از بی نهایت است 330 00:14:10,660 --> 00:14:12,780 حلقه، آن را به یک چرخه است که هرگز برای پایان دادن به - آن است که رفتن به 331 00:14:12,780 --> 00:14:15,770 یک بار به پایان چه اتفاقی می افتد؟ 332 00:14:15,770 --> 00:14:16,970 هنگامی که کمتر از 2 است. 333 00:14:16,970 --> 00:14:19,180 که در نهایت اتفاق خواهد افتاد، چرا که اگر شما در حفظ و نصف و 334 00:14:19,180 --> 00:14:23,020 نصف در نصف این نیمه، قطعا در نهایت شما را در حال رفتن به انتها 335 00:14:23,020 --> 00:14:25,350 تا با فقط 0 یا 1 عناصر. 336 00:14:25,350 --> 00:14:28,500 که در آن نقطه، این الگوریتم می گوید شما انجام می شود. 337 00:14:28,500 --> 00:14:31,020 >> بنابراین سحر و جادو واقعی در این الگوریتم به نظر می رسد در 338 00:14:31,020 --> 00:14:33,470 که در مرحله نهایی، ادغام. 339 00:14:33,470 --> 00:14:37,190 این ایده ساده فقط ادغام دو چیزها، این چیزی است که در نهایت رفتن 340 00:14:37,190 --> 00:14:40,920 اجازه می دهد تا ما برای مرتب سازی آرایه ای از، اجازه دهید بگویم، هشت عنصر. 341 00:14:40,920 --> 00:14:44,410 بنابراین من هشت توپ استرس بیشتر در اینجا، هشت تکه های کاغذ و یک 342 00:14:44,410 --> 00:14:45,500 گوگل شیشه ای - 343 00:14:45,500 --> 00:14:46,140 که من را وادار به نگه دارید. 344 00:14:46,140 --> 00:14:46,960 >> [خنده حضار] 345 00:14:46,960 --> 00:14:48,970 >> دیوید مالان: اگر ما می تواند هشت داوطلبان، و بیایید ببینید که اگر ما می توانیم 346 00:14:48,970 --> 00:14:51,430 بازی این است. 347 00:14:51,430 --> 00:14:52,500 وای، OK. 348 00:14:52,500 --> 00:14:53,565 علم کامپیوتر است سرگرم کننده است. 349 00:14:53,565 --> 00:14:54,320 بسیار خوب. 350 00:14:54,320 --> 00:14:57,770 پس چگونه در مورد شما سه، بزرگترین دست وجود دارد. 351 00:14:57,770 --> 00:14:58,580 چهار نفر در پشت. 352 00:14:58,580 --> 00:15:02,220 و چگونه در مورد شما انجام دهد سه نفر در این ردیف؟ 353 00:15:02,220 --> 00:15:03,390 و چهار در جلو. 354 00:15:03,390 --> 00:15:04,920 بنابراین شما هشت، در بالا آمده است. 355 00:15:04,920 --> 00:15:12,060 >> [خنده حضار] 356 00:15:12,060 --> 00:15:13,450 >> دیوید مالان: من در واقع هنوز مطمئن شوید که آنچه در آن است. 357 00:15:13,450 --> 00:15:14,810 آیا این توپ تنش؟ 358 00:15:14,810 --> 00:15:16,510 لامپ میز؟ 359 00:15:16,510 --> 00:15:18,650 ماده؟ 360 00:15:18,650 --> 00:15:19,680 اینترنت؟ 361 00:15:19,680 --> 00:15:20,160 >> OK را بزنید. 362 00:15:20,160 --> 00:15:21,310 بنابراین در بالا آمده است. 363 00:15:21,310 --> 00:15:22,310 چه کسی می خواهم - 364 00:15:22,310 --> 00:15:23,570 حفظ آینده. 365 00:15:23,570 --> 00:15:24,240 اجازه دهید را ببینید. 366 00:15:24,240 --> 00:15:26,460 و این شما را در محل قرار می دهد - 367 00:15:26,460 --> 00:15:27,940 شما را در محل اول هستیم. 368 00:15:27,940 --> 00:15:28,670 آه، آه، یک دقیقه صبر کنید. 369 00:15:28,670 --> 00:15:30,760 1، 2، 3، 4، 5، 6، 7 - آه، خوب است. 370 00:15:30,760 --> 00:15:31,310 همه حق است، ما خوب است. 371 00:15:31,310 --> 00:15:35,130 همه حق است، بنابراین هر کس یک صندلی، اما در شیشه گوگل. 372 00:15:35,130 --> 00:15:36,475 اجازه بدهید من به صف این تا. 373 00:15:36,475 --> 00:15:37,115 نام شما چیست؟ 374 00:15:37,115 --> 00:15:37,440 >> میشل: میشل. 375 00:15:37,440 --> 00:15:38,090 >> دیوید مالان: میشل؟ 376 00:15:38,090 --> 00:15:42,000 همه حق است، شما را وادار به شبیه یکی از بازیکنان بالماسکه و کارناوال که غالبا دارای ماسک منقاردار است، اگر که خوب است. 377 00:15:42,000 --> 00:15:44,625 خوب، من این کار را بیش از حد، گمان می کنم، برای فقط یک لحظه. 378 00:15:44,625 --> 00:15:45,875 همه حق است، آماده به کار. 379 00:15:45,875 --> 00:15:48,510 380 00:15:48,510 --> 00:15:50,950 ما کوشش کرده ام که به آمد تا با مورد استفاده برای Google شیشه ای، و ما 381 00:15:50,950 --> 00:15:53,750 فکر کردم این امر می تواند سرگرم کننده است فقط انجام زمانی که مردم به روی صحنه. 382 00:15:53,750 --> 00:15:57,120 ما جهان را ضبط از چشم انداز خود را. 383 00:15:57,120 --> 00:15:58,410 بسیار خوب. 384 00:15:58,410 --> 00:15:59,830 نه احتمالا آنچه گوگل در نظر گرفته شده است. 385 00:15:59,830 --> 00:16:02,260 همه حق است، پوشیدن اگر شما از ذهن نیست این کار را برای دقیقه ی آینده بی دست و پا، 386 00:16:02,260 --> 00:16:03,150 که فوق العاده خواهد بود. 387 00:16:03,150 --> 00:16:08,620 >> همه حق است، بنابراین ما باید در اینجا یک آرایه عناصر و که آرایه، به عنوان هر 388 00:16:08,620 --> 00:16:11,480 تکه های کاغذ در این مردمی ' دست، در حال حاضر نامرتب. 389 00:16:11,480 --> 00:16:12,050 >> میشل: اوه، که بسیار عجیب و غریب است. 390 00:16:12,050 --> 00:16:12,810 >> دیوید مالان: این تقریبا به صورت تصادفی است. 391 00:16:12,810 --> 00:16:15,760 و در یک لحظه، ما قصد داریم را امتحان کنید برای پیاده سازی ادغام مرتب سازی بر با هم 392 00:16:15,760 --> 00:16:17,950 و ببینید که در آن است که بینش کلیدی است. 393 00:16:17,950 --> 00:16:21,970 و ترفند در اینجا با جور کردن و ادغام است چیزی که ما در نظر گرفته نشده است. 394 00:16:21,970 --> 00:16:24,030 ما در واقع نیاز به برخی از فضای اضافی. 395 00:16:24,030 --> 00:16:26,650 بنابراین چه خبر است به خصوص جالب در این مورد این است که این 396 00:16:26,650 --> 00:16:29,270 بچه ها در حال رفتن به اطراف کمی حرکت می کند کمی، چون من قصد دارم که فرض کنیم که 397 00:16:29,270 --> 00:16:31,880 مجموعه ای فوق العاده از فضا وجود دارد، می گویند، پشت سر آنها. 398 00:16:31,880 --> 00:16:34,570 >> بنابراین اگر آنها در پشت صندلی خود هستید، که آرایه ثانویه است. 399 00:16:34,570 --> 00:16:36,960 اگر آنها در حال نشسته، که آرایه اولیه. 400 00:16:36,960 --> 00:16:40,170 اما این منابع که ما باید است تا کنون با حباب قوی تر نیست 401 00:16:40,170 --> 00:16:42,040 مرتب کردن، مرتب کردن بر اساس انتخاب، مرتب سازی بر درج. 402 00:16:42,040 --> 00:16:44,600 به یاد بیاورید در هفته گذشته، هر کس فقط نوع در محل حوصلگی. 403 00:16:44,600 --> 00:16:46,840 آنها هیچ حافظه اضافی استفاده نمی کنند. 404 00:16:46,840 --> 00:16:49,310 ما اتاق را برای مردم ساخته شده است جابجایی و اسکان مردم در. 405 00:16:49,310 --> 00:16:50,580 >> بنابراین این بینش کلیدی است، بیش از حد. 406 00:16:50,580 --> 00:16:53,410 این تجارت وجود دارد، به طور کلی در علوم کامپیوتر، از منابع است. 407 00:16:53,410 --> 00:16:55,800 اگر شما می خواهید برای سرعت بخشیدن به چیزی مانند زمان، شما در حال رفتن به 408 00:16:55,800 --> 00:16:56,900 مجبور به پرداخت قیمت. 409 00:16:56,900 --> 00:17:00,750 و یکی از این قیمت است که اغلب فضا، مقدار حافظه یا سخت 410 00:17:00,750 --> 00:17:01,700 فضای دیسک است که شما با استفاده از. 411 00:17:01,700 --> 00:17:03,640 یا، رک و پوست کنده، مقدار زمان برنامه نویس. 412 00:17:03,640 --> 00:17:06,700 چه مقدار زمان آن را به شما طول می کشد، انسان، در واقع برخی از پیاده سازی 413 00:17:06,700 --> 00:17:07,829 الگوریتم پیچیده است. 414 00:17:07,829 --> 00:17:09,760 اما امروز، تجارت کردن زمان و مکان است. 415 00:17:09,760 --> 00:17:11,930 >> بنابراین اگر شما بچه ها فقط می تواند نگه دارید تا خود را اعداد به طوری که ما می توانید ببینید که شما 416 00:17:11,930 --> 00:17:15,839 در واقع مطابق 4، 2، 6، 1، 3، 7، 8. 417 00:17:15,839 --> 00:17:16,599 بسیار عالی است. 418 00:17:16,599 --> 00:17:19,520 بنابراین من قصد دارم به تلاش برای هماهنگ و موزون چیزها، اگر شما بچه ها می تواند فقط 419 00:17:19,520 --> 00:17:21,800 سرب من را دنبال کنید با کلیک در اینجا. 420 00:17:21,800 --> 00:17:26,650 >> بنابراین من می خواهم برای به اجرا درآوردن، برای اولین بار، گام اول از شبه است که 421 00:17:26,650 --> 00:17:29,440 در ورودی از n عنصر، اگر n کمتر از 2، و سپس بازگشت. 422 00:17:29,440 --> 00:17:31,370 بدیهی است که نمی اعمال می شود، بنابراین ما حرکت می کند. 423 00:17:31,370 --> 00:17:33,340 بنابراین نیمه چپ از عناصر مرتب سازی بر اساس. 424 00:17:33,340 --> 00:17:36,220 پس این بدان معناست که من قصد دارم به تمرکز من توجه فقط برای یک لحظه در این 425 00:17:36,220 --> 00:17:37,310 چهار بچه ها در اینجا. 426 00:17:37,310 --> 00:17:39,774 همه حق است، چه می توانم بعدی؟ 427 00:17:39,774 --> 00:17:40,570 >> مخاطب: مرتب کردن بر اساس نیمه چپ. 428 00:17:40,570 --> 00:17:42,780 >> دیوید مالان: بنابراین در حال حاضر من مجبور به مرتب کردن بر اساس نیمه چپ از این بچه ها. 429 00:17:42,780 --> 00:17:45,580 چرا که باز هم فرض کنید به خودتان هدف این است که برای مرتب کردن نیمه چپ. 430 00:17:45,580 --> 00:17:46,440 چگونه می توانم شما انجام دهد؟ 431 00:17:46,440 --> 00:17:49,140 فقط به دنبال دستورالعمل، حتی هر چند که ما در حال انجام آن دوباره. 432 00:17:49,140 --> 00:17:50,160 بنابراین نیمی چپ مرتب سازی بر اساس. 433 00:17:50,160 --> 00:17:52,030 در حال حاضر من مرتب سازی بر این دو بچه. 434 00:17:52,030 --> 00:17:53,563 چه می آید؟ 435 00:17:53,563 --> 00:17:54,510 >> مخاطب: مرتب کردن بر اساس نیمه چپ. 436 00:17:54,510 --> 00:17:55,460 >> دیوید مالان: مرتب کردن بر اساس نیمه چپ. 437 00:17:55,460 --> 00:18:00,680 بنابراین در حال حاضر این، این صندلی اینجا را، یک لیست از اندازه 1 است. 438 00:18:00,680 --> 00:18:01,365 و نام خود را دوباره؟ 439 00:18:01,365 --> 00:18:02,390 >> PRINCESS DAISY: شاهزاده خانم دیزی. 440 00:18:02,390 --> 00:18:03,690 >> دیوید مالان: شاهزاده خانم دیزی است در اینجا. 441 00:18:03,690 --> 00:18:07,470 و به این ترتیب او در حال حاضر طبقه بندی شده اند، زیرا لیست اندازه 1. 442 00:18:07,470 --> 00:18:09,490 چه می توانم در آینده انجام دهید؟ 443 00:18:09,490 --> 00:18:13,680 خوب، بازگشت، چرا که لیست اندازه 1، است که کمتر از 2. 444 00:18:13,680 --> 00:18:14,320 پس چه گام بعدی است؟ 445 00:18:14,320 --> 00:18:17,490 و در حال حاضر شما به نوع رد گم کردن در ذهن خود مرور کنید. 446 00:18:17,490 --> 00:18:19,340 >> مرتب کردن بر اساس نیمه سمت راست، که - 447 00:18:19,340 --> 00:18:19,570 نام شما چیست؟ 448 00:18:19,570 --> 00:18:20,220 >> لیندا: لیندا. 449 00:18:20,220 --> 00:18:20,980 >> دیوید مالان لیندا. 450 00:18:20,980 --> 00:18:23,210 و بنابراین آنچه ما در حال حاضر که ما یک لیست از اندازه 1؟ 451 00:18:23,210 --> 00:18:24,440 >> مخاطبان: بازگشت. 452 00:18:24,440 --> 00:18:24,760 >> دیوید مالان: مراقب باشید. 453 00:18:24,760 --> 00:18:29,540 ما بازگشت به ابتدا، و در حال حاضر سوم گام - و اگر من نوعی را به نشان دادن آن توسط 454 00:18:29,540 --> 00:18:33,490 استقبال از دو کرسی در حال حاضر، در حال حاضر من به ادغام این دو عنصر. 455 00:18:33,490 --> 00:18:35,530 بنابراین در حال حاضر متاسفانه، عناصر از. 456 00:18:35,530 --> 00:18:39,920 اما این که در آن فرآیند ادغام است شروع به گرفتن فوتی و فوری. 457 00:18:39,920 --> 00:18:42,410 >> بنابراین اگر شما بچه ها می تواند فقط برای ایستادن یک لحظه، من قصد دارم به شما نیاز دارند، در 458 00:18:42,410 --> 00:18:44,170 لحظه، به مرحله پشت صندلی خود را. 459 00:18:44,170 --> 00:18:46,480 و اگر لیندا، چون 2 کوچکتر از 4 چرا نمی 460 00:18:46,480 --> 00:18:48,130 شما آمده است در اطراف برای اولین بار؟ 461 00:18:48,130 --> 00:18:48,690 اقامت وجود دارد. 462 00:18:48,690 --> 00:18:50,520 بنابراین لیندا، شما برای اولین بار می آیند در اطراف. 463 00:18:50,520 --> 00:18:53,820 >> در حال حاضر در واقع اگر آن را فقط یک آرایه ما فقط می تواند او را در زمان واقعی حرکت می کند 464 00:18:53,820 --> 00:18:55,360 از این صندلی به این نقطه است. 465 00:18:55,360 --> 00:18:57,770 بنابراین تصور کنید که برخی از ثابت در زمان تعداد مراحل 1. 466 00:18:57,770 --> 00:18:58,480 و در حال حاضر - 467 00:18:58,480 --> 00:19:01,490 اما ما نیاز شما را در اولین محل در اینجا. 468 00:19:01,490 --> 00:19:03,930 >> و در حال حاضر اگر شما می توانید به اطراف می آیند، به عنوان خوب، ما قصد داریم به 469 00:19:03,930 --> 00:19:06,300 در محل دو باشد. 470 00:19:06,300 --> 00:19:09,120 و حتی اگر این احساس مانند آن را مدتی طول کشیده است، چه خوب است اکنون 471 00:19:09,120 --> 00:19:14,710 که نیمه چپ نیمه سمت چپ در حال حاضر طبقه بندی شده اند. 472 00:19:14,710 --> 00:19:18,010 پس چه گام بعدی اگر ما در حال حاضر بود، عقب بیشتر در داستان؟ 473 00:19:18,010 --> 00:19:18,980 >> مخاطب: نیمه راست. 474 00:19:18,980 --> 00:19:19,900 >> دیوید مالان: مرتب کردن بر اساس نیمه سمت راست. 475 00:19:19,900 --> 00:19:21,320 پس شما بچه ها باید برای انجام این کار، و همچنین. 476 00:19:21,320 --> 00:19:23,510 بنابراین اگر شما می تواند ایستادن برای فقط یک لحظه؟ 477 00:19:23,510 --> 00:19:25,192 نام شما چیست؟ 478 00:19:25,192 --> 00:19:25,540 >> JESS: جس. 479 00:19:25,540 --> 00:19:25,870 >> دیوید مالان جس. 480 00:19:25,870 --> 00:19:29,720 خوب، پس جس در حال حاضر سمت چپ نیمی از نیمه سمت راست. 481 00:19:29,720 --> 00:19:31,400 و به این ترتیب او یک لیست از اندازه 1 است. 482 00:19:31,400 --> 00:19:32,380 او به وضوح طبقه بندی شده اند. 483 00:19:32,380 --> 00:19:33,070 و نام خود را دوباره؟ 484 00:19:33,070 --> 00:19:33,630 >> میشل: میشل. 485 00:19:33,630 --> 00:19:35,340 >> دیوید مالان: میشل واضح است که یک لیست از اندازه 1. 486 00:19:35,340 --> 00:19:36,050 او در حال حاضر طبقه بندی شده اند. 487 00:19:36,050 --> 00:19:38,690 بنابراین در حال حاضر سحر و جادو اتفاق می افتد، روند ادغام. 488 00:19:38,690 --> 00:19:39,790 به طوری که رفتن به اول است؟ 489 00:19:39,790 --> 00:19:41,560 بدیهی است میشل. 490 00:19:41,560 --> 00:19:43,280 بنابراین اگر شما می تواند در اطراف آمده است. 491 00:19:43,280 --> 00:19:47,090 فضای ما باید برای او در دسترس در حال حاضر درست در پشت این صندلی اینجا. 492 00:19:47,090 --> 00:19:51,580 و در حال حاضر اگر شما نیز می تواند دوباره، ما در حال حاضر، تا روشن شود، دو 493 00:19:51,580 --> 00:19:53,810 نیمه، هر یک از اندازه 2 - 494 00:19:53,810 --> 00:19:57,090 و فقط برای خاطر تصویر، اگر شما می تواند کمی از فضا را - 495 00:19:57,090 --> 00:19:59,780 یکی رو نیمی از اینجا و، یک نیمه سمت راست در اینجا. 496 00:19:59,780 --> 00:20:01,160 >> سیم پیچ بیشتر در داستان. 497 00:20:01,160 --> 00:20:02,270 چه گام بعدی است؟ 498 00:20:02,270 --> 00:20:03,030 >> مخاطب: ادغام خواهند شد. 499 00:20:03,030 --> 00:20:04,160 >> دیوید مالان: بنابراین در حال حاضر ما باید ادغام خواهند شد. 500 00:20:04,160 --> 00:20:07,490 خیلی خوب، بنابراین در حال حاضر، خوشبختانه، ما فقط آزاد شده و چهار صندلی. 501 00:20:07,490 --> 00:20:11,480 بنابراین ما دو برابر مقدار حافظه استفاده می شود، اما ما می توانیم فلیپ flopping بین 502 00:20:11,480 --> 00:20:12,330 دو آرایه. 503 00:20:12,330 --> 00:20:14,190 به طوری که شماره اول است؟ 504 00:20:14,190 --> 00:20:14,850 بنابراین میشل، بدیهی است. 505 00:20:14,850 --> 00:20:16,680 پس در اطراف می آیند و صندلی خود را در اینجا. 506 00:20:16,680 --> 00:20:19,120 و سپس شماره 2 است که به وضوح بعد از آن، بنابراین شما به اینجا می آیند. 507 00:20:19,120 --> 00:20:21,520 شماره 4، شماره 6. 508 00:20:21,520 --> 00:20:23,390 و دوباره، حتی اگر وجود دارد کمی راه رفتن درست بوده، 509 00:20:23,390 --> 00:20:26,010 در واقع، این بلافاصله می تواند اتفاق می افتد، با حرکت یک - 510 00:20:26,010 --> 00:20:26,880 خوب، به خوبی ایفا کرده است. 511 00:20:26,880 --> 00:20:28,350 >> [خنده حضار] 512 00:20:28,350 --> 00:20:29,680 >> دیوید مالان: و در حال حاضر ما در شکل بسیار خوب است. 513 00:20:29,680 --> 00:20:34,910 نیمه چپ از کل ورودی در حال حاضر مرتب شده است. 514 00:20:34,910 --> 00:20:37,370 همه حق است، پس این بچه ها بود مزیت از من - 515 00:20:37,370 --> 00:20:40,340 چگونه آن را تا پایان به همه دختران در چپ و تمام پسران در سمت راست است؟ 516 00:20:40,340 --> 00:20:42,450 >> خوب، پس بچه ها در حال حاضر تبدیل شود. 517 00:20:42,450 --> 00:20:44,680 بنابراین من شما را از طریق راه رفتن نیست این مراحل را. 518 00:20:44,680 --> 00:20:46,550 خواهیم دید که اگر ما می توانیم دوباره شبه همان. 519 00:20:46,550 --> 00:20:50,050 اگر می خواهید به جلو بروید و ایستادن، و شما بچه ها، اجازه دهید من به شما میکروفون. 520 00:20:50,050 --> 00:20:52,990 ببینید اگر شما نمی تواند تکرار آنچه که ما فقط در اینجا 521 00:20:52,990 --> 00:20:53,880 انتهای دیگر از لیست. 522 00:20:53,880 --> 00:20:59,530 چه کسی نیاز به اولین صحبت می کنند، بر اساس الگوریتم؟ 523 00:20:59,530 --> 00:21:03,210 پس چیزی که شما قبل از انجام توضیح شما می توانید حرکات پا. 524 00:21:03,210 --> 00:21:05,930 >> SPEAKER 1: بسیار خوب، پس از من نیمه چپ هستم 525 00:21:05,930 --> 00:21:07,790 نیمه چپ، من بازگشت. 526 00:21:07,790 --> 00:21:08,730 درست است؟ 527 00:21:08,730 --> 00:21:09,250 >> دیوید مالان: خوب. 528 00:21:09,250 --> 00:21:10,350 >> SPEAKER 1: و پس از آن - 529 00:21:10,350 --> 00:21:11,800 >> دیوید مالان: چه کسی میکروفون رفتن به بعدی؟ 530 00:21:11,800 --> 00:21:12,920 >> SPEAKER 1: شماره بعدی. 531 00:21:12,920 --> 00:21:14,720 >> SPEAKER 2: پس من نیمه سمت راست هستم نیمه چپ 532 00:21:14,720 --> 00:21:17,830 نیمه سمت چپ، و من بازگشت. 533 00:21:17,830 --> 00:21:18,050 >> دیوید مالان: خوب. 534 00:21:18,050 --> 00:21:18,550 باز می گردد. 535 00:21:18,550 --> 00:21:21,855 بنابراین در حال حاضر چه تا بعدی را برای شما دو است؟ 536 00:21:21,855 --> 00:21:23,740 >> SPEAKER 2: ما می خواهیم ببینیم که کوچکتر. 537 00:21:23,740 --> 00:21:24,200 >> دیوید مالان: دقیقا. 538 00:21:24,200 --> 00:21:24,940 ما می خواهیم به ادغام. 539 00:21:24,940 --> 00:21:27,590 فضای ما قصد استفاده از ادغام شما را، حتی اگر آنها 540 00:21:27,590 --> 00:21:30,250 بدیهی است که طبقه بندی شده اند در حال حاضر، ما قصد داریم به دنبال همان الگوریتم. 541 00:21:30,250 --> 00:21:31,560 به طوری که در پشت برای اولین بار می رود؟ 542 00:21:31,560 --> 00:21:35,720 SO 3، و پس از آن 7. 543 00:21:35,720 --> 00:21:38,570 و در حال حاضر میکروفن می رود به این بچه ها، خوب؟ 544 00:21:38,570 --> 00:21:43,590 >> SPEAKER 3: پس من نیمه راست هستم نیمه چپ و n من کمتر از 545 00:21:43,590 --> 00:21:45,048 1 است، بنابراین من فقط رفتن به تصویب - 546 00:21:45,048 --> 00:21:46,380 >> دیوید مالان: خوب. 547 00:21:46,380 --> 00:21:49,450 >> SPEAKER 4: من نیمه راست هستم نیمه راست نیمه سمت راست، و من 548 00:21:49,450 --> 00:21:51,740 همچنین یک نفر می شود، بنابراین من رفتن به بازگشت. 549 00:21:51,740 --> 00:21:52,990 بنابراین در حال حاضر ما ادغام خواهند شد. 550 00:21:52,990 --> 00:21:55,140 551 00:21:55,140 --> 00:21:56,150 >> SPEAKER 3: بنابراین ما به عقب برویم. 552 00:21:56,150 --> 00:21:57,160 >> دیوید مالان: پس شما را به عقب بروید. 553 00:21:57,160 --> 00:21:59,200 تا 5 می رود برای اولین بار، پس از آن 8. 554 00:21:59,200 --> 00:22:01,240 و در حال حاضر مخاطبان است، که قدم ما به عقب 555 00:22:01,240 --> 00:22:02,200 پشت به در ذهن ما؟ 556 00:22:02,200 --> 00:22:02,940 >> مخاطب: ادغام خواهند شد. 557 00:22:02,940 --> 00:22:07,270 >> دیوید مالان: ادغام نیمه چپ و راست نیمه از نیمی اصلی سمت چپ. 558 00:22:07,270 --> 00:22:08,840 بنابراین در حال حاضر - 559 00:22:08,840 --> 00:22:10,520 و فقط به این را روشن، کمی از فضا 560 00:22:10,520 --> 00:22:11,690 بین شما دو بچه. 561 00:22:11,690 --> 00:22:13,800 بنابراین در حال حاضر که دو لیست، چپ و راست. 562 00:22:13,800 --> 00:22:18,320 پس چگونه ما در حال حاضر شما بچه ها ادغام ردیف جلو صندلی های دوباره؟ 563 00:22:18,320 --> 00:22:19,600 >> 3 می رود. 564 00:22:19,600 --> 00:22:20,850 سپس 5، بدیهی است. 565 00:22:20,850 --> 00:22:23,110 566 00:22:23,110 --> 00:22:27,330 سپس 7 و در حال حاضر 8. 567 00:22:27,330 --> 00:22:28,710 خوب، و در حال حاضر ما هستند؟ 568 00:22:28,710 --> 00:22:29,650 >> مخاطبان: انجام نشده. 569 00:22:29,650 --> 00:22:32,440 >> دیوید مالان: انجام نشده است، زیرا بدیهی است، یک گام باقی مانده وجود دارد. 570 00:22:32,440 --> 00:22:35,720 اما باز هم، به همین دلیل من با استفاده از این اصطلاحات مخصوص یک صنف مانند "عقب در ذهن خود" 571 00:22:35,720 --> 00:22:37,160 به این دلیل است که واقعا چه اتفاقی می افتد. 572 00:22:37,160 --> 00:22:39,610 ما رفتن را از طریق تمام این مراحل، اما ما مرتب سازی بر توقف برای 573 00:22:39,610 --> 00:22:42,480 لحظه، غواصی عمیق تر به الگوریتم، توقف برای یک لحظه، 574 00:22:42,480 --> 00:22:45,840 غواصی عمیق تر به این الگوریتم، و در حال حاضر ما به مرتب عقب ما 575 00:22:45,840 --> 00:22:49,430 ذهن و خنثیسازی همه این لایه ها که ما تا به نوعی از در انتظار قرار داده است. 576 00:22:49,430 --> 00:22:51,790 >> بنابراین در حال حاضر ما دو لیستی از اندازه 4. 577 00:22:51,790 --> 00:22:54,790 اگر شما بچه ها می تواند ایستادن برای آخرین بار و کمی از فضا را در اینجا به 578 00:22:54,790 --> 00:22:57,230 روشن سازد که این از سمت چپ نیمی از اصلی، 579 00:22:57,230 --> 00:22:58,620 نیمه راست اصلی. 580 00:22:58,620 --> 00:23:01,060 عدد اول چه کسی است که ما نیاز به جلو و به پشت؟ 581 00:23:01,060 --> 00:23:01,870 میشل، البته. 582 00:23:01,870 --> 00:23:03,230 >> بنابراین ما را میشل در اینجا. 583 00:23:03,230 --> 00:23:05,080 و کسی که شماره 2؟ 584 00:23:05,080 --> 00:23:06,440 شماره 2 می آید به عنوان خوب. 585 00:23:06,440 --> 00:23:07,800 شماره 3؟ 586 00:23:07,800 --> 00:23:08,510 بسیار عالی است. 587 00:23:08,510 --> 00:23:16,570 شماره 4، شماره 5، شماره 6، شماره 7 و شماره 8. 588 00:23:16,570 --> 00:23:18,850 >> خوب، پس از آن مانند بسیاری احساس از مراحل، برای مطمئن. 589 00:23:18,850 --> 00:23:22,390 اما حالا بیایید ببینید که اگر ما نمی توانیم تایید مرتب کردن بر اساس به طور مستقیم که این 590 00:23:22,390 --> 00:23:26,190 الگوریتم اساسا، به خصوص به عنوان نفر می شود واقعا بزرگ، به عنوان دیده ایم 591 00:23:26,190 --> 00:23:29,170 با انیمیشن، اساسا سریعتر. 592 00:23:29,170 --> 00:23:33,400 بنابراین من ادعا می کنند این الگوریتم در بدترین مورد و حتی در بهترین حالت، 593 00:23:33,400 --> 00:23:36,160 بزرگ O از n بار ورود N. 594 00:23:36,160 --> 00:23:39,160 که شده است، برخی از جنبه های وجود دارد الگوریتمی که N مراحل طول می کشد، اما 595 00:23:39,160 --> 00:23:43,110 یکی دیگر از جنبه وجود دارد جایی در که تکرار کرد که حلقه، که 596 00:23:43,110 --> 00:23:44,410 ورود به سیستم N مراحل طول می کشد. 597 00:23:44,410 --> 00:23:49,154 آیا می توانیم انگشت خود را بر روی آنچه که قرار داده است دو عدد با اشاره به؟ 598 00:23:49,154 --> 00:23:51,320 خوب، که در آن - 599 00:23:51,320 --> 00:23:54,160 کجا میکروفون؟ 600 00:23:54,160 --> 00:23:58,660 >> SPEAKER 1: آیا وارد بخش مدیریت شوید، N شکستن ما به دو - 601 00:23:58,660 --> 00:23:59,630 تقسیم دو، در اصل. 602 00:23:59,630 --> 00:24:00,120 >> دیوید مالان: دقیقا. 603 00:24:00,120 --> 00:24:03,000 هر زمان که ما در هر الگوریتم در نتیجه می بینید کنون، این الگو وجود دارد 604 00:24:03,000 --> 00:24:04,200 تقسیم، تقسیم، تقسیم. 605 00:24:04,200 --> 00:24:05,700 و آن را به طور معمول کاهش می یابد به چیزی است که 606 00:24:05,700 --> 00:24:07,100 لگاریتمی، ورود به سیستم پایه 2. 607 00:24:07,100 --> 00:24:10,180 اما واقعا می تواند هر چیزی باشد، اما وارد بخش مدیریت شوید، پایه 2. 608 00:24:10,180 --> 00:24:11,330 >> در حال حاضر آنچه در مورد N؟ 609 00:24:11,330 --> 00:24:14,550 من می توانید ببینید که ما به نوعی شما تقسیم بچه ها - شما تقسیم، تقسیم، 610 00:24:14,550 --> 00:24:15,910 شما تقسیم، تقسیم شده است. 611 00:24:15,910 --> 00:24:18,760 در پایان از کجا آمده است؟ 612 00:24:18,760 --> 00:24:19,810 >> پس از آن ادغام. 613 00:24:19,810 --> 00:24:20,610 از آنجا که در مورد آن فکر می کنم. 614 00:24:20,610 --> 00:24:25,420 هنگامی که شما ادغام هشت نفر با هم، به موجب آن نیمی از آنها در مجموعه ای از چهار 615 00:24:25,420 --> 00:24:27,770 و نیم دیگر دیگر مجموعه ای از چهار، چگونه می توانم شما بروید 616 00:24:27,770 --> 00:24:28,820 در مورد انجام ادغام؟ 617 00:24:28,820 --> 00:24:30,830 خوب، شما بچه ها این کار را کرد نسبتا به طور مستقیم. 618 00:24:30,830 --> 00:24:34,140 >> اما اگر من به جای آن کمی بیشتر متد، من ممکن است در اشاره 619 00:24:34,140 --> 00:24:38,090 شخص اول سمت چپ با سمت چپ من دست، اشاره در فرد سمت چپ 620 00:24:38,090 --> 00:24:42,080 که نیمی با دست راست من، و فقط پس از آن از طریق راه می رفت 621 00:24:42,080 --> 00:24:46,990 لیست، با اشاره به کوچکترین عنصر در هر زمان، در حال حرکت انگشت من بیش از و 622 00:24:46,990 --> 00:24:48,970 به عنوان در سراسر فهرست مورد نیاز است. 623 00:24:48,970 --> 00:24:51,890 اما آنچه در مورد این ادغام روند من مقایسه این دو جفت ارز 624 00:24:51,890 --> 00:24:53,460 از عناصر. 625 00:24:53,460 --> 00:24:57,270 از نیمه سمت راست و از سمت چپ نیم، من هرگز یک بار backtracking می شود. 626 00:24:57,270 --> 00:25:00,570 >> بنابراین ادغام خود را گرفتن بیش از n مرحله. 627 00:25:00,570 --> 00:25:03,250 و چند بار من برای انجام این کار ادغام؟ 628 00:25:03,250 --> 00:25:07,150 خب، نه بیش از n، و ما فقط دیدم که با ادغام نهایی است. 629 00:25:07,150 --> 00:25:13,120 و به همین ترتیب اگر شما چیزی را که طول می کشد وارد بخش مدیریت شوید، N مراحل n بار و یا بالعکس، 630 00:25:13,120 --> 00:25:15,210 آن را به ما n بار ورود به سیستم N. 631 00:25:15,210 --> 00:25:16,310 >> و چرا این بهتر است؟ 632 00:25:16,310 --> 00:25:19,600 خوب، اگر ما در حال حاضر می دانیم که ورود به سیستم نفر بهتر از n است - درست است؟ 633 00:25:19,600 --> 00:25:22,590 ما در جستجوی دودویی را دیدم، دفترچه تلفن عنوان مثال، ورود N قطعا بود 634 00:25:22,590 --> 00:25:23,760 بهتر از خطی است. 635 00:25:23,760 --> 00:25:28,420 بنابراین این بدان معناست که نفر زمان ورود N قطعا بهتر از n بار یکی دیگر از 636 00:25:28,420 --> 00:25:30,390 N، های AKA N مربع. 637 00:25:30,390 --> 00:25:32,400 و این چیزی است که ما در نهایت احساس. 638 00:25:32,400 --> 00:25:34,928 >> دور آنقدر بزرگ از تشویق، اگر ما می تواند، برای این بچه ها. 639 00:25:34,928 --> 00:25:38,920 >> [تشویق حضار] 640 00:25:38,920 --> 00:25:41,550 >> دیوید مالان و هدایای فراق خود را - شما ممکن است اعداد را نگه دارید، 641 00:25:41,550 --> 00:25:44,010 اگر شما می خواهم. 642 00:25:44,010 --> 00:25:45,620 و هدیه فراق خود، به طور معمول. 643 00:25:45,620 --> 00:25:47,290 اوه، و ما شما را ارسال فیلم، میشل. 644 00:25:47,290 --> 00:25:48,343 متشکرم. 645 00:25:48,343 --> 00:25:49,250 بسیار خوب. 646 00:25:49,250 --> 00:25:50,400 راهنما خودتان را به یک توپ استرس. 647 00:25:50,400 --> 00:25:54,110 >> و اجازه دهید من بالا بکشد، در عین حال، دوستان ما راب Bowden برای ارائه 648 00:25:54,110 --> 00:25:59,520 دیدگاه تا حدودی متفاوت است در این مورد، از آنجا که شما می توانید در مورد این فکر می کنم 649 00:25:59,520 --> 00:26:01,280 مراحل اتفاق می افتد در یک تا حدودی راه متفاوت است. 650 00:26:01,280 --> 00:26:04,750 در واقع، مجموعه ای را برای آنچه که راب در مورد به ما نشان می دهد فرض بر این است که ایم 651 00:26:04,750 --> 00:26:09,030 در حال حاضر انجام می شود تا تقسیم لیست بزرگ به هشت لیست کوچک، 652 00:26:09,030 --> 00:26:10,570 هر یک از اندازه 1. 653 00:26:10,570 --> 00:26:13,350 >> بنابراین ما در حال تغییر است از شبه کمی فقط به مرتب کردن بر اساس در 654 00:26:13,350 --> 00:26:15,320 ایده اصلی از چگونگی ادغام این نسخهها کار میکند. 655 00:26:15,320 --> 00:26:17,600 اما زمان در حال اجرا از آنچه او در مورد به انجام این کار است که هنوز هم 656 00:26:17,600 --> 00:26:19,110 رفتن به همان. 657 00:26:19,110 --> 00:26:23,540 و دوباره، تا مجموعه ای در اینجا این است که او با هشت لیستی از اندازه 1 آغاز شده است. 658 00:26:23,540 --> 00:26:27,730 بنابراین بخشی که در آن او به شما از دست رفته ام در واقع انجام می شود ورود به سیستم N، N ورود به سیستم، ورود به سیستم N 659 00:26:27,730 --> 00:26:31,205 تقسیم ورودی. 660 00:26:31,205 --> 00:26:32,120 >> [پخش ویدئو] 661 00:26:32,120 --> 00:26:33,615 >> که آن را برای گام اول است. 662 00:26:33,615 --> 00:26:38,270 برای مرحله دو، بارها و بارها ادغام جفت فهرست. 663 00:26:38,270 --> 00:26:39,210 >> دیوید مالان HM. 664 00:26:39,210 --> 00:26:41,270 فقط صوتی در حال آمدن است از کامپیوتر من است. 665 00:26:41,270 --> 00:26:42,520 بیایید این دوباره سعی کنید. 666 00:26:42,520 --> 00:26:45,330 667 00:26:45,330 --> 00:26:48,310 >> فقط خودسرانه انتخاب کنید که - در حال حاضر ما چهار لیست. 668 00:26:48,310 --> 00:26:51,590 669 00:26:51,590 --> 00:26:52,120 بدانید قبل از. 670 00:26:52,120 --> 00:26:53,040 >> دیوید مالان: ایناهاش. 671 00:26:53,040 --> 00:27:00,510 >> از ادغام (108) و (15)، ما پایان با لیست 15، 108. 672 00:27:00,510 --> 00:27:07,170 ادغام 50 و 4، در نهایت با 4، 50. 673 00:27:07,170 --> 00:27:12,990 ادغام 8 و 42، ما در نهایت با 8، 42. 674 00:27:12,990 --> 00:27:19,970 و ادغام 23 و 16، در نهایت با 16، 23. 675 00:27:19,970 --> 00:27:23,270 >> در حال حاضر تمام لیست ها ما را از اندازه 2 هستند. 676 00:27:23,270 --> 00:27:26,690 توجه داشته باشید که هر یک از چهار لیست طبقه بندی شده اند. 677 00:27:26,690 --> 00:27:29,450 بنابراین ما می توانیم شروع به ادغام جفت از لیست دوباره. 678 00:27:29,450 --> 00:27:38,420 ادغام 15 و 108 و 4 و 50، ما اول را 4، و سپس 15، سپس 679 00:27:38,420 --> 00:27:41,500 50، و سپس 108. 680 00:27:41,500 --> 00:27:50,610 با ادغام 8، 42 و 16، 23، ما برای اولین بار 8، 16، 23، 681 00:27:50,610 --> 00:27:52,700 پس از آن 42. 682 00:27:52,700 --> 00:27:57,600 >> بنابراین در حال حاضر ما فقط دو لیست از اندازه 4، که هر یک از آنها طبقه بندی شده اند. 683 00:27:57,600 --> 00:28:01,170 بنابراین در حال حاضر ما ادغام این دو لیست. 684 00:28:01,170 --> 00:28:11,835 اول، ما را به 4، و سپس ما را به 8، پس ما را از 15، 16، و سپس 685 00:28:11,835 --> 00:28:19,456 23، 42، 50، و سپس 108. 686 00:28:19,456 --> 00:28:19,872 >> [END پخش ویدئو] 687 00:28:19,872 --> 00:28:23,430 >> دیوید مالان: باز هم، اطلاع، او هرگز لمس یک فنجان داده شده بیش از یک بار 688 00:28:23,430 --> 00:28:24,860 پس از پیشبرد فراتر از آن است. 689 00:28:24,860 --> 00:28:26,200 بنابراین او هرگز تکرار. 690 00:28:26,200 --> 00:28:29,850 بنابراین او همیشه در حال حرکت به سمت، و این که در آن ما N ما. 691 00:28:29,850 --> 00:28:33,290 >> چرا به من اجازه نمی بکشد تا یک انیمیشن که ما قبلا دیدم، اما این بار 692 00:28:33,290 --> 00:28:35,110 تمرکز تنها در جور کردن و ادغام. 693 00:28:35,110 --> 00:28:38,030 بگذار بروم جلو و بزرگنمایی در این در اینجا. 694 00:28:38,030 --> 00:28:42,530 اول اجازه دهید من یک ورودی تصادفی را انتخاب کنید، بزرگ این است، و شما می توانید از مراجعه مرتب سازی بر اساس 695 00:28:42,530 --> 00:28:46,600 آنچه ما اعطا شده، در اوایل در زمان، ادغام مرتب سازی بر است که در واقع در حال انجام است. 696 00:28:46,600 --> 00:28:50,330 >> پس توجه کنید که شما می توانید این نیمه و یا این محله ها و یا این هشتم 697 00:28:50,330 --> 00:28:53,140 مشکل این است که همه به طور ناگهانی شروع به شکل گرفتن خوب است. 698 00:28:53,140 --> 00:28:57,070 و سپس در نهایت، شما در آن می بینیم پایان که بم، 699 00:28:57,070 --> 00:28:58,860 همه چیز با هم ادغام شدند. 700 00:28:58,860 --> 00:29:01,690 >> اینها فقط سه مرحله مختلف طول می کشد در همان ایده است. 701 00:29:01,690 --> 00:29:05,980 اما بینش کلیدی، درست مثل شکاف و تسخیر در کلاس اول، 702 00:29:05,980 --> 00:29:10,640 این بود که ما تصمیم گرفت به نحوی تقسیم مشکل را به چیزی بزرگ، به 703 00:29:10,640 --> 00:29:14,760 مرتب سازی بر چیزی در روح یکسان، اما کوچکتر و کوچکتر و کوچکتر 704 00:29:14,760 --> 00:29:15,660 و کوچکتر است. 705 00:29:15,660 --> 00:29:18,420 >> در حال حاضر یکی دیگر از راه سرگرم کننده برای مرتب سازی بر اساس فکر می کنم در این مورد، حتی اگر آن را نمی 706 00:29:18,420 --> 00:29:20,520 رفتن به شما همان حسی را درک، 707 00:29:20,520 --> 00:29:21,640 انیمیشن زیر است. 708 00:29:21,640 --> 00:29:25,400 پس این کسی فیلم کنار هم قرار دادن که در ارتباط های مختلف 709 00:29:25,400 --> 00:29:29,970 برای تلفن های موبایل با عملیات های مختلف برای مرتب کردن بر اساس قرار دادن، برای جور کردن و ادغام، و 710 00:29:29,970 --> 00:29:31,150 برای زن و شوهر از دیگران. 711 00:29:31,150 --> 00:29:32,330 بنابراین در یک لحظه، من قصد دارم به آمار بازی. 712 00:29:32,330 --> 00:29:33,600 حدود یک دقیقه طولانی است. 713 00:29:33,600 --> 00:29:37,410 و حتی اگر شما هنوز هم می توانید ببینید الگوهای اتفاق می افتد، در این زمان شما می توانید 714 00:29:37,410 --> 00:29:41,420 همچنین بشنوند که چگونه این الگوریتم هستند اجرای متفاوت و با 715 00:29:41,420 --> 00:29:43,950 الگوهای تا حدودی متفاوت است. 716 00:29:43,950 --> 00:29:45,830 >> این نوع درج شده است. 717 00:29:45,830 --> 00:29:50,400 >> [تن بازی] 718 00:29:50,400 --> 00:29:52,400 >> دیوید مالان: دوباره در تلاش است برای قرار دادن هر عنصر 719 00:29:52,400 --> 00:29:52,900 به جایی که به آن تعلق داشت. 720 00:29:52,900 --> 00:29:54,628 این نوع حباب است. 721 00:29:54,628 --> 00:30:10,097 >> [تن بازی] 722 00:30:10,097 --> 00:30:13,630 >> دیوید مالان: و شما می توانید از خود را بر اساس احساس چگونه نسبتا کمی کار آن را انجام 723 00:30:13,630 --> 00:30:15,834 در هر مرحله. 724 00:30:15,834 --> 00:30:20,470 این همان چیزی است که نادرست برای تلفن های موبایل مانند. 725 00:30:20,470 --> 00:30:21,472 >> [تن بازی] 726 00:30:21,472 --> 00:30:25,222 >> دیوید مالان: این نوع انتخاب، که در آن ما عنصر ما می خواهید را انتخاب کنید 727 00:30:25,222 --> 00:30:28,845 از رفتن دوباره و دوباره و دوباره و قرار دادن آن را در آغاز راه است. 728 00:30:28,845 --> 00:30:37,674 >> [تن بازی] 729 00:30:37,674 --> 00:30:43,970 >> دیوید مالان: این ادغام مرتب سازی بر است، که شما واقعا می توانید شروع به احساس. 730 00:30:43,970 --> 00:30:51,810 >> [تن بازی] 731 00:30:51,810 --> 00:30:54,770 >> [خنده حضار] 732 00:30:54,770 --> 00:30:58,395 >> دیوید مالان: چیزی به نام گنوم مرتب کردن، که ما آن را در نگاه نمی شود. 733 00:30:58,395 --> 00:31:13,630 >> [تن بازی] 734 00:31:13,630 --> 00:31:17,910 >> دیوید مالان: پس اجازه بدهید من را ببینید، در حال حاضر، پریشان به عنوان شما امیدوارم 735 00:31:17,910 --> 00:31:21,110 موسیقی، اگر من می توانم کمی لغزش کمی از ریاضی را در اینجا. 736 00:31:21,110 --> 00:31:24,850 بنابراین یک راه چهارم که ما می توانیم وجود دارد فکر می کنم در مورد آنچه در آن به معنی این 737 00:31:24,850 --> 00:31:29,210 توابع سریع تر از آنهایی که که ما قبلا دیده ام. 738 00:31:29,210 --> 00:31:32,470 و اگر شما در این دوره از پس زمینه ریاضیات، شما 739 00:31:32,470 --> 00:31:36,030 در واقع شاید می دانم که در حال حاضر که شما می توانید یک مدت در این روش با کف دست زدن - 740 00:31:36,030 --> 00:31:40,400 یعنی بازگشت، یک تابع که به نحوی خود را می نامد. 741 00:31:40,400 --> 00:31:44,780 >> و دوباره، به یاد بیاورید که مرتب سازی بر ادغام شبه حس بازگشتی بود 742 00:31:44,780 --> 00:31:48,460 که یکی از مراحل مرتب سازی بر ادغام بود به تماس مرتب سازی بر - 743 00:31:48,460 --> 00:31:49,740 است که، خود را. 744 00:31:49,740 --> 00:31:52,480 اما خوشبختانه، چون ما نگه داشته تماس مرتب کردن، و یا ادغام مرتب سازی بر اساس، 745 00:31:52,480 --> 00:31:55,880 به طور خاص، در کوچک و کوچکتر و فهرست کوچکتر، ما در نهایت 746 00:31:55,880 --> 00:32:00,005 تشکر کف به آنچه ما می خواهیم تماس بگیرید مورد پایه، در مورد hard-coded بودن که 747 00:32:00,005 --> 00:32:04,270 گفت: اگر کوچک است، کمتر از 2 در آن صورت، فقط بلافاصله بازگشت. 748 00:32:04,270 --> 00:32:07,550 اگر ما آن مورد خاص را ندارد، الگوریتم پایین، هرگز 749 00:32:07,550 --> 00:32:11,010 و شما در واقع به دریافت کنید حلقه بی نهایت واقعا برای همیشه. 750 00:32:11,010 --> 00:32:14,330 >> اما فرض کنید که ما می خواستیم به حال قرار داده است برخی از اعداد در این مورد، مجددا، با استفاده از n 751 00:32:14,330 --> 00:32:15,660 عنوان اندازه از ورودی. 752 00:32:15,660 --> 00:32:18,680 و من می خواستم از شما بپرسد، چه مجموع مدت زمان درگیر در 753 00:32:18,680 --> 00:32:19,800 در حال اجرا چیدمان بر ادغام؟ 754 00:32:19,800 --> 00:32:22,960 یا به طور کلی تر، چه هزینه آن را در زمان؟ 755 00:32:22,960 --> 00:32:24,730 >> به خوبی از آن بسیار آسان است برای اندازه گیری. 756 00:32:24,730 --> 00:32:29,010 اگر n کمتر از 2، زمان درگیر در مرتب سازی n عنصر، 757 00:32:29,010 --> 00:32:30,480 که در آن n 2، 0 است. 758 00:32:30,480 --> 00:32:31,410 از آنجا که ما فقط بازگشت. 759 00:32:31,410 --> 00:32:32,510 هیچ کار باید انجام شود وجود دارد. 760 00:32:32,510 --> 00:32:35,660 حالا مسلما، شاید آن را یک گام یا دو گام های به شکل مقدار 761 00:32:35,660 --> 00:32:38,420 کار می کنند، اما آن را به اندازه کافی نزدیک به 0 است که من فقط می گویند هیچ کاری 762 00:32:38,420 --> 00:32:40,940 مورد نیاز اگر این فهرست آنقدر کوچک است به غیر می شود. 763 00:32:40,940 --> 00:32:42,580 >> اما این مورد جالب است. 764 00:32:42,580 --> 00:32:47,320 مورد بازگشتی شاخه ای از شبه که گفت: دیگری، مرتب کردن 765 00:32:47,320 --> 00:32:52,000 نیمه چپ، مرتب سمت راست در نیمه، ادغام دو نیمه است. 766 00:32:52,000 --> 00:32:55,530 حالا چرا این عبارت می کند نمایندگی که هزینه؟ 767 00:32:55,530 --> 00:32:58,690 خوب، T N فقط بدان معناست که زمان برای مرتب کردن n عنصر است. 768 00:32:58,690 --> 00:33:03,070 و سپس در سمت راست ... علامت مساوی وجود دارد، T از n تقسیم 769 00:33:03,070 --> 00:33:06,600 توسط 2 با اشاره به هزینه از چه؟ 770 00:33:06,600 --> 00:33:07,570 مرتب سازی بر نیمه چپ. 771 00:33:07,570 --> 00:33:10,990 T دیگر از n تقسیم بر 2 است احتمالا اشاره به هزینه 772 00:33:10,990 --> 00:33:12,390 مرتب کردن بر اساس نیمه سمت راست. 773 00:33:12,390 --> 00:33:14,590 >> و پس از آن نفر به علاوه؟ 774 00:33:14,590 --> 00:33:15,420 آیا ادغام. 775 00:33:15,420 --> 00:33:19,120 زیرا اگر دو لیست، یکی از N اندازه بیش از 2 و دیگری از سایز n 776 00:33:19,120 --> 00:33:22,580 بیش از 2، شما باید اساسا لمس هر یک از این عناصر، درست مثل راب 777 00:33:22,580 --> 00:33:24,990 لمس هر یک از فنجان، و فقط همانطور که ما در هر یک از اشاره 778 00:33:24,990 --> 00:33:26,310 داوطلبان بر روی صحنه. 779 00:33:26,310 --> 00:33:28,790 بنابراین هزینه ادغام است. 780 00:33:28,790 --> 00:33:31,780 >> حالا متاسفانه، این فرمول همچنین خود را بازگشتی. 781 00:33:31,780 --> 00:33:36,390 بنابراین اگر این سؤال، اگر n است که می گویند، 16، اگر 16 نفر در مرحله وجود دارد 782 00:33:36,390 --> 00:33:40,670 یا 16 فنجان در این ویدئو، که چگونه بسیاری از کل مراحل آن را به آنها مرتب سازی بر اساس 783 00:33:40,670 --> 00:33:41,550 با جور کردن و ادغام؟ 784 00:33:41,550 --> 00:33:45,790 این در واقع یک جواب واضح نیست، چون در حال حاضر شما باید به مرتب کردن بر اساس از 785 00:33:45,790 --> 00:33:48,500 به صورت بازگشتی پاسخ به این فرمول. 786 00:33:48,500 --> 00:33:51,190 >> اما این خوب است، چون به من اجازه پیشنهاد که انجام می دهیم به شرح زیر است. 787 00:33:51,190 --> 00:33:56,670 مدت زمان لازم برای مرتب کردن بر اساس 16 نفر و یا 16 فنجان است که نشان داده می شود 788 00:33:56,670 --> 00:33:58,020 به طور کلی به عنوان T 16. 789 00:33:58,020 --> 00:34:01,400 اما این برابر است، با توجه به ما فرمول قبلی، 2 برابر مقدار 790 00:34:01,400 --> 00:34:04,780 از مدت زمان لازم برای مرتب سازی بر اساس 8 فنجان به علاوه 16. 791 00:34:04,780 --> 00:34:08,590 و دوباره، به علاوه 16 زمان به ادغام است، و دو بار T 8 792 00:34:08,590 --> 00:34:10,790 زمان برای مرتب کردن نیمه چپ و نیمه راست. 793 00:34:10,790 --> 00:34:11,989 >> اما باز هم، این کافی نیست. 794 00:34:11,989 --> 00:34:13,210 ما باید به شیرجه رفتن عمیق تر است. 795 00:34:13,210 --> 00:34:16,409 این به این معنی است که ما باید برای پاسخ به این سوال، T 8 چیست؟ 796 00:34:16,409 --> 00:34:19,610 خوب T 8 فقط 2 زمان محلی شما با T 4 به علاوه 8. 797 00:34:19,610 --> 00:34:20,520 خب، چه T از 4؟ 798 00:34:20,520 --> 00:34:23,780 T 4 فقط 2 بار های T از 2 به علاوه 4. 799 00:34:23,780 --> 00:34:25,489 خب، چه T از 2؟ 800 00:34:25,489 --> 00:34:29,030 T 2 است فقط 2 برابر T 1 به علاوه 2. 801 00:34:29,030 --> 00:34:31,940 >> و دوباره، ما گرفتن نوع در این چرخه گیر کرده است. 802 00:34:31,940 --> 00:34:34,790 اما این مورد به ضربه که به اصطلاح مورد پایه. 803 00:34:34,790 --> 00:34:37,310 از آنجا که آنچه از مجموع 1 T، آیا ما ادعا می کنیم؟ 804 00:34:37,310 --> 00:34:37,810 0. 805 00:34:37,810 --> 00:34:39,730 بنابراین در حال حاضر در نهایت، ما می توانیم به عقب کار می کنند. 806 00:34:39,730 --> 00:34:44,290 >> اگر T، از مجموع 1 0 است، من در حال حاضر می توانید به عقب برگردید تا یک خط به این پسر در اینجا، و من می توانم 807 00:34:44,290 --> 00:34:46,330 پلاگین در 0 T 1. 808 00:34:46,330 --> 00:34:51,770 بنابراین این بدان معناست که آن را برابر با 2 برابر صفر، در غیر این صورت به عنوان 0، به علاوه 2 شناخته شده است. 809 00:34:51,770 --> 00:34:53,739 و به طوری که کل بیان 2 است. 810 00:34:53,739 --> 00:34:58,740 >> حالا اگر من را T 2، که پاسخ 2، آن را به خط وسط، T 811 00:34:58,740 --> 00:35:02,740 4، که به من می دهد 2 بار 2 به علاوه 4 تا 8. 812 00:35:02,740 --> 00:35:07,080 اگر من پس از آن در 8 قبلی به برق وصل کردن خط، که به من می دهد 2 بار 8، 16. 813 00:35:07,080 --> 00:35:12,470 و اگر ما پس از آن که با ادامه 24 اضافه کردن در سال 16، ما در نهایت گرفتن یک 814 00:35:12,470 --> 00:35:13,820 ارزش از 64 است. 815 00:35:13,820 --> 00:35:18,480 >> حالا که به خودی خود مرتب کردن بر اساس صحبت می کند هیچ چیز به نفر نماد، 816 00:35:18,480 --> 00:35:20,700 O بزرگ، امگا که ما شده است صحبت کردن در مورد. 817 00:35:20,700 --> 00:35:24,890 اما معلوم است که 64 است در واقع 16، اندازه ورودی، 818 00:35:24,890 --> 00:35:27,110 پایه 2 از 16 به سیستم وارد شوید. 819 00:35:27,110 --> 00:35:30,200 و اگر این است که کمی نا آشنا، فقط فکر می کنم، و آن را دوباره 820 00:35:30,200 --> 00:35:30,700 به شما نهایت. 821 00:35:30,700 --> 00:35:33,775 اگر این پایه ورود به سیستم 2 است، آن را مانند 2 مطرح شده به آنچه به شما می دهد 16؟ 822 00:35:33,775 --> 00:35:36,380 اوه، 4، پس از آن 16 بار 4. 823 00:35:36,380 --> 00:35:39,380 >> و دوباره، این یک معامله بزرگ نیست در صورتی که این مرتب کردن بر اساس حافظه مبهم و مه آلود در حال حاضر. 824 00:35:39,380 --> 00:35:43,720 اما در حال حاضر، در ایمان که 16 ورود به سیستم 16 64 است. 825 00:35:43,720 --> 00:35:46,590 و به این ترتیب در واقع، با این سلامت عقل ساده ، ما تایید کرده ایم - 826 00:35:46,590 --> 00:35:48,250 اما ثابت نه به طور رسمی - 827 00:35:48,250 --> 00:35:52,800 که زمان در حال اجرا از ادغام مرتب سازی بر واقع n log n استفاده. 828 00:35:52,800 --> 00:35:53,790 >> خیلی بد نیست. 829 00:35:53,790 --> 00:35:57,260 آن را قطعا بهتر از الگوریتم های ما تا کنون دیده ام، و 830 00:35:57,260 --> 00:36:00,710 به این دلیل است که ما قوی تر کرده ام، یک، یک تکنیک به نام بازگشت. 831 00:36:00,710 --> 00:36:03,880 اما جالب تر از آن، که مفهوم تقسیم و فتح. 832 00:36:03,880 --> 00:36:07,460 باز هم، واقعا هفته 0 stuff است که حتی در حال حاضر در حال تکرار شونده در 833 00:36:07,460 --> 00:36:08,740 بیشتر راه فوتی و فوری. 834 00:36:08,740 --> 00:36:11,750 >> در حال حاضر یک تمرین سرگرم کننده کوچک، اگر شما هرگز انجام نداده - و شما احتمالا 835 00:36:11,750 --> 00:36:14,660 نمی خواهد داشته باشد، زیرا نوع نرمال مردم فکر نمی کنم برای انجام این کار. 836 00:36:14,660 --> 00:36:20,650 اما اگر من به google.com و اگر بروید من می خواهم برای یادگیری چیزی در مورد 837 00:36:20,650 --> 00:36:22,356 بازگشت، وارد کنید. 838 00:36:22,356 --> 00:36:25,106 839 00:36:25,106 --> 00:36:29,058 >> [خنده حضار] 840 00:36:29,058 --> 00:36:32,030 [خنده حضار بیشتر] 841 00:36:32,030 --> 00:36:33,385 دیوید مالان: شوخی بد به آرامی گسترش. 842 00:36:33,385 --> 00:36:34,450 [خنده حضار] 843 00:36:34,450 --> 00:36:36,970 دیوید مالان: فقط در صورت، آن وجود دارد. 844 00:36:36,970 --> 00:36:38,710 من طلسم آن اشتباه نیست، و شوخی وجود دارد. 845 00:36:38,710 --> 00:36:40,810 بسیار خوب. 846 00:36:40,810 --> 00:36:42,950 توضیح دهید که آن را به مردم در کنار شما اگر آن شده است کاملا فقط رتبهدهی نشده است کلیک نیست. 847 00:36:42,950 --> 00:36:47,650 اما بازگشت، به طور کلی تر، اشاره به روند یک تابع فراخوانی شده 848 00:36:47,650 --> 00:36:51,430 خود را، و یا به طور کلی، تقسیم مشکل به چیزی است که می تواند 849 00:36:51,430 --> 00:36:56,220 تکه تکه با حل یکسان حل مشکلات نماینده. 850 00:36:56,220 --> 00:36:58,400 >> چرخ دنده ها تغییر خب، بیایید برای فقط یک لحظه. 851 00:36:58,400 --> 00:37:00,840 ما دوست داریم در برخی از cliffhangers پایان، پس بیایید شروع به تنظیم 852 00:37:00,840 --> 00:37:05,870 این مرحله، برای چند دقیقه، یک ایده بسیار ساده است - 853 00:37:05,870 --> 00:37:07,620 که از مبادله دو عنصر، درست است؟ 854 00:37:07,620 --> 00:37:10,040 همه از این الگوریتم ما بوده ام صحبت کردن در مورد زن و شوهر گذشته 855 00:37:10,040 --> 00:37:12,420 سخنرانی ها شامل برخی از مرتب کردن بر اساس مبادله. 856 00:37:12,420 --> 00:37:14,630 امروز آن را با آنها گرفتن تجسم شد تا از صندلی خود و 857 00:37:14,630 --> 00:37:18,570 قدم زدن در اطراف، اما در کد، ما می فقط یک عنصر از یک آرایه 858 00:37:18,570 --> 00:37:20,370 و صدای تلپ آن را به یکی دیگر از. 859 00:37:20,370 --> 00:37:21,880 >> پس چگونه ما در مورد انجام این کار؟ 860 00:37:21,880 --> 00:37:24,850 خوب، اجازه دهید من جلو بروید و نوشتن یک برنامه سریع در اینجا. 861 00:37:24,850 --> 00:37:31,600 من قصد دارم به جلو بروید و انجام این را به عنوان شرح زیر است. 862 00:37:31,600 --> 00:37:33,910 اجازه دهید این - 863 00:37:33,910 --> 00:37:38,070 چه می خواهیم در این یک تماس بگیرید؟ 864 00:37:38,070 --> 00:37:38,650 >> در واقع، نه. 865 00:37:38,650 --> 00:37:39,420 به من اجازه عقب. 866 00:37:39,420 --> 00:37:41,220 من نمی خواهم برای انجام این کار مطلب یا داستان جالب است. 867 00:37:41,220 --> 00:37:42,270 این سرگرم کننده یغما می بردند. 868 00:37:42,270 --> 00:37:43,600 بیایید به جای انجام. 869 00:37:43,600 --> 00:37:47,430 >> فرض کنید که من می خواهم به ارسال نامه کمی برنامه و که در حال حاضر پذیرای این 870 00:37:47,430 --> 00:37:48,700 ایده بازگشت. 871 00:37:48,700 --> 00:37:50,370 من به نوعی جلوتر از خودم وجود دارد. 872 00:37:50,370 --> 00:37:51,420 من قصد دارم به انجام موارد زیر است. 873 00:37:51,420 --> 00:38:00,220 >> اول، سریع عبارتند از استاندارد io.h، و همچنین شامل cs50.h. 874 00:38:00,220 --> 00:38:03,200 و سپس من قصد دارم به جلو بروید و اعلام درجه اعتبار ساقط اصلی اعضای هیات تحریریه 875 00:38:03,200 --> 00:38:04,360 در روش معمول است. 876 00:38:04,360 --> 00:38:07,920 من متوجه شدم من فایل misnamed کرده ام، بنابراین اجازه دهید من فقط اضافه کردن یک پسوند. بنابراین در اینجا 877 00:38:07,920 --> 00:38:09,510 که ما می توانیم آن را به درستی کامپایل. 878 00:38:09,510 --> 00:38:10,970 شروع این تابع خاموش. 879 00:38:10,970 --> 00:38:13,290 >> و تابع من می خواهم برای نوشتن، کاملا به سادگی، یکی می پرسد که 880 00:38:13,290 --> 00:38:16,210 کاربر برای یک عدد و سپس می افزاید: تمام اعداد بین آن 881 00:38:16,210 --> 00:38:19,920 تعداد و، می گویند، 0. 882 00:38:19,920 --> 00:38:22,510 بنابراین برای اولین بار من قصد دارم به جلو بروید و اعلام N اعضای هیات. 883 00:38:22,510 --> 00:38:24,760 سپس من را کپی کنید برخی از کد که ما برای مدتی استفاده می شود. 884 00:38:24,760 --> 00:38:26,660 در حالی که چیزی درست است. 885 00:38:26,660 --> 00:38:28,000 من که در یک لحظه باز می گردد. 886 00:38:28,000 --> 00:38:29,010 >> چه من می خواهم کاری انجام دهید؟ 887 00:38:29,010 --> 00:38:33,460 من می خواهم بگویم چون printf مثبت لطفا عدد صحیح. 888 00:38:33,460 --> 00:38:36,130 و سپس من قصد دارم به می گویند نفر می شود که بین المللی است. 889 00:38:36,130 --> 00:38:38,800 تا دوباره، برخی از کد boilerplate که ما قبل از استفاده می شود. 890 00:38:38,800 --> 00:38:40,810 و من قصد دارم برای انجام این کار در حالی که کمتر از 1 است. 891 00:38:40,810 --> 00:38:44,120 بنابراین این اطمینان حاصل شود که کاربر به من می دهد یک عدد صحیح مثبت است. 892 00:38:44,120 --> 00:38:45,490 >> و در حال حاضر من قصد دارم به انجام موارد زیر است. 893 00:38:45,490 --> 00:38:51,020 من می خواهم برای اضافه کردن تمام اعداد بین 1 و n یا 0 و n، 894 00:38:51,020 --> 00:38:52,570 معادل، برای دریافت مبلغ کل. 895 00:38:52,570 --> 00:38:55,100 بنابراین نماد بزرگ سیگما که شما ممکن است به یاد. 896 00:38:55,100 --> 00:38:59,050 بنابراین من قصد دارم این کار را با اولین تماس یک تابع به نام سیگما، 897 00:38:59,050 --> 00:39:06,030 انتقال آن در n، و سپس من قصد دارم به می گویند چون printf، پاسخ این است که سمت راست وجود دارد. 898 00:39:06,030 --> 00:39:08,180 >> بنابراین در کوتاه مدت، من و int از کاربر. 899 00:39:08,180 --> 00:39:09,280 من اطمینان حاصل شود آن مثبت است. 900 00:39:09,280 --> 00:39:12,700 من یک متغیر پاسخ نام نوع int و فروشگاه در آن بازگشت 901 00:39:12,700 --> 00:39:15,610 ارزش سیگما، عبور در n به عنوان ورودی. 902 00:39:15,610 --> 00:39:17,060 و سپس من نسخه قابل چاپ کردن که پاسخ. 903 00:39:17,060 --> 00:39:19,550 >> متاسفانه، حتی اگر سیگما برای تلفن های موبایل مانند چیزی که ممکن است در 904 00:39:19,550 --> 00:39:24,040 فایل math.h، اعلام آن، در واقع نه. 905 00:39:24,040 --> 00:39:24,690 به طوری که OK. 906 00:39:24,690 --> 00:39:26,170 من می توانم این خودم پیاده سازی. 907 00:39:26,170 --> 00:39:29,160 من قصد دارم برای پیاده سازی یک تابع به نام سیگما، و آن را رفتن به گرفتن 908 00:39:29,160 --> 00:39:29,900 پارامتر - 909 00:39:29,900 --> 00:39:32,100 اجازه دهید فقط آن را متر، فقط پس از آن متفاوت است. 910 00:39:32,100 --> 00:39:35,910 و سپس در اینجا، من قصد دارم برای گفتن، خوب، اگر متر کمتر از 1 است - این است که یک 911 00:39:35,910 --> 00:39:38,180 بسیار غیر برنامه. 912 00:39:38,180 --> 00:39:41,700 بنابراین من قصد دارم به جلو بروید و فورا 0 بازگشت. 913 00:39:41,700 --> 00:39:45,920 این فقط به معنی اضافه کردن تمام را ندارد اعداد بین 1 و اگر M M 914 00:39:45,920 --> 00:39:48,470 است خود را 0 و یا منفی است. 915 00:39:48,470 --> 00:39:50,900 >> و سپس من قصد دارم به جلو بروید و انجام این کار بسیار تکراری است. 916 00:39:50,900 --> 00:39:53,090 من قصد دارم برای انجام این نوع از قدیمی مدرسه، و من قصد دارم به جلو بروید 917 00:39:53,090 --> 00:39:57,150 و می گویند که من قصد دارم به اعلام مبلغ به 0. 918 00:39:57,150 --> 00:39:59,630 سپس من قصد دارم به برای حلقه بین المللی - 919 00:39:59,630 --> 00:40:02,820 و به من اجازه انجام آن را برای مطابقت با ما کد توزیع، بنابراین شما باید یک کپی 920 00:40:02,820 --> 00:40:07,500 در خانه. اعضای هیات من می شود 1 تا من کمتر یا برابر است با m است. 921 00:40:07,500 --> 00:40:09,430 من به علاوه به علاوه. 922 00:40:09,430 --> 00:40:11,430 و سپس در داخل این حلقه for - 923 00:40:11,430 --> 00:40:12,440 ما تقریبا وجود دارد - 924 00:40:12,440 --> 00:40:15,810 جمع می شود مبلغ به علاوه 1. 925 00:40:15,810 --> 00:40:17,670 و سپس من قصد دارم برای بازگشت به جمع. 926 00:40:17,670 --> 00:40:19,420 >> بنابراین من این کار را به سرعت، کاملا مسلما. 927 00:40:19,420 --> 00:40:22,775 اما باز هم، تابع اصلی زیبا ساده، بر اساس کد ایم 928 00:40:22,775 --> 00:40:23,190 تا کنون نوشته شده است. 929 00:40:23,190 --> 00:40:25,610 با استفاده از حلقه دوگانه به مثبت int از کاربر. 930 00:40:25,610 --> 00:40:29,870 من پس از آن تصویب که int به یک تابع جدید به نام سیگما، خواستار آن، دوباره، N. 931 00:40:29,870 --> 00:40:33,100 و من ذخیره مقدار بازگشتی، پاسخ از جعبه سیاه در حال حاضر 932 00:40:33,100 --> 00:40:35,460 شناخته شده به عنوان سیگما، در یک متغیر به نام جواب. 933 00:40:35,460 --> 00:40:36,580 سپس من آن را چاپ کنید. 934 00:40:36,580 --> 00:40:39,090 >> اگر ما در حال حاضر ادامه داستان، چگونه سیگما اجرا؟ 935 00:40:39,090 --> 00:40:40,840 من پیشنهاد می کنم به شرح زیر اجرا. 936 00:40:40,840 --> 00:40:43,560 اول، کمی از چک کردن خطا مطمئن شوید که کاربر نیست 937 00:40:43,560 --> 00:40:46,480 messing با من و عبور برخی از ارزش منفی یا 0. 938 00:40:46,480 --> 00:40:49,710 سپس من یک متغیر به نام اعلام خلاصه و تنظیم آن را به 0. 939 00:40:49,710 --> 00:40:55,910 >> و در حال حاضر من شروع به حرکت از من برابر 1 راه اندازی شده است و از جمله متر، 940 00:40:55,910 --> 00:41:00,130 چون من می خواهم به همه شامل اعداد از یکی از طریق متر، شامل. 941 00:41:00,130 --> 00:41:04,350 و داخل این حلقه for، من فقط نمی جمع می شود هر آنچه در آن است در حال حاضر، به علاوه 942 00:41:04,350 --> 00:41:08,900 ارزش من. 943 00:41:08,900 --> 00:41:10,370 به علاوه ارزش من. 944 00:41:10,370 --> 00:41:14,090 >> همانطور که به کنار، اگر شما این دیده نمی قبل از آن، برخی از قند نحوی وجود دارد 945 00:41:14,090 --> 00:41:14,870 برای این خط. 946 00:41:14,870 --> 00:41:21,120 من می توانم این بازنویسی به علاوه برابر من، فقط به خودم نجات چند keystrokes 947 00:41:21,120 --> 00:41:22,570 و به نگاه کمی کولر. 948 00:41:22,570 --> 00:41:23,140 اما این همه. 949 00:41:23,140 --> 00:41:24,660 این عملکرد همان چیزی است. 950 00:41:24,660 --> 00:41:26,710 >> متاسفانه، این کد را رفتن به کامپایل رتبهدهی نشده است. 951 00:41:26,710 --> 00:41:31,600 اگر من اجرا را سیگما 0، چگونه می من برای گرفتن فریاد زد؟ 952 00:41:31,600 --> 00:41:33,473 چه آن را دوست ندارد؟ 953 00:41:33,473 --> 00:41:35,740 >> مخاطب: [نامفهوم]. 954 00:41:35,740 --> 00:41:37,800 >> دیوید مالان: بله، من اعلام کنید تابع تا بالای، درست است؟ 955 00:41:37,800 --> 00:41:40,590 C نوع احمق، آن را تنها در آن آنچه به شما بگویم آن را به انجام، و شما 956 00:41:40,590 --> 00:41:41,880 باید آن را در آن منظور. 957 00:41:41,880 --> 00:41:45,910 و به همین ترتیب اگر من ضربه را وارد کنید در اینجا، من رفتن به هشدار در مورد سیگما ضمنی 958 00:41:45,910 --> 00:41:46,860 بیانیه. 959 00:41:46,860 --> 00:41:48,120 >> آه، نه یک مشکل. 960 00:41:48,120 --> 00:41:50,370 من می توانم به بالا، و من می توانم می گویند، همه حق است، یک دقیقه صبر کنید. 961 00:41:50,370 --> 00:41:54,240 سیگما یک تابع است که می گرداند int و انتظار 962 00:41:54,240 --> 00:41:56,620 بین المللی به عنوان ورودی، نقطه و ویرگول بدین. 963 00:41:56,620 --> 00:41:59,550 یا من می توانم کل تابع قرار داده است بالا اصلی است، اما به طور کلی، من می خواهم 964 00:41:59,550 --> 00:42:02,260 توصیه در برابر آن، زیرا این خوب همیشه در بالا تا اصلی 965 00:42:02,260 --> 00:42:06,310 شما در سمت راست می توانید شیرجه رفتن و می دانند چه برنامه با خواندن اصلی برای اولین بار انجام می دهند. 966 00:42:06,310 --> 00:42:07,930 >> بنابراین در حال حاضر اجازه دهید من روشن روی صفحه نمایش. 967 00:42:07,930 --> 00:42:09,330 بازسازی سیگما 0. 968 00:42:09,330 --> 00:42:10,340 همه به نظر می رسد برای بررسی کردن. 969 00:42:10,340 --> 00:42:11,970 اجازه دهید من اجرا سیگما 0. 970 00:42:11,970 --> 00:42:12,770 بین مثبت. 971 00:42:12,770 --> 00:42:15,580 من آن را به شماره 3 تا نگه داشتن آن ساده است. 972 00:42:15,580 --> 00:42:18,710 به طوری که باید به من 3 به علاوه 2 به علاوه 1 تا 6. 973 00:42:18,710 --> 00:42:20,750 را وارد کنید، و در واقع من 6. 974 00:42:20,750 --> 00:42:21,820 >> من می توانم چیزی بزرگتر انجام دهد - 975 00:42:21,820 --> 00:42:24,080 50، 12، 75. 976 00:42:24,080 --> 00:42:27,690 فقط به عنوان یک مماس، من قصد دارم برای انجام چیزی مضحک است مانند واقعا بزرگ 977 00:42:27,690 --> 00:42:30,375 تعداد، آه، که در واقع کار می کرد - 978 00:42:30,375 --> 00:42:31,600 EH، من فکر نمی کنم درست است. 979 00:42:31,600 --> 00:42:32,810 اجازه دهید را ببینید. 980 00:42:32,810 --> 00:42:34,060 بیایید واقعا با آن ظروف سرباز یا مسافر. 981 00:42:34,060 --> 00:42:37,150 982 00:42:37,150 --> 00:42:38,400 >> این یک مشکل است. 983 00:42:38,400 --> 00:42:43,180 984 00:42:43,180 --> 00:42:44,970 چه خبر است؟ 985 00:42:44,970 --> 00:42:46,050 کد است که بد نیست. 986 00:42:46,050 --> 00:42:48,470 این هنوز خطی است. 987 00:42:48,470 --> 00:42:50,810 سوت یک اثر خوب است، هر چند. 988 00:42:50,810 --> 00:42:52,060 چه خبر است؟ 989 00:42:52,060 --> 00:42:54,700 990 00:42:54,700 --> 00:42:55,620 >> هنوز مطمئن شوید که اگر من آن را شنیده. 991 00:42:55,620 --> 00:42:57,620 بنابراین آن را تبدیل کنید - و این است که به عنوان یک کنار. 992 00:42:57,620 --> 00:42:59,400 این است که به هسته ای نیست ایده بازگشت. 993 00:42:59,400 --> 00:43:02,480 به نظر می رسد، چرا که من در تلاش برای نمایندگی چنین تعداد بزرگی، بیشتر 994 00:43:02,480 --> 00:43:06,980 به احتمال زیاد آن را بغلط تعبیر توسط C به عنوان یک عدد مثبت نیست، 995 00:43:06,980 --> 00:43:09,980 اما عدد منفی. 996 00:43:09,980 --> 00:43:12,690 >> ما در این مورد صحبت کرده ایم، اما آن را معلوم است که اعداد منفی وجود دارد 997 00:43:12,690 --> 00:43:14,210 در جهان علاوه بر به اعداد مثبت. 998 00:43:14,210 --> 00:43:16,290 و وسیله ای است که شما می توانید نشان دهنده یک عدد منفی 999 00:43:16,290 --> 00:43:19,530 اساسا، شما با استفاده از یک کمی خاص را نشان می دهد 1000 00:43:19,530 --> 00:43:20,400 بیش از منفی مثبت است. 1001 00:43:20,400 --> 00:43:22,950 این کمی پیچیده تر از آن، اما این ایده اساسی است. 1002 00:43:22,950 --> 00:43:26,740 >> متاسفانه، اگر C گیج کننده است از آن بیت را به واقع به معنی، 1003 00:43:26,740 --> 00:43:30,790 آه، این یک عدد منفی، حلقه من است در اینجا، به عنوان مثال، در واقع هرگز 1004 00:43:30,790 --> 00:43:31,740 رفتن به خاتمه. 1005 00:43:31,740 --> 00:43:33,850 بنابراین اگر من در واقع چاپ شد چیزی دوباره و دوباره، ما می 1006 00:43:33,850 --> 00:43:34,650 کل خیلی را ببینید. 1007 00:43:34,650 --> 00:43:36,220 اما باز هم، این است که علاوه بر نقطه است. 1008 00:43:36,220 --> 00:43:38,590 این است که واقعا فقط یک نوع از کنجکاوی فکری که ما می آیند 1009 00:43:38,590 --> 00:43:39,550 بازگشت به نهایت. 1010 00:43:39,550 --> 00:43:43,400 اما در حال حاضر، این است که درست است اجرای اگر فرض کنیم که 1011 00:43:43,400 --> 00:43:45,970 کاربر خواهد شد نوع داده int ارائه که در عرض چند نوع داده int مناسب. 1012 00:43:45,970 --> 00:43:49,370 >> اما من ادعا می کنند که این کد، رک و پوست کنده، می تواند خیلی بیشتر به سادگی انجام می شود. 1013 00:43:49,370 --> 00:43:54,060 اگر هدف در دست است را به یک عدد مانند متر و اضافه کردن همه 1014 00:43:54,060 --> 00:43:59,510 اعداد بین آن و 1، و یا برعکس بین 1 و آن، من ادعا می کنند 1015 00:43:59,510 --> 00:44:03,380 که من می توانم این ایده که ادغام قرض نوع داشت، که در نظر گرفتن یک مشکل 1016 00:44:03,380 --> 00:44:05,660 این اندازه و تقسیم آن به چیزی کوچکتر است. 1017 00:44:05,660 --> 00:44:09,875 شاید نیمی نیست، اما کوچکتر، اما representatively همان. 1018 00:44:09,875 --> 00:44:12,130 ایده همان است، اما یک مشکل کوچک. 1019 00:44:12,130 --> 00:44:15,470 >> بنابراین من در واقع - اجازه بدهید این فایل (Save me) مرا نگه دار با شماره نسخه متفاوت. 1020 00:44:15,470 --> 00:44:17,670 ما این نسخه را خواهید تماس بگیرید 1 به جای 0. 1021 00:44:17,670 --> 00:44:20,790 و من ادعا می کنند که من در واقع می توانید reimplement این در این نوع 1022 00:44:20,790 --> 00:44:22,160 ذهن خم راه است. 1023 00:44:22,160 --> 00:44:23,710 >> من قصد دارم تنهایی برای ترک بخشی از آن. 1024 00:44:23,710 --> 00:44:27,710 من قصد دارم برای گفتن اگر متر است کمتر از یا حتی مساوی به 0 - 1025 00:44:27,710 --> 00:44:29,280 من فقط رفتن به کمی مقعد تر این زمان 1026 00:44:29,280 --> 00:44:30,520 با چک کردن خطا من - 1027 00:44:30,520 --> 00:44:33,190 من قصد دارم به جلو بروید و بازگشت 0. 1028 00:44:33,190 --> 00:44:34,490 این اختیاری است. 1029 00:44:34,490 --> 00:44:37,500 من فقط به سادگی تصمیم گیری اگر کاربر به من می دهد یک عدد منفی، من 1030 00:44:37,500 --> 00:44:41,490 بازگشت 0، و آنها باید به عنوان خوانده شده اسناد بیشتر از نزدیک. 1031 00:44:41,490 --> 00:44:42,170 >> دیگری - 1032 00:44:42,170 --> 00:44:44,070 متوجه آنچه که من قصد دارم به انجام. 1033 00:44:44,070 --> 00:44:49,260 دیگری من می خواهم به بازگشت M PLUS - 1034 00:44:49,260 --> 00:44:51,010 چه سیگما متر است؟ 1035 00:44:51,010 --> 00:44:56,710 خب، سیگما از M به علاوه متر منهای 1، به علاوه متر منهای 2، به علاوه منهای 3. 1036 00:44:56,710 --> 00:44:58,030 من نمی خواهم به نوشتن همه که از. 1037 00:44:58,030 --> 00:44:59,120 چرا من نه فقط زدن توپ؟ 1038 00:44:59,120 --> 00:45:05,080 در بازگشتی خودم با کمی تماس بگیرید مشکل کوچکتر، نقطه و ویرگول بدین شکل، 1039 00:45:05,080 --> 00:45:06,840 و آن روز تماس بگیرید؟ 1040 00:45:06,840 --> 00:45:07,040 >> درست است؟ 1041 00:45:07,040 --> 00:45:10,980 در حال حاضر در اینجا، بیش از حد، شما ممکن است احساس یا نگرانی که این حلقه بی نهایت که من است 1042 00:45:10,980 --> 00:45:15,450 القا، به موجب آن من به اجرای سیگما تماس سیگما. 1043 00:45:15,450 --> 00:45:20,342 اما این کاملا خوب، چون من پیش فکر کردم که خطوط اضافه شده؟ 1044 00:45:20,342 --> 00:45:22,600 >> مخاطب: [نامفهوم]. 1045 00:45:22,600 --> 00:45:25,430 >> دیوید مالان: 23 تا 26، که اگر شرایط من است. 1046 00:45:25,430 --> 00:45:28,390 از آنجا چه خبر خوب در مورد تفریق در اینجا، چون من در حفظ و 1047 00:45:28,390 --> 00:45:31,180 توزیع مشکلات کوچکتر سیگما، کوچکتر مشکلات، کوچکتر - آن نیست 1048 00:45:31,180 --> 00:45:31,870 نیمی از اندازه. 1049 00:45:31,870 --> 00:45:34,380 این تنها یک گام کودک کوچکتر، اما این خوب است. 1050 00:45:34,380 --> 00:45:38,050 چرا که در نهایت، ما کار خواهیم کرد راه ما را به 1 یا 0. 1051 00:45:38,050 --> 00:45:41,630 و زمانی که ما 0، سیگما رفتن به خود تماس بگیرید دیگر. 1052 00:45:41,630 --> 00:45:43,590 این رفتن برای برگرداندن 0. 1053 00:45:43,590 --> 00:45:47,960 >> بنابراین اثر، اگر شما از باد چیدمان بر این در ذهن خود مرور کنید، این است که اضافه کردن M PLUS 1054 00:45:47,960 --> 00:45:52,740 متر، منفی 1، به علاوه متر منهای 2، به همراه متر منهای 3، به علاوه نقطه، نقطه، نقطه، متر منهای 1055 00:45:52,740 --> 00:45:57,820 متر، در نهایت شما با دادن 0 و اثر در نهایت به اضافه همه 1056 00:45:57,820 --> 00:45:59,070 این کارها با هم. 1057 00:45:59,070 --> 00:46:02,380 بنابراین ما را نداشته باشند، با بازگشتی، حل مشکل این است که ما 1058 00:46:02,380 --> 00:46:03,470 نمی تواند قبل از حل. 1059 00:46:03,470 --> 00:46:06,840 در واقع، نسخه 0 از این، و هر مشکل تا به امروز است، قابل حل است 1060 00:46:06,840 --> 00:46:09,980 با تنها با استفاده از حلقه ها و یا در حالی که حلقه ها یا سازه های مشابه. 1061 00:46:09,980 --> 00:46:13,150 >> اما بازگشتی، من اعتقاد داشتن به ما می دهد راه های مختلف تفکر در مورد 1062 00:46:13,150 --> 00:46:17,010 مشکلات، به موجب آن اگر ما می توانیم راه حلی برای مشکلات خود، آن را از چیزی تقسیم 1063 00:46:17,010 --> 00:46:22,340 تا حدودی زیادی را به چیزی تا حدودی کوچکتر، من ادعا می کنند که ما می توانیم آن را حل کند 1064 00:46:22,340 --> 00:46:26,040 شاید کمی بیشتر به زیبایی در شرایط از طراحی، با کد کمتر، 1065 00:46:26,040 --> 00:46:30,980 و شاید حتی حل مشکلاتی که خواهد بود سخت تر است، همانطور که ما در نهایت باید 1066 00:46:30,980 --> 00:46:33,280 ببینید، حل صرفا صورت تکراری. 1067 00:46:33,280 --> 00:46:35,980 >> اما مطلب یا داستان جالب است که من می خواهم ما را در این بود. 1068 00:46:35,980 --> 00:46:40,720 بگذار بروم جلو و باز یک فایل از - 1069 00:46:40,720 --> 00:46:44,300 در واقع، بگذار بروم و انجام این سرعت واقعی است. 1070 00:46:44,300 --> 00:46:46,875 بگذار بروم جلو و پیشنهاد شرح زیر است. 1071 00:46:46,875 --> 00:46:51,160 1072 00:46:51,160 --> 00:46:54,785 در میان کد امروز این فایل است در اینجا. 1073 00:46:54,785 --> 00:47:01,090 1074 00:47:01,090 --> 00:47:03,050 این یکی در اینجا، noswap. 1075 00:47:03,050 --> 00:47:06,260 >> بنابراین این برنامه کمی احمقانه است که من شلاق که ادعا می کند به انجام 1076 00:47:06,260 --> 00:47:06,940 شرح زیر است. 1077 00:47:06,940 --> 00:47:10,140 در متد Main، آن را برای اولین بار اعلام کرد نوع int به نام x و آن را اختصاص 1078 00:47:10,140 --> 00:47:11,100 ارزش 1. 1079 00:47:11,100 --> 00:47:13,520 سپس آن را اعلام Y int و آن مقدار 2 را اختصاص می دهد. 1080 00:47:13,520 --> 00:47:15,310 سپس آن را چاپ آنچه x و y است. 1081 00:47:15,310 --> 00:47:17,781 سپس آن را می گوید، مبادله، نقطه نقطه نقطه. 1082 00:47:17,781 --> 00:47:21,670 >> سپس آن را ادعا می کند به فراخوانی یک تابع مبادله نامیده می شود، عبور در x و 1083 00:47:21,670 --> 00:47:24,290 Y، که ایده آن این است که امیدوارم x و y خواهد آمد 1084 00:47:24,290 --> 00:47:25,620 مختلف، مخالف است. 1085 00:47:25,620 --> 00:47:27,110 سپس آن را ادعا می کنند عوض شده! 1086 00:47:27,110 --> 00:47:28,420 با یک علامت تعجب. 1087 00:47:28,420 --> 00:47:30,190 سپس آن را چاپ x و y. 1088 00:47:30,190 --> 00:47:33,480 >> اما معلوم است که این بسیار تظاهرات ساده پایین 1089 00:47:33,480 --> 00:47:35,570 در اینجا است که در واقع حشره دار. 1090 00:47:35,570 --> 00:47:38,870 حتی اگر من اعلام موقت متغیر و به طور موقت با قرار دادن در 1091 00:47:38,870 --> 00:47:42,010 و پس از آن من reassigning ارزش ب - 1092 00:47:42,010 --> 00:47:45,080 که معقول احساس می کند، چون من یک کپی از در دما نجات داد. 1093 00:47:45,080 --> 00:47:48,410 سپس من ب روز رسانی برابر هر چه در درجه حرارت بود. 1094 00:47:48,410 --> 00:47:51,610 این نوع از بازی پوسته حرکت به B و B را با استفاده از این 1095 00:47:51,610 --> 00:47:54,360 مرد متوسط ​​دما نامیده می شود احساس می کند کاملا معقول است. 1096 00:47:54,360 --> 00:47:57,270 >> اما من ادعا می کنند که زمانی که من این اجرا کد، به عنوان من در حال حاضر می خواهیم انجام دهیم - 1097 00:47:57,270 --> 00:47:59,490 اجازه دهید من جلو بروید و در اینجا خمیر آن را. 1098 00:47:59,490 --> 00:48:01,995 من این noswap.c را خواهید تماس بگیرید. 1099 00:48:01,995 --> 00:48:05,630 و به عنوان نام نشان می دهد، این است که برای رفتن به یک برنامه صحیح. 1100 00:48:05,630 --> 00:48:09,460 noswap / هیچ مبادله. 1101 00:48:09,460 --> 00:48:12,110 X 1، Y 2، مبادله، عوض میکنه. 1102 00:48:12,110 --> 00:48:14,220 X 1، Y 2 است. 1103 00:48:14,220 --> 00:48:16,920 این است که اساسا اشتباه است، حتی هر چند این به نظر می رسد کاملا 1104 00:48:16,920 --> 00:48:17,730 معقول و منطقی به من. 1105 00:48:17,730 --> 00:48:21,330 و یک دلیل وجود دارد، اما ما نیستیم رفتن به فاش کردن دلیل فقط رتبهدهی نشده است. 1106 00:48:21,330 --> 00:48:24,610 >> در حال حاضر مطلب یا داستان جالب دوم من می خواستم به شما ترک این است، 1107 00:48:24,610 --> 00:48:27,120 اعلام انواع کد کوپن. 1108 00:48:27,120 --> 00:48:31,590 نوآوری ما با اواخر روز این سال یک عدد غیر بی اهمیت برانگیخته است 1109 00:48:31,590 --> 00:48:33,830 از سوالات بود که قصد ما. 1110 00:48:33,830 --> 00:48:36,590 قصد این کد کوپن، به موجب آن اگر شما بخشی از مشکل 1111 00:48:36,590 --> 00:48:39,850 تنظیم اولیه، در نتیجه گرفتن یک روز اضافی، واقعا به کمک شما بچه ها کمک 1112 00:48:39,850 --> 00:48:42,420 خود را شروع اولیه، مرتب کردن توسط شما incentivizing. 1113 00:48:42,420 --> 00:48:44,880 به ما کمک می کند تا بار توزیع در سراسر ساعات اداری بهتر است به طوری که 1114 00:48:44,880 --> 00:48:45,740 مرتب کردن بر اساس برنده است. 1115 00:48:45,740 --> 00:48:48,860 >> متاسفانه، من فکر می کنم به دستورات من نبوده اند، تا به امروز، بسیار روشن است، بنابراین 1116 00:48:48,860 --> 00:48:52,230 این آخر هفته من رفت و برگشت و به روز تنظیمات در بزرگتر، متن جسورانه به 1117 00:48:52,230 --> 00:48:53,600 گلوله هایی از این دست را توضیح دهد. 1118 00:48:53,600 --> 00:48:56,900 و فقط به آن می گویند علنی تر، به طور پیش فرض، مجموعه مسائل به علت پنجشنبه 1119 00:48:56,900 --> 00:48:58,400 در ظهر، در برنامه درسی. 1120 00:48:58,400 --> 00:49:02,030 اگر شما شروع به در اوایل، به پایان رساندن بخشی از مشکل روز چهارشنبه در ساعت 12:00 1121 00:49:02,030 --> 00:49:05,170 PM، بخشی که مربوط به کوپن کد، ایده این است که شما می توانید گسترش 1122 00:49:05,170 --> 00:49:07,710 مهلت خود را برای P تا جمعه. 1123 00:49:07,710 --> 00:49:10,890 است که، به کمی کردن بخشی کوچک از P تنظیم نسبت به آنچه به طور معمول است 1124 00:49:10,890 --> 00:49:13,200 مشکل بزرگتر، و به شما خرید خود را یک روز فوق العاده است. 1125 00:49:13,200 --> 00:49:15,190 باز هم، آن می شود شما را به فکر کردن در مورد مجموعه مشکل، به شما می شود 1126 00:49:15,190 --> 00:49:16,380 ساعات اداری زودتر. 1127 00:49:16,380 --> 00:49:20,670 اما مشکل این کد کوپن است که هنوز هم مورد نیاز است، حتی اگر شما آن را نفرستید. 1128 00:49:20,670 --> 00:49:23,340 >> اما قانعکنندهای تر از این است. 1129 00:49:23,340 --> 00:49:26,520 (زمزمه STAGE) و کسانی که مردمی ترک در اوایل جاوا آن را پشیمانی. 1130 00:49:26,520 --> 00:49:28,620 به عنوان مردمی در بالکن. 1131 00:49:28,620 --> 00:49:32,510 من در پیش به مردمی عذرخواهی می کنیم بالکن برای دلایلی که خواهد بود 1132 00:49:32,510 --> 00:49:33,920 فقط یک لحظه روشن است. 1133 00:49:33,920 --> 00:49:37,050 >> بنابراین ما خوش شانس به یکی از آموزش همراهان رئیس سابق CS50 در 1134 00:49:37,050 --> 00:49:39,302 یک شرکت نام dropbox.com. 1135 00:49:39,302 --> 00:49:45,500 آنها شده اند بسیار سخاوتمندانه اهدا کد کوپن در اینجا برای این فضا بسیار، 1136 00:49:45,500 --> 00:49:48,180 است که از معمول 2 گیگابایت. 1137 00:49:48,180 --> 00:49:51,740 بنابراین آنچه که من فکر کردم ما را در انجام این کار توجه داشته باشید نهایی این است که انجام یک بیت سادگی، 1138 00:49:51,740 --> 00:49:55,380 به موجب آن در فقط یک لحظه، ما آشکار خواهد شد برنده و که دارای کوپن 1139 00:49:55,380 --> 00:49:57,980 کد که بعد از آن شما می توانید خود را به وب سایت، تایپ در، و voila، 1140 00:49:57,980 --> 00:50:01,370 فضای کل خیلی بیشتر Dropbox به شما لوازم خانگی و برای فایل های شخصی شما. 1141 00:50:01,370 --> 00:50:05,690 >> و برای اولین بار که می خواهم به شرکت در این نقاشی؟ 1142 00:50:05,690 --> 00:50:09,630 خوب، در حال حاضر است که باعث می شود آن را حتی بیشتر سرگرم کننده است. 1143 00:50:09,630 --> 00:50:14,010 کسی که این 25 گیگابایت را دریافت کد کوپن - است که به مراتب 1144 00:50:14,010 --> 00:50:16,150 قانع کننده تر از اواخر روز در حال حاضر، شاید - 1145 00:50:16,150 --> 00:50:20,620 کسی است که در بالای یک نشسته است پشتی صندلی که در زیر آن وجود دارد 1146 00:50:20,620 --> 00:50:21,620 که کد کوپن. 1147 00:50:21,620 --> 00:50:23,480 شما در حال حاضر ممکن است زیر نگاه کنید پشتی صندلی خود را. 1148 00:50:23,480 --> 00:50:28,710 1149 00:50:28,710 --> 00:50:29,680 >> [پخش ویدئو] 1150 00:50:29,680 --> 00:50:31,620 >> یک، دو، سه. 1151 00:50:31,620 --> 00:50:35,015 >> [فریاد] 1152 00:50:35,015 --> 00:50:35,985 >> شما دریافت می کنید یک ماشین! 1153 00:50:35,985 --> 00:50:36,670 شما دریافت می کنید یک ماشین! 1154 00:50:36,670 --> 00:50:37,970 >> دیوید مالان: خواهیم دید شما در روز چهارشنبه. 1155 00:50:37,970 --> 00:50:38,904 >> شما دریافت می کنید یک ماشین! 1156 00:50:38,904 --> 00:50:39,371 شما دریافت می کنید یک ماشین! 1157 00:50:39,371 --> 00:50:40,305 شما دریافت می کنید یک ماشین! 1158 00:50:40,305 --> 00:50:41,706 شما دریافت می کنید یک ماشین! 1159 00:50:41,706 --> 00:50:43,107 شما دریافت می کنید یک ماشین! 1160 00:50:43,107 --> 00:50:45,530 >> دیوید مالان: مردمی بالکن، آمده است در اینجا به جلو، 1161 00:50:45,530 --> 00:50:46,866 جایی که ما باید اضافی. 1162 00:50:46,866 --> 00:50:50,282 >> و همه می شود یک ماشین! 1163 00:50:50,282 --> 00:50:52,234 همه می شود یک ماشین! 1164 00:50:52,234 --> 00:50:52,722 >> [END پخش ویدئو] 1165 00:50:52,722 --> 00:50:54,590 >> راوی: در CS50 بعدی - 1166 00:50:54,590 --> 00:51:00,374 >> SPEAKER 5: خدای من خدای من خدای من خدای من خدای من خدای من خدای من خدای من خدای من خدای - 1167 00:51:00,374 --> 00:51:02,106 >> [نمایشنامه UKELELE]