[پخش موسیقی] دیوید مالان: بسیار خوب. همه حق است، خوش آمدید. بنابراین در این هفته 4، آغاز آن، در حال حاضر. و شما که هفته گذشته را به یاد بیاورید، ما را کد جدا برای فقط کمی و ما شروع به صحبت کمی بیشتر سطح بالا، در مورد چیزهایی مثل جستجو و مرتب سازی، که هر چند ایده تا حدودی ساده است، عبارتند از نماینده یک طبقه از مشکلات شما آغاز خواهد شد برای حل ویژه همانطور که شما شروع به فکر کردن در مورد نهایی پروژه ها و راه حل های جالب برای شما ممکن است به مشکلات دنیای واقعی داشته باشد. در حال حاضر مرتب سازی بر حباب یکی از ساده ترین بود چنین الگوریتم، و آن را با داشتن این اعداد کوچک مشغول به کار در یک لیست و یا در نوع آرایه حباب راه خود را به بالا، و اعداد بزرگ فعالیت می کند راه خود را به در پایان از این لیست است. به یاد بیاورید که ما می تواند تجسم مرتب کردن بر اساس حباب کوچک چیزی شبیه به این. پس اجازه دهید من جلو بروید و شروع را کلیک کنید. من مرتب سازی حبابی از پیش انتخاب کرده ام. و اگر شما به یاد بیاورید که آبی بلندتر خطوط نمایش اعداد بزرگ، کوچک خطوط آبی نشان دهنده اعداد کوچک، به عنوان ما را از طریق این دوباره و دوباره بروید و دوباره، مقایسه دو میله در کنار یکدیگر دیگر به رنگ قرمز، ما قصد داریم به مبادله بزرگترین و کوچکترین اگر آنها از نظم هستند. بنابراین این کار در رفتن و رفتن و رفتن ، و شما خواهید دید که بزرگتر عناصر در حال ساخت راه خود را به حق و عناصر کوچکتر ساخت راه خود را به سمت چپ. اما ما شروع به کمی بهره وری، کیفیت این الگوریتم. و به ما گفت که در بدترین مورد، این الگوریتم در زمان تقریبا چند مرحله؟ بنابراین نفر مربع. و چه نفر بود؟ مخاطبان: تعداد عناصر. دیوید مالان: نفر بود تعدادی از عناصر. و بنابراین ما این اغلب انجام دهد. هر زمان که ما می خواهیم به صحبت در مورد اندازه یک مشکل و یا اندازه ورودی، یا مدت زمانی که طول می کشد برای تولید خروجی، ما فقط هر چیز دیگری تعمیم ورودی به عنوان نفر است. پس از بازگشت در هفته 0، صفحات تعداد در دفترچه تلفن بود. تعداد دانش آموزان در اتاق نفر شد. بنابراین در اینجا، بیش از حد، ما به دنبال که الگو. در حال حاضر نفر مربع است به خصوص سریع، بنابراین ما سعی به انجام این کار بهتر است. و بنابراین ما در چند نگاه الگوریتم های دیگر، که در میان آن مرتب سازی بر اساس انتخاب. بنابراین مرتب سازی بر اساس انتخاب بود کمی متفاوت است. آن را تقریبا ساده بود، من به جرات گفت، به موجب آن من در آغاز از آغاز لیست داوطلبان ما و من فقط به دوباره و دوباره و دوباره از طریق رفت لیست، برداشت کوچکترین عنصر در یک زمان و قرار دادن او و یا او در ابتدای لیست است. اما این، بیش از حد، زمانی که ما شروع به فکر می کنم از طریق ریاضی و بزرگتر تصویر، در مورد چند بار فکر من که قرار بود به عقب و جلو و عقب جلو و عقب، ما در بدترین حالت گفت: مرتب سازی بر انتخاب، بیش از حد، چه بود؟ N مربع. در حال حاضر در دنیای واقعی، ممکن است در واقع حاشیه سریعتر باشد. چرا که باز هم من مجبور به نگه داشتن و backtracking می یک بار من طبقه بندی شده اند بود کوچکترین عناصر. اما اگر ما درباره n بسیار بزرگ فکر می کنم، و اگر شما مرتب کردن بر اساس ریاضی به عنوان من در هیئت مدیره، با نفر مربع چیزی منفی، و هر چیز دیگری علاوه بر ازت مربع، یک بار نفر واقعا بزرگ می شود، نمی کند واقعا به همان اندازه مهم است. بنابراین به عنوان دانشمندان کامپیوتر، ما از مرتب کردن بر اساس نوبه خود چشم به کوچکتر عوامل و تمرکز تنها روی عامل در بیان که رفتن به بزرگترین تفاوت. خب، در نهایت، ما نگاه مرتب سازی بر درج. و این در روح مشابه بود، اما به جای رفتن را از طریق تکرار و کوچکترین عنصر را انتخاب کنید زمان، من به جای دست گرفت که من رسیدگی شد و من تصمیم گرفتم، همه راست، به اینجا تعلق دارید. سپس من نقل مکان کرد به عنصر بعدی و تصمیم گرفت که او و یا در اینجا او تعلق داشت. و سپس به من در تاریخ و در نقل مکان کرد. و من به ممکن است، در طول راه، تغییر این افراد به منظور اتاق را برای آنها. به طوری که مرتب سازی بر واژگونی روانی بود مرتب کردن بر اساس انتخاب است که ما نام مرتب سازی بر درج شده است. بنابراین این موضوع رخ می دهد در جهان واقعی است. فقط چند سال پیش، زمانی که برخی از سناتور برای ریاست جمهوری در حال اجرا بود، اریک اشمیت، در آن زمان مدیر عامل شرکت گوگل، در واقع تا به حال فرصت برای مصاحبه با او. و ما فکر می کنیم می خواهم این یوتیوب به اشتراک بگذارید کلیپ برای شما در اینجا، اگر ما می تواند به نوبه خود حجم. [پخش ویدئو] در حال حاضر، سناتور، شما در اینجا در گوگل، و من می خواهم به ریاست جمهوری فکر می کنم به عنوان یک مصاحبه شغلی. [خنده حضار] در حال حاضر آن را سخت برای به دست آوردن کار به عنوان ریاست جمهوری. و شما در حال رفتن را از طریق لرز در حال حاضر. آن را نیز سخت به یک کار در گوگل. ما پرسش ها و ما بخواهید نامزدهای سوالات ما. و این یکی از لری Schwimmer. [خنده حضار] شما بچه ها فکر می کنم دارم شوخی می کنم؟ این حق در اینجا. کارآمد ترین راه برای چیست مرتب سازی بر اساس یک میلیون عدد صحیح دو بیتی؟ [خنده حضار] خب، آه - I'm متاسفم. شاید ما باید - ، نه، نه، نه، نه، نه. که نیست - OK را بزنید. من فکر می کنم مرتب سازی حبابی راه نادرست به رفتن. [خنده حضار] [تشویق و تشویق حضار] بیا، که او این را گفت؟ OK را بزنید. [END پخش ویدئو] دیوید مالان: بنابراین وجود شما به آن را داشته باشد. بنابراین ما شروع به سنجش این در حال اجرا بار، پس به صحبت می کنند، با چیزی نام نماد مجانبی است که فقط با اشاره به مرتب سازی بر اساس چرخش ما یک چشم خود را به آن دسته از عوامل کوچکتر و تنها با نگاه در آن زمان در حال اجرا، عملکرد این الگوریتم، به عنوان نفر می شود واقعا بزرگ در طول زمان. و بنابراین ما معرفی O. بزرگ و بزرگ O چیزی نشان داده است که ما فکر به عنوان حد بالا. و در واقع، بری، می تواند ما پایین تر از MIC کمی؟ ما از این است که یک حد بالا در نظر داشتند. O خیلی بزرگ ازت به معنای مربع که در بدترین حالت، چیزی شبیه به مرتب سازی بر اساس انتخاب می کنند نفر اقدامات مربع. یا چیزی شبیه به مرتب سازی بر درج خواهد بود مراحل نفر مربع. در حال حاضر برای چیزی شبیه به درج مرتب کردن، چه بدترین حالت بود؟ با توجه به آرایه، چه بدترین سناریوی ممکن است که شما ممکن است دریابید خود را با آنها مواجه؟ این کاملا به عقب، درست است؟ چرا که اگر آن را به طور کامل به عقب، شما باید انجام دهید تعداد زیادی از کل کار. چرا که اگر شما به طور کامل به عقب، شما می خواهید برای پیدا کردن بزرگترین عنصر در اینجا، حتی اگر آن تعلق دارد پایین وجود دارد. بنابراین شما در حال رفتن به می گویند، همه حق است، در این لحظه در زمان، به اینجا تعلق دارید، بنابراین شما آن را ترک تنهایی. سپس شما متوجه است، آه، لعنتی، من به حرکت این عنصر کمی کوچکتر به در سمت چپ شما. پس من باید به انجام این کار دوباره و دوباره و دوباره. و اگر من رفتم عقب و جلو، شما مرتب سازی بر اساس احساس عملکرد این الگوریتم، چون به طور مداوم من برروی آن بکشید و هر کس دیگری را در آرایه به اتاق را برای آن. به طوری که بدترین حالت است. در مقابل - و این یک مطلب یا داستان جالب در زمان گذشته بود - ما گفت که مرتب سازی بر درج امگا از چه بود؟ بهترین مورد در حال اجرا زمان مرتب سازی بر درج؟ پس از آن در واقع N. که خالی بود که ما را ترک کرد آخرین بار در هیئت مدیره. و آن را امگا از n به دلیل چرا؟ خب، در بهترین حالت، چه مرتب سازی بر درج تحویل داده شود؟ خب، یک لیست که به طور کامل طبقه بندی شده اند در حال حاضر، حداقل کار را انجام دهد. اما آنچه در مورد مرتب سازی بر درج شسته و رفته است است که به دلیل آن را در اینجا شروع می شود و تصمیم می گیرد، آه، شما تعداد یک، اینجا تعلق دارید. آه، چه فرصت خوبی است. شما شماره دو هستید. شما نیز در اینجا تعلق دارند. شماره سه، حتی بهتر، اینجا تعلق دارید. به محض این که آن را به پایان می شود شبه لیست، در درج مرتب سازی که ما را از طریق شفاهی راه می رفت زمان گذشته، آن را انجام داده است. اما نوع انتخاب، در مقابل، انجام آنچه نگه داشته؟ ایکه حفظ رفتن را از طریق لیست دوباره و دوباره و دوباره. از آنجا که بینش کلیدی بود تنها یک بار شما را نگاه کرده ام تمام راه را به انتهای لیست می تواند شما را مطمئن باشید که عنصر انتخاب شما بود در واقع در حال حاضر کوچکترین عنصر. بنابراین این مدل پایان ذهنی مختلف است. تا بازده برخی از واقعی جهان بسیار تفاوت برای ما، و همچنین این تفاوت نظری مجانبی. بنابراین فقط به روکش، پس از آن، بزرگ O N مربع، ما دیده ایم یک چند جمله الگوریتم های تا کنون. بزرگ O از n؟ یک الگوریتم است که می تواند چه خبر توان گفت که بزرگ O از N؟ در بدترین حالت، طول می کشد تعداد خطی از مراحل. خوب، جستجوی خطی. و در بدترین حالت، که در آن عنصر شما به دنبال برای زمانی که استفاده از جستجوی خطی؟ خوب، در بدترین حالت، حتی وجود ندارد. و یا در بدترین حالت دوم، آن را تمام راه را در پایان است که به علاوه یا منهای تفاوت یک مرحله. بنابراین در پایان روز، ما می توانیم بگوییم آن خطی است. O بزرگ از n خواهد بود جستجوی خطی، زیرا در بدترین حالت، عنصر حتی وجود ندارد یا آن را تمام راه را در پایان. خوب، بزرگ O از ورود به سیستم از n است. ما در جزئیات زیادی در مورد صحبت نمی اما ما این کار را قبل از دیده ام. چه اجرا می شود در اصطلاح لگاریتمی زمان، در بدترین حالت؟ آره، جستجوی دودویی. و جستجوی دودویی در بدترین حالت ممکن است این عنصر در جایی در وسط، و یا در جایی در داخل آرایه می شود. اما شما فقط آن را هنگامی که شما پیدا کنید تقسیم این لیست در نیم، در نیم، نیم، نیم. و سپس هورا، آن وجود دارد. یا دوباره، بدترین حالت، حتی وجود ندارد. اما شما نمی دانید که آن وجود ندارد تا زمانی که شما به نوعی از رسیدن به این آخرین پایین ترین عناصر نصف و نصف و نصف. بزرگ O از 1. بنابراین ما می تواند بزرگ O 2، O بزرگ 3. در هر زمان شما می خواهید فقط یک عدد ثابت، ما فقط مرتب کردن بر اساس فقط ساده که به عنوان بزرگ O از 1. اگرچه اگر در واقع، در آن طول می کشد 2 و یا حتی 100 مرحله، اگر آن را تعداد ثابتی از مراحل، ما فقط می گویند O بزرگ از 1. الگوریتم این چیزی است که در بزرگ O از 1؟ مخاطبان: پیدا کردن طول یک متغیر است. دیوید مالان: پیدا کردن طول یک متغیر؟ مخاطبان: نه، طول اگر آن را در حال حاضر طبقه بندی شده اند. دیوید مالان: خوب. خوب، بنابراین پیدا کردن طول چیزی اگر طول که چیزی، مانند یک آرایه، در برخی از متغیر ذخیره می شود. از آنجا که شما فقط می توانید خواندن متغیر، و یا چاپ متغیر، یا فقط به طور کلی آن متغیر دسترسی داشته باشید. و voila، که طول می کشد زمان ثابت است. در مقابل، فکر می کنم به خراش. فکر می کنم به هفته اول C، تماس فقط printf و چاپ چیزی بر روی صفحه نمایش است مسلما زمان ثابت، به دلیل آن را فقط طول می کشد برخی از تعدادی از پردازنده را نشان می دهد که متن بر روی صفحه نمایش. یا صبر کنید - اینطور نیست؟ چه چیز دیگری ممکن است مدل ما عملکرد چون printf؟ آیا کسی را دوست مخالف، که شاید هم واقعا ثابت نیست؟ در چه حس چون printf ممکن است در حال اجرا زمان، در واقع چاپ رشته در صفحه نمایش، چیزی دیگر از ثابت. مخاطب: [نامفهوم]. دیوید مالان بله. پس از آن در دیدگاه ما بستگی دارد. اگر ما در واقع از ورودی به فکر می کنم چون printf به عنوان رشته و بنابراین ما به اندازه از آن اندازه گیری ورودی طول آن - پس بیایید تماس بگیرید که طول n و - مسلما، چون printf خود را بزرگ O N به دلیل آن را به شما N مراحل را برای چاپ کردن هر یک از کسانی که N شخصیت ها، به احتمال زیاد. حداقل به حدی که ما فرض می کنیم که شاید آن را با استفاده از یک حلقه for در زیر هود. اما ما باید به آن نگاه کنید کد برای درک بهتر آن است. و در واقع، هنگامی که شما بچه ها شروع به تجزیه و تحلیل الگوریتم های خود را، به شما به معنای واقعی کلمه انجام درست آن. مرتب کردن بر اساس کد تخم چشم و فکر می کنم خود را در مورد - همه حق است، من این حلقه اینجا و یا من یک حلقه های تو در تو در اینجا، که رفتن به نفر چیز n بار، و شما می توانید از خود را بر اساس دلیل راه خود را از طریق کد، حتی اگر آن را شبه و کد واقعی نیست. بنابراین آنچه در مورد امگا مربع N؟ الگوریتم چه بود که در بهترین مورد، هنوز هم در زمان N مراحل مربع؟ آره؟ مخاطب: [نامفهوم]. دیوید مالان: پس مرتب کردن بر اساس انتخاب. از آنجا که در این مشکل واقعا کاهش می یابد به این واقعیت است که دوباره، من نمی دانم من کوچکترین تا پیدا کردم من تمام عناصر رفو بررسی کرده ایم. بنابراین امگا، می گویند، نفر، ما فقط با یک آمد. مرتب سازی بر درج. اگر لیست اتفاق می افتد که باید طبقه بندی شده اند در حال حاضر، در بهترین حالت ما فقط باید برای ساختن یک پاس از طریق آن، که در آن نقطه ما مطمئن هستیم. و پس از آن که می توان گفت به خطی، برای اطمینان حاصل کنید. در مورد امگا، از مجموع 1 چه؟ چه، در بهترین حالت ممکن را تعداد ثابتی از مراحل؟ جستجو خطی بنابراین، اگر شما فقط خوش شانس و عنصر شما دنبال آن هستید در آغاز از لیست سمت راست است، در صورتی که که در آن شما خود را شروع پیمایش خطی آن فهرست. و این واقعی است تعداد چیزها می شود. به عنوان مثال، حتی باینری جستجو، امگا از 1 است. از آنجا چه می شود اگر شما واقعا رفو خوش شانس و با صدا غذا خوردن با چیز نرمی کسی را زدن یا نوازش کردن در وسط آرایه شما تعداد شما دنبال آن هستید؟ بنابراین شما می توانید خوش شانس نیز وجود دارد،. این یکی، در نهایت، امگا n log n استفاده. بنابراین n log n استفاده، ما واقعا نمی بحث در مورد نشده است، اما - مخاطبان: ادغام مرتب سازی بر؟ دیوید مالان: مرتب کردن بر اساس: ادغام. این مطلب یا داستان جالب از زمان گذشته بود، که در آن ما مطرح شده است و ما نشان داد بصری، که الگوریتم وجود دارد. و ادغام مرتب سازی بر فقط یکی از این الگوریتم این است که اساسا سریعتر از برخی از این بچه های دیگر. در واقع، ادغام کوتاه نه تنها در بهترین حالت N N ورود به سیستم، در بدترین مورد N N ورود به سیستم. و هنگامی که شما به این تصادف از امگا و O بزرگ بودن همان چیزی است؟ ما در واقع می تواند توصیف که چه به نام تتا، هر چند آن را کمی کمتر رایج است. اما این فقط بدان معنی است که دو محدوده، در این مورد، یکسان هستند. بنابراین مرتب سازی بر ادغام، چه این واقعا جوش پایین برای ما؟ خب، به یاد انگیزه. اجازه بدهید من بالا بکشد انیمیشن دیگری است که ما در زمان گذشته به نظر نمی آید. این یکی، ایده همان است، اما آن را کمی بزرگتر است. و من قصد دارم به جلو بروید و به این نکته اشاره اول - ما باید مرتب سازی بر درج در بالا سمت چپ، و سپس مرتب کردن بر اساس انتخاب، مرتب سازی بر حباب، یک زن و شوهر از انواع دیگر - پوسته و سریع - که ما صحبت نمی در مورد، و پشته و ادغام مرتب سازی بر اساس. بنابراین حداقل سعی کنید به چشم خود تمرکز بر سه در سمت چپ و پس از آن ادغام مرتب سازی بر زمانی که من کلیک کنید این فلش سبز. اما من به شما اجازه همه از آنها اجرا شود، فقط به شما حس از تنوع را الگوریتم هایی که در جهان وجود دارد. من قصد دارم به شما اجازه این اجرا برای فقط چند ثانیه. و اگر شما چشمان خود را متمرکز - انتخاب الگوریتم، تمرکز بر آن را فقط برای ثانیه - شما شروع به دیدن الگوی که آن را پیاده سازی. ادغام مرتب سازی بر، توجه، انجام شده است. مرتب سازی بر اساس هیپ، مرتب کردن سریع، پوسته - بنابراین به نظر می رسد ما معرفی سه بدترین الگوریتم های هفته گذشته. اما این خوب است که ما امروز اینجا هستیم تا به نگاهی جور کردن و ادغام، که یکی از آنهایی که آسان تر است که در نگاه کنید، حتی هر چند که احتمالا ذهن خود را خم فقط یک کمی. در اینجا ما می توانید ببینید که چقدر مرتب سازی بر اساس انتخاب بمکد. اما در سمت تلنگر، آن را واقعا آسان به پیاده سازی. و شاید برای تنظیم P 3، که یکی از الگوریتم های شما تصمیم به پیاده سازی برای نسخه استاندارد. کاملا خوب، کاملا درست است. اما باز هم، به عنوان نفر بزرگ می شود، اگر شما را انتخاب کنید برای اجرای یک الگوریتم سریع تر دوست ادغام مرتب سازی بر اساس، شانس هستند در بزرگتر و ورودی های بزرگتر، کد خود را فقط برای اجرای سریع تر. وب سایت خود را به کار بهتر است. کاربران شما می رویم به شادتر است. و به همین ترتیب این اثر وجود دارد در واقع دادن برخی از ما عمیق تر فکر می کردم. بنابراین اجازه دهید یک نگاهی از در چه ادغام مرتب سازی بر است که در واقع همه چیز در مورد. نکته جالب این است که ادغام مرتب سازی بر فقط این. اما این بار، آنچه که ما به نام ام شبه، که شبه نحو زبان انگلیسی مانند. و سادگی است مرتب کردن بر اساس جذاب. بنابراین در ورودی از n عنصر - به طوری که فقط به این معنی، در اینجا یک آرایه است. ازت چیز در آن کردم. که همه ما می گویید وجود دارد. اگر n کمتر از 2 باشد، بازگشت. به طوری که فقط در مورد بی اهمیت است. اگر n کمتر از 2 است، پس بدیهی است که آن را 0 یا 1، که در این صورت چیزی در حال حاضر طبقه بندی شده اند و یا وجود ندارد، بنابراین فقط بازگشت. هیچ چیزی برای انجام دادن وجود دارد. به طوری که یک مورد ساده برای شهامت است. دیگری، ما باید سه مرحله. مرتب کردن بر اساس نیمه چپ از عناصر، مرتب نیمه سمت راست از عناصر، و سپس ادغام نیمه طبقه بندی شده اند است. چه جالب اینجا است که من نوع punting هستم، درست است؟ نوع تعریف دایره وجود دارد به این الگوریتم است. به چه معنا است که از این الگوریتم بخشنامه تعریف؟ مخاطب: [نامفهوم]. دیوید مالان: آره، الگوریتم مرتب سازی من، دو مراحل آن "مرتب سازی بر اساس چیزی. "و به طوری که التماس سوال، که خب، چه من قصد استفاده از برای مرتب کردن نیمه چپ و نیمه سمت راست است؟ و زیبایی در اینجا این است که حتی اگر دوباره، این است که ذهن خم بخشی بالقوه، شما می توانید مشابه استفاده کنید الگوریتم برای مرتب کردن نیمه چپ. اما یک دقیقه صبر کنید. هنگامی که به شما گفته شده مرتب کردن بر اساس نیمه سمت چپ، دو مراحل رفتن به بعدی؟ ما در نیمه سمت چپ خواهید مرتب سازی بر اساس نیمه چپ و راست نیمی از نیمی چپ. لعنت، چگونه می توانم آن دو مرتب کردن بر اساس من نیمه، یا چهارم، در حال حاضر؟ اما این خوب است. ما یک الگوریتم مرتب سازی اینجا. و حتی اگر شما ممکن است در نگران اولین بار این نوع از بی نهایت است حلقه، آن را به یک چرخه است که هرگز برای پایان دادن به - آن است که رفتن به یک بار به پایان چه اتفاقی می افتد؟ هنگامی که کمتر از 2 است. که در نهایت اتفاق خواهد افتاد، چرا که اگر شما در حفظ و نصف و نصف در نصف این نیمه، قطعا در نهایت شما را در حال رفتن به انتها تا با فقط 0 یا 1 عناصر. که در آن نقطه، این الگوریتم می گوید شما انجام می شود. بنابراین سحر و جادو واقعی در این الگوریتم به نظر می رسد در که در مرحله نهایی، ادغام. این ایده ساده فقط ادغام دو چیزها، این چیزی است که در نهایت رفتن اجازه می دهد تا ما برای مرتب سازی آرایه ای از، اجازه دهید بگویم، هشت عنصر. بنابراین من هشت توپ استرس بیشتر در اینجا، هشت تکه های کاغذ و یک گوگل شیشه ای - که من را وادار به نگه دارید. [خنده حضار] دیوید مالان: اگر ما می تواند هشت داوطلبان، و بیایید ببینید که اگر ما می توانیم بازی این است. وای، OK. علم کامپیوتر است سرگرم کننده است. بسیار خوب. پس چگونه در مورد شما سه، بزرگترین دست وجود دارد. چهار نفر در پشت. و چگونه در مورد شما انجام دهد سه نفر در این ردیف؟ و چهار در جلو. بنابراین شما هشت، در بالا آمده است. [خنده حضار] دیوید مالان: من در واقع هنوز مطمئن شوید که آنچه در آن است. آیا این توپ تنش؟ لامپ میز؟ ماده؟ اینترنت؟ OK را بزنید. بنابراین در بالا آمده است. چه کسی می خواهم - حفظ آینده. اجازه دهید را ببینید. و این شما را در محل قرار می دهد - شما را در محل اول هستیم. آه، آه، یک دقیقه صبر کنید. 1، 2، 3، 4، 5، 6، 7 - آه، خوب است. همه حق است، ما خوب است. همه حق است، بنابراین هر کس یک صندلی، اما در شیشه گوگل. اجازه بدهید من به صف این تا. نام شما چیست؟ میشل: میشل. دیوید مالان: میشل؟ همه حق است، شما را وادار به شبیه یکی از بازیکنان بالماسکه و کارناوال که غالبا دارای ماسک منقاردار است، اگر که خوب است. خوب، من این کار را بیش از حد، گمان می کنم، برای فقط یک لحظه. همه حق است، آماده به کار. ما کوشش کرده ام که به آمد تا با مورد استفاده برای Google شیشه ای، و ما فکر کردم این امر می تواند سرگرم کننده است فقط انجام زمانی که مردم به روی صحنه. ما جهان را ضبط از چشم انداز خود را. بسیار خوب. نه احتمالا آنچه گوگل در نظر گرفته شده است. همه حق است، پوشیدن اگر شما از ذهن نیست این کار را برای دقیقه ی آینده بی دست و پا، که فوق العاده خواهد بود. همه حق است، بنابراین ما باید در اینجا یک آرایه عناصر و که آرایه، به عنوان هر تکه های کاغذ در این مردمی ' دست، در حال حاضر نامرتب. میشل: اوه، که بسیار عجیب و غریب است. دیوید مالان: این تقریبا به صورت تصادفی است. و در یک لحظه، ما قصد داریم را امتحان کنید برای پیاده سازی ادغام مرتب سازی بر با هم و ببینید که در آن است که بینش کلیدی است. و ترفند در اینجا با جور کردن و ادغام است چیزی که ما در نظر گرفته نشده است. ما در واقع نیاز به برخی از فضای اضافی. بنابراین چه خبر است به خصوص جالب در این مورد این است که این بچه ها در حال رفتن به اطراف کمی حرکت می کند کمی، چون من قصد دارم که فرض کنیم که مجموعه ای فوق العاده از فضا وجود دارد، می گویند، پشت سر آنها. بنابراین اگر آنها در پشت صندلی خود هستید، که آرایه ثانویه است. اگر آنها در حال نشسته، که آرایه اولیه. اما این منابع که ما باید است تا کنون با حباب قوی تر نیست مرتب کردن، مرتب کردن بر اساس انتخاب، مرتب سازی بر درج. به یاد بیاورید در هفته گذشته، هر کس فقط نوع در محل حوصلگی. آنها هیچ حافظه اضافی استفاده نمی کنند. ما اتاق را برای مردم ساخته شده است جابجایی و اسکان مردم در. بنابراین این بینش کلیدی است، بیش از حد. این تجارت وجود دارد، به طور کلی در علوم کامپیوتر، از منابع است. اگر شما می خواهید برای سرعت بخشیدن به چیزی مانند زمان، شما در حال رفتن به مجبور به پرداخت قیمت. و یکی از این قیمت است که اغلب فضا، مقدار حافظه یا سخت فضای دیسک است که شما با استفاده از. یا، رک و پوست کنده، مقدار زمان برنامه نویس. چه مقدار زمان آن را به شما طول می کشد، انسان، در واقع برخی از پیاده سازی الگوریتم پیچیده است. اما امروز، تجارت کردن زمان و مکان است. بنابراین اگر شما بچه ها فقط می تواند نگه دارید تا خود را اعداد به طوری که ما می توانید ببینید که شما در واقع مطابق 4، 2، 6، 1، 3، 7، 8. بسیار عالی است. بنابراین من قصد دارم به تلاش برای هماهنگ و موزون چیزها، اگر شما بچه ها می تواند فقط سرب من را دنبال کنید با کلیک در اینجا. بنابراین من می خواهم برای به اجرا درآوردن، برای اولین بار، گام اول از شبه است که در ورودی از n عنصر، اگر n کمتر از 2، و سپس بازگشت. بدیهی است که نمی اعمال می شود، بنابراین ما حرکت می کند. بنابراین نیمه چپ از عناصر مرتب سازی بر اساس. پس این بدان معناست که من قصد دارم به تمرکز من توجه فقط برای یک لحظه در این چهار بچه ها در اینجا. همه حق است، چه می توانم بعدی؟ مخاطب: مرتب کردن بر اساس نیمه چپ. دیوید مالان: بنابراین در حال حاضر من مجبور به مرتب کردن بر اساس نیمه چپ از این بچه ها. چرا که باز هم فرض کنید به خودتان هدف این است که برای مرتب کردن نیمه چپ. چگونه می توانم شما انجام دهد؟ فقط به دنبال دستورالعمل، حتی هر چند که ما در حال انجام آن دوباره. بنابراین نیمی چپ مرتب سازی بر اساس. در حال حاضر من مرتب سازی بر این دو بچه. چه می آید؟ مخاطب: مرتب کردن بر اساس نیمه چپ. دیوید مالان: مرتب کردن بر اساس نیمه چپ. بنابراین در حال حاضر این، این صندلی اینجا را، یک لیست از اندازه 1 است. و نام خود را دوباره؟ PRINCESS DAISY: شاهزاده خانم دیزی. دیوید مالان: شاهزاده خانم دیزی است در اینجا. و به این ترتیب او در حال حاضر طبقه بندی شده اند، زیرا لیست اندازه 1. چه می توانم در آینده انجام دهید؟ خوب، بازگشت، چرا که لیست اندازه 1، است که کمتر از 2. پس چه گام بعدی است؟ و در حال حاضر شما به نوع رد گم کردن در ذهن خود مرور کنید. مرتب کردن بر اساس نیمه سمت راست، که - نام شما چیست؟ لیندا: لیندا. دیوید مالان لیندا. و بنابراین آنچه ما در حال حاضر که ما یک لیست از اندازه 1؟ مخاطبان: بازگشت. دیوید مالان: مراقب باشید. ما بازگشت به ابتدا، و در حال حاضر سوم گام - و اگر من نوعی را به نشان دادن آن توسط استقبال از دو کرسی در حال حاضر، در حال حاضر من به ادغام این دو عنصر. بنابراین در حال حاضر متاسفانه، عناصر از. اما این که در آن فرآیند ادغام است شروع به گرفتن فوتی و فوری. بنابراین اگر شما بچه ها می تواند فقط برای ایستادن یک لحظه، من قصد دارم به شما نیاز دارند، در لحظه، به مرحله پشت صندلی خود را. و اگر لیندا، چون 2 کوچکتر از 4 چرا نمی شما آمده است در اطراف برای اولین بار؟ اقامت وجود دارد. بنابراین لیندا، شما برای اولین بار می آیند در اطراف. در حال حاضر در واقع اگر آن را فقط یک آرایه ما فقط می تواند او را در زمان واقعی حرکت می کند از این صندلی به این نقطه است. بنابراین تصور کنید که برخی از ثابت در زمان تعداد مراحل 1. و در حال حاضر - اما ما نیاز شما را در اولین محل در اینجا. و در حال حاضر اگر شما می توانید به اطراف می آیند، به عنوان خوب، ما قصد داریم به در محل دو باشد. و حتی اگر این احساس مانند آن را مدتی طول کشیده است، چه خوب است اکنون که نیمه چپ نیمه سمت چپ در حال حاضر طبقه بندی شده اند. پس چه گام بعدی اگر ما در حال حاضر بود، عقب بیشتر در داستان؟ مخاطب: نیمه راست. دیوید مالان: مرتب کردن بر اساس نیمه سمت راست. پس شما بچه ها باید برای انجام این کار، و همچنین. بنابراین اگر شما می تواند ایستادن برای فقط یک لحظه؟ نام شما چیست؟ JESS: جس. دیوید مالان جس. خوب، پس جس در حال حاضر سمت چپ نیمی از نیمه سمت راست. و به این ترتیب او یک لیست از اندازه 1 است. او به وضوح طبقه بندی شده اند. و نام خود را دوباره؟ میشل: میشل. دیوید مالان: میشل واضح است که یک لیست از اندازه 1. او در حال حاضر طبقه بندی شده اند. بنابراین در حال حاضر سحر و جادو اتفاق می افتد، روند ادغام. به طوری که رفتن به اول است؟ بدیهی است میشل. بنابراین اگر شما می تواند در اطراف آمده است. فضای ما باید برای او در دسترس در حال حاضر درست در پشت این صندلی اینجا. و در حال حاضر اگر شما نیز می تواند دوباره، ما در حال حاضر، تا روشن شود، دو نیمه، هر یک از اندازه 2 - و فقط برای خاطر تصویر، اگر شما می تواند کمی از فضا را - یکی رو نیمی از اینجا و، یک نیمه سمت راست در اینجا. سیم پیچ بیشتر در داستان. چه گام بعدی است؟ مخاطب: ادغام خواهند شد. دیوید مالان: بنابراین در حال حاضر ما باید ادغام خواهند شد. خیلی خوب، بنابراین در حال حاضر، خوشبختانه، ما فقط آزاد شده و چهار صندلی. بنابراین ما دو برابر مقدار حافظه استفاده می شود، اما ما می توانیم فلیپ flopping بین دو آرایه. به طوری که شماره اول است؟ بنابراین میشل، بدیهی است. پس در اطراف می آیند و صندلی خود را در اینجا. و سپس شماره 2 است که به وضوح بعد از آن، بنابراین شما به اینجا می آیند. شماره 4، شماره 6. و دوباره، حتی اگر وجود دارد کمی راه رفتن درست بوده، در واقع، این بلافاصله می تواند اتفاق می افتد، با حرکت یک - خوب، به خوبی ایفا کرده است. [خنده حضار] دیوید مالان: و در حال حاضر ما در شکل بسیار خوب است. نیمه چپ از کل ورودی در حال حاضر مرتب شده است. همه حق است، پس این بچه ها بود مزیت از من - چگونه آن را تا پایان به همه دختران در چپ و تمام پسران در سمت راست است؟ خوب، پس بچه ها در حال حاضر تبدیل شود. بنابراین من شما را از طریق راه رفتن نیست این مراحل را. خواهیم دید که اگر ما می توانیم دوباره شبه همان. اگر می خواهید به جلو بروید و ایستادن، و شما بچه ها، اجازه دهید من به شما میکروفون. ببینید اگر شما نمی تواند تکرار آنچه که ما فقط در اینجا انتهای دیگر از لیست. چه کسی نیاز به اولین صحبت می کنند، بر اساس الگوریتم؟ پس چیزی که شما قبل از انجام توضیح شما می توانید حرکات پا. SPEAKER 1: بسیار خوب، پس از من نیمه چپ هستم نیمه چپ، من بازگشت. درست است؟ دیوید مالان: خوب. SPEAKER 1: و پس از آن - دیوید مالان: چه کسی میکروفون رفتن به بعدی؟ SPEAKER 1: شماره بعدی. SPEAKER 2: پس من نیمه سمت راست هستم نیمه چپ نیمه سمت چپ، و من بازگشت. دیوید مالان: خوب. باز می گردد. بنابراین در حال حاضر چه تا بعدی را برای شما دو است؟ SPEAKER 2: ما می خواهیم ببینیم که کوچکتر. دیوید مالان: دقیقا. ما می خواهیم به ادغام. فضای ما قصد استفاده از ادغام شما را، حتی اگر آنها بدیهی است که طبقه بندی شده اند در حال حاضر، ما قصد داریم به دنبال همان الگوریتم. به طوری که در پشت برای اولین بار می رود؟ SO 3، و پس از آن 7. و در حال حاضر میکروفن می رود به این بچه ها، خوب؟ SPEAKER 3: پس من نیمه راست هستم نیمه چپ و n من کمتر از 1 است، بنابراین من فقط رفتن به تصویب - دیوید مالان: خوب. SPEAKER 4: من نیمه راست هستم نیمه راست نیمه سمت راست، و من همچنین یک نفر می شود، بنابراین من رفتن به بازگشت. بنابراین در حال حاضر ما ادغام خواهند شد. SPEAKER 3: بنابراین ما به عقب برویم. دیوید مالان: پس شما را به عقب بروید. تا 5 می رود برای اولین بار، پس از آن 8. و در حال حاضر مخاطبان است، که قدم ما به عقب پشت به در ذهن ما؟ مخاطب: ادغام خواهند شد. دیوید مالان: ادغام نیمه چپ و راست نیمه از نیمی اصلی سمت چپ. بنابراین در حال حاضر - و فقط به این را روشن، کمی از فضا بین شما دو بچه. بنابراین در حال حاضر که دو لیست، چپ و راست. پس چگونه ما در حال حاضر شما بچه ها ادغام ردیف جلو صندلی های دوباره؟ 3 می رود. سپس 5، بدیهی است. سپس 7 و در حال حاضر 8. خوب، و در حال حاضر ما هستند؟ مخاطبان: انجام نشده. دیوید مالان: انجام نشده است، زیرا بدیهی است، یک گام باقی مانده وجود دارد. اما باز هم، به همین دلیل من با استفاده از این اصطلاحات مخصوص یک صنف مانند "عقب در ذهن خود" به این دلیل است که واقعا چه اتفاقی می افتد. ما رفتن را از طریق تمام این مراحل، اما ما مرتب سازی بر توقف برای لحظه، غواصی عمیق تر به الگوریتم، توقف برای یک لحظه، غواصی عمیق تر به این الگوریتم، و در حال حاضر ما به مرتب عقب ما ذهن و خنثیسازی همه این لایه ها که ما تا به نوعی از در انتظار قرار داده است. بنابراین در حال حاضر ما دو لیستی از اندازه 4. اگر شما بچه ها می تواند ایستادن برای آخرین بار و کمی از فضا را در اینجا به روشن سازد که این از سمت چپ نیمی از اصلی، نیمه راست اصلی. عدد اول چه کسی است که ما نیاز به جلو و به پشت؟ میشل، البته. بنابراین ما را میشل در اینجا. و کسی که شماره 2؟ شماره 2 می آید به عنوان خوب. شماره 3؟ بسیار عالی است. شماره 4، شماره 5، شماره 6، شماره 7 و شماره 8. خوب، پس از آن مانند بسیاری احساس از مراحل، برای مطمئن. اما حالا بیایید ببینید که اگر ما نمی توانیم تایید مرتب کردن بر اساس به طور مستقیم که این الگوریتم اساسا، به خصوص به عنوان نفر می شود واقعا بزرگ، به عنوان دیده ایم با انیمیشن، اساسا سریعتر. بنابراین من ادعا می کنند این الگوریتم در بدترین مورد و حتی در بهترین حالت، بزرگ O از n بار ورود N. که شده است، برخی از جنبه های وجود دارد الگوریتمی که N مراحل طول می کشد، اما یکی دیگر از جنبه وجود دارد جایی در که تکرار کرد که حلقه، که ورود به سیستم N مراحل طول می کشد. آیا می توانیم انگشت خود را بر روی آنچه که قرار داده است دو عدد با اشاره به؟ خوب، که در آن - کجا میکروفون؟ SPEAKER 1: آیا وارد بخش مدیریت شوید، N شکستن ما به دو - تقسیم دو، در اصل. دیوید مالان: دقیقا. هر زمان که ما در هر الگوریتم در نتیجه می بینید کنون، این الگو وجود دارد تقسیم، تقسیم، تقسیم. و آن را به طور معمول کاهش می یابد به چیزی است که لگاریتمی، ورود به سیستم پایه 2. اما واقعا می تواند هر چیزی باشد، اما وارد بخش مدیریت شوید، پایه 2. در حال حاضر آنچه در مورد N؟ من می توانید ببینید که ما به نوعی شما تقسیم بچه ها - شما تقسیم، تقسیم، شما تقسیم، تقسیم شده است. در پایان از کجا آمده است؟ پس از آن ادغام. از آنجا که در مورد آن فکر می کنم. هنگامی که شما ادغام هشت نفر با هم، به موجب آن نیمی از آنها در مجموعه ای از چهار و نیم دیگر دیگر مجموعه ای از چهار، چگونه می توانم شما بروید در مورد انجام ادغام؟ خوب، شما بچه ها این کار را کرد نسبتا به طور مستقیم. اما اگر من به جای آن کمی بیشتر متد، من ممکن است در اشاره شخص اول سمت چپ با سمت چپ من دست، اشاره در فرد سمت چپ که نیمی با دست راست من، و فقط پس از آن از طریق راه می رفت لیست، با اشاره به کوچکترین عنصر در هر زمان، در حال حرکت انگشت من بیش از و به عنوان در سراسر فهرست مورد نیاز است. اما آنچه در مورد این ادغام روند من مقایسه این دو جفت ارز از عناصر. از نیمه سمت راست و از سمت چپ نیم، من هرگز یک بار backtracking می شود. بنابراین ادغام خود را گرفتن بیش از n مرحله. و چند بار من برای انجام این کار ادغام؟ خب، نه بیش از n، و ما فقط دیدم که با ادغام نهایی است. و به همین ترتیب اگر شما چیزی را که طول می کشد وارد بخش مدیریت شوید، N مراحل n بار و یا بالعکس، آن را به ما n بار ورود به سیستم N. و چرا این بهتر است؟ خوب، اگر ما در حال حاضر می دانیم که ورود به سیستم نفر بهتر از n است - درست است؟ ما در جستجوی دودویی را دیدم، دفترچه تلفن عنوان مثال، ورود N قطعا بود بهتر از خطی است. بنابراین این بدان معناست که نفر زمان ورود N قطعا بهتر از n بار یکی دیگر از N، های AKA N مربع. و این چیزی است که ما در نهایت احساس. دور آنقدر بزرگ از تشویق، اگر ما می تواند، برای این بچه ها. [تشویق حضار] دیوید مالان و هدایای فراق خود را - شما ممکن است اعداد را نگه دارید، اگر شما می خواهم. و هدیه فراق خود، به طور معمول. اوه، و ما شما را ارسال فیلم، میشل. متشکرم. بسیار خوب. راهنما خودتان را به یک توپ استرس. و اجازه دهید من بالا بکشد، در عین حال، دوستان ما راب Bowden برای ارائه دیدگاه تا حدودی متفاوت است در این مورد، از آنجا که شما می توانید در مورد این فکر می کنم مراحل اتفاق می افتد در یک تا حدودی راه متفاوت است. در واقع، مجموعه ای را برای آنچه که راب در مورد به ما نشان می دهد فرض بر این است که ایم در حال حاضر انجام می شود تا تقسیم لیست بزرگ به هشت لیست کوچک، هر یک از اندازه 1. بنابراین ما در حال تغییر است از شبه کمی فقط به مرتب کردن بر اساس در ایده اصلی از چگونگی ادغام این نسخهها کار میکند. اما زمان در حال اجرا از آنچه او در مورد به انجام این کار است که هنوز هم رفتن به همان. و دوباره، تا مجموعه ای در اینجا این است که او با هشت لیستی از اندازه 1 آغاز شده است. بنابراین بخشی که در آن او به شما از دست رفته ام در واقع انجام می شود ورود به سیستم N، N ورود به سیستم، ورود به سیستم N تقسیم ورودی. [پخش ویدئو] که آن را برای گام اول است. برای مرحله دو، بارها و بارها ادغام جفت فهرست. دیوید مالان HM. فقط صوتی در حال آمدن است از کامپیوتر من است. بیایید این دوباره سعی کنید. فقط خودسرانه انتخاب کنید که - در حال حاضر ما چهار لیست. بدانید قبل از. دیوید مالان: ایناهاش. از ادغام (108) و (15)، ما پایان با لیست 15، 108. ادغام 50 و 4، در نهایت با 4، 50. ادغام 8 و 42، ما در نهایت با 8، 42. و ادغام 23 و 16، در نهایت با 16، 23. در حال حاضر تمام لیست ها ما را از اندازه 2 هستند. توجه داشته باشید که هر یک از چهار لیست طبقه بندی شده اند. بنابراین ما می توانیم شروع به ادغام جفت از لیست دوباره. ادغام 15 و 108 و 4 و 50، ما اول را 4، و سپس 15، سپس 50، و سپس 108. با ادغام 8، 42 و 16، 23، ما برای اولین بار 8، 16، 23، پس از آن 42. بنابراین در حال حاضر ما فقط دو لیست از اندازه 4، که هر یک از آنها طبقه بندی شده اند. بنابراین در حال حاضر ما ادغام این دو لیست. اول، ما را به 4، و سپس ما را به 8، پس ما را از 15، 16، و سپس 23، 42، 50، و سپس 108. [END پخش ویدئو] دیوید مالان: باز هم، اطلاع، او هرگز لمس یک فنجان داده شده بیش از یک بار پس از پیشبرد فراتر از آن است. بنابراین او هرگز تکرار. بنابراین او همیشه در حال حرکت به سمت، و این که در آن ما N ما. چرا به من اجازه نمی بکشد تا یک انیمیشن که ما قبلا دیدم، اما این بار تمرکز تنها در جور کردن و ادغام. بگذار بروم جلو و بزرگنمایی در این در اینجا. اول اجازه دهید من یک ورودی تصادفی را انتخاب کنید، بزرگ این است، و شما می توانید از مراجعه مرتب سازی بر اساس آنچه ما اعطا شده، در اوایل در زمان، ادغام مرتب سازی بر است که در واقع در حال انجام است. پس توجه کنید که شما می توانید این نیمه و یا این محله ها و یا این هشتم مشکل این است که همه به طور ناگهانی شروع به شکل گرفتن خوب است. و سپس در نهایت، شما در آن می بینیم پایان که بم، همه چیز با هم ادغام شدند. اینها فقط سه مرحله مختلف طول می کشد در همان ایده است. اما بینش کلیدی، درست مثل شکاف و تسخیر در کلاس اول، این بود که ما تصمیم گرفت به نحوی تقسیم مشکل را به چیزی بزرگ، به مرتب سازی بر چیزی در روح یکسان، اما کوچکتر و کوچکتر و کوچکتر و کوچکتر است. در حال حاضر یکی دیگر از راه سرگرم کننده برای مرتب سازی بر اساس فکر می کنم در این مورد، حتی اگر آن را نمی رفتن به شما همان حسی را درک، انیمیشن زیر است. پس این کسی فیلم کنار هم قرار دادن که در ارتباط های مختلف برای تلفن های موبایل با عملیات های مختلف برای مرتب کردن بر اساس قرار دادن، برای جور کردن و ادغام، و برای زن و شوهر از دیگران. بنابراین در یک لحظه، من قصد دارم به آمار بازی. حدود یک دقیقه طولانی است. و حتی اگر شما هنوز هم می توانید ببینید الگوهای اتفاق می افتد، در این زمان شما می توانید همچنین بشنوند که چگونه این الگوریتم هستند اجرای متفاوت و با الگوهای تا حدودی متفاوت است. این نوع درج شده است. [تن بازی] دیوید مالان: دوباره در تلاش است برای قرار دادن هر عنصر به جایی که به آن تعلق داشت. این نوع حباب است. [تن بازی] دیوید مالان: و شما می توانید از خود را بر اساس احساس چگونه نسبتا کمی کار آن را انجام در هر مرحله. این همان چیزی است که نادرست برای تلفن های موبایل مانند. [تن بازی] دیوید مالان: این نوع انتخاب، که در آن ما عنصر ما می خواهید را انتخاب کنید از رفتن دوباره و دوباره و دوباره و قرار دادن آن را در آغاز راه است. [تن بازی] دیوید مالان: این ادغام مرتب سازی بر است، که شما واقعا می توانید شروع به احساس. [تن بازی] [خنده حضار] دیوید مالان: چیزی به نام گنوم مرتب کردن، که ما آن را در نگاه نمی شود. [تن بازی] دیوید مالان: پس اجازه بدهید من را ببینید، در حال حاضر، پریشان به عنوان شما امیدوارم موسیقی، اگر من می توانم کمی لغزش کمی از ریاضی را در اینجا. بنابراین یک راه چهارم که ما می توانیم وجود دارد فکر می کنم در مورد آنچه در آن به معنی این توابع سریع تر از آنهایی که که ما قبلا دیده ام. و اگر شما در این دوره از پس زمینه ریاضیات، شما در واقع شاید می دانم که در حال حاضر که شما می توانید یک مدت در این روش با کف دست زدن - یعنی بازگشت، یک تابع که به نحوی خود را می نامد. و دوباره، به یاد بیاورید که مرتب سازی بر ادغام شبه حس بازگشتی بود که یکی از مراحل مرتب سازی بر ادغام بود به تماس مرتب سازی بر - است که، خود را. اما خوشبختانه، چون ما نگه داشته تماس مرتب کردن، و یا ادغام مرتب سازی بر اساس، به طور خاص، در کوچک و کوچکتر و فهرست کوچکتر، ما در نهایت تشکر کف به آنچه ما می خواهیم تماس بگیرید مورد پایه، در مورد hard-coded بودن که گفت: اگر کوچک است، کمتر از 2 در آن صورت، فقط بلافاصله بازگشت. اگر ما آن مورد خاص را ندارد، الگوریتم پایین، هرگز و شما در واقع به دریافت کنید حلقه بی نهایت واقعا برای همیشه. اما فرض کنید که ما می خواستیم به حال قرار داده است برخی از اعداد در این مورد، مجددا، با استفاده از n عنوان اندازه از ورودی. و من می خواستم از شما بپرسد، چه مجموع مدت زمان درگیر در در حال اجرا چیدمان بر ادغام؟ یا به طور کلی تر، چه هزینه آن را در زمان؟ به خوبی از آن بسیار آسان است برای اندازه گیری. اگر n کمتر از 2، زمان درگیر در مرتب سازی n عنصر، که در آن n 2، 0 است. از آنجا که ما فقط بازگشت. هیچ کار باید انجام شود وجود دارد. حالا مسلما، شاید آن را یک گام یا دو گام های به شکل مقدار کار می کنند، اما آن را به اندازه کافی نزدیک به 0 است که من فقط می گویند هیچ کاری مورد نیاز اگر این فهرست آنقدر کوچک است به غیر می شود. اما این مورد جالب است. مورد بازگشتی شاخه ای از شبه که گفت: دیگری، مرتب کردن نیمه چپ، مرتب سمت راست در نیمه، ادغام دو نیمه است. حالا چرا این عبارت می کند نمایندگی که هزینه؟ خوب، T N فقط بدان معناست که زمان برای مرتب کردن n عنصر است. و سپس در سمت راست ... علامت مساوی وجود دارد، T از n تقسیم توسط 2 با اشاره به هزینه از چه؟ مرتب سازی بر نیمه چپ. T دیگر از n تقسیم بر 2 است احتمالا اشاره به هزینه مرتب کردن بر اساس نیمه سمت راست. و پس از آن نفر به علاوه؟ آیا ادغام. زیرا اگر دو لیست، یکی از N اندازه بیش از 2 و دیگری از سایز n بیش از 2، شما باید اساسا لمس هر یک از این عناصر، درست مثل راب لمس هر یک از فنجان، و فقط همانطور که ما در هر یک از اشاره داوطلبان بر روی صحنه. بنابراین هزینه ادغام است. حالا متاسفانه، این فرمول همچنین خود را بازگشتی. بنابراین اگر این سؤال، اگر n است که می گویند، 16، اگر 16 نفر در مرحله وجود دارد یا 16 فنجان در این ویدئو، که چگونه بسیاری از کل مراحل آن را به آنها مرتب سازی بر اساس با جور کردن و ادغام؟ این در واقع یک جواب واضح نیست، چون در حال حاضر شما باید به مرتب کردن بر اساس از به صورت بازگشتی پاسخ به این فرمول. اما این خوب است، چون به من اجازه پیشنهاد که انجام می دهیم به شرح زیر است. مدت زمان لازم برای مرتب کردن بر اساس 16 نفر و یا 16 فنجان است که نشان داده می شود به طور کلی به عنوان T 16. اما این برابر است، با توجه به ما فرمول قبلی، 2 برابر مقدار از مدت زمان لازم برای مرتب سازی بر اساس 8 فنجان به علاوه 16. و دوباره، به علاوه 16 زمان به ادغام است، و دو بار T 8 زمان برای مرتب کردن نیمه چپ و نیمه راست. اما باز هم، این کافی نیست. ما باید به شیرجه رفتن عمیق تر است. این به این معنی است که ما باید برای پاسخ به این سوال، T 8 چیست؟ خوب T 8 فقط 2 زمان محلی شما با T 4 به علاوه 8. خب، چه T از 4؟ T 4 فقط 2 بار های T از 2 به علاوه 4. خب، چه T از 2؟ T 2 است فقط 2 برابر T 1 به علاوه 2. و دوباره، ما گرفتن نوع در این چرخه گیر کرده است. اما این مورد به ضربه که به اصطلاح مورد پایه. از آنجا که آنچه از مجموع 1 T، آیا ما ادعا می کنیم؟ 0. بنابراین در حال حاضر در نهایت، ما می توانیم به عقب کار می کنند. اگر T، از مجموع 1 0 است، من در حال حاضر می توانید به عقب برگردید تا یک خط به این پسر در اینجا، و من می توانم پلاگین در 0 T 1. بنابراین این بدان معناست که آن را برابر با 2 برابر صفر، در غیر این صورت به عنوان 0، به علاوه 2 شناخته شده است. و به طوری که کل بیان 2 است. حالا اگر من را T 2، که پاسخ 2، آن را به خط وسط، T 4، که به من می دهد 2 بار 2 به علاوه 4 تا 8. اگر من پس از آن در 8 قبلی به برق وصل کردن خط، که به من می دهد 2 بار 8، 16. و اگر ما پس از آن که با ادامه 24 اضافه کردن در سال 16، ما در نهایت گرفتن یک ارزش از 64 است. حالا که به خودی خود مرتب کردن بر اساس صحبت می کند هیچ چیز به نفر نماد، O بزرگ، امگا که ما شده است صحبت کردن در مورد. اما معلوم است که 64 است در واقع 16، اندازه ورودی، پایه 2 از 16 به سیستم وارد شوید. و اگر این است که کمی نا آشنا، فقط فکر می کنم، و آن را دوباره به شما نهایت. اگر این پایه ورود به سیستم 2 است، آن را مانند 2 مطرح شده به آنچه به شما می دهد 16؟ اوه، 4، پس از آن 16 بار 4. و دوباره، این یک معامله بزرگ نیست در صورتی که این مرتب کردن بر اساس حافظه مبهم و مه آلود در حال حاضر. اما در حال حاضر، در ایمان که 16 ورود به سیستم 16 64 است. و به این ترتیب در واقع، با این سلامت عقل ساده ، ما تایید کرده ایم - اما ثابت نه به طور رسمی - که زمان در حال اجرا از ادغام مرتب سازی بر واقع n log n استفاده. خیلی بد نیست. آن را قطعا بهتر از الگوریتم های ما تا کنون دیده ام، و به این دلیل است که ما قوی تر کرده ام، یک، یک تکنیک به نام بازگشت. اما جالب تر از آن، که مفهوم تقسیم و فتح. باز هم، واقعا هفته 0 stuff است که حتی در حال حاضر در حال تکرار شونده در بیشتر راه فوتی و فوری. در حال حاضر یک تمرین سرگرم کننده کوچک، اگر شما هرگز انجام نداده - و شما احتمالا نمی خواهد داشته باشد، زیرا نوع نرمال مردم فکر نمی کنم برای انجام این کار. اما اگر من به google.com و اگر بروید من می خواهم برای یادگیری چیزی در مورد بازگشت، وارد کنید. [خنده حضار] [خنده حضار بیشتر] دیوید مالان: شوخی بد به آرامی گسترش. [خنده حضار] دیوید مالان: فقط در صورت، آن وجود دارد. من طلسم آن اشتباه نیست، و شوخی وجود دارد. بسیار خوب. توضیح دهید که آن را به مردم در کنار شما اگر آن شده است کاملا فقط رتبهدهی نشده است کلیک نیست. اما بازگشت، به طور کلی تر، اشاره به روند یک تابع فراخوانی شده خود را، و یا به طور کلی، تقسیم مشکل به چیزی است که می تواند تکه تکه با حل یکسان حل مشکلات نماینده. چرخ دنده ها تغییر خب، بیایید برای فقط یک لحظه. ما دوست داریم در برخی از cliffhangers پایان، پس بیایید شروع به تنظیم این مرحله، برای چند دقیقه، یک ایده بسیار ساده است - که از مبادله دو عنصر، درست است؟ همه از این الگوریتم ما بوده ام صحبت کردن در مورد زن و شوهر گذشته سخنرانی ها شامل برخی از مرتب کردن بر اساس مبادله. امروز آن را با آنها گرفتن تجسم شد تا از صندلی خود و قدم زدن در اطراف، اما در کد، ما می فقط یک عنصر از یک آرایه و صدای تلپ آن را به یکی دیگر از. پس چگونه ما در مورد انجام این کار؟ خوب، اجازه دهید من جلو بروید و نوشتن یک برنامه سریع در اینجا. من قصد دارم به جلو بروید و انجام این را به عنوان شرح زیر است. اجازه دهید این - چه می خواهیم در این یک تماس بگیرید؟ در واقع، نه. به من اجازه عقب. من نمی خواهم برای انجام این کار مطلب یا داستان جالب است. این سرگرم کننده یغما می بردند. بیایید به جای انجام. فرض کنید که من می خواهم به ارسال نامه کمی برنامه و که در حال حاضر پذیرای این ایده بازگشت. من به نوعی جلوتر از خودم وجود دارد. من قصد دارم به انجام موارد زیر است. اول، سریع عبارتند از استاندارد io.h، و همچنین شامل cs50.h. و سپس من قصد دارم به جلو بروید و اعلام درجه اعتبار ساقط اصلی اعضای هیات تحریریه در روش معمول است. من متوجه شدم من فایل misnamed کرده ام، بنابراین اجازه دهید من فقط اضافه کردن یک پسوند. بنابراین در اینجا که ما می توانیم آن را به درستی کامپایل. شروع این تابع خاموش. و تابع من می خواهم برای نوشتن، کاملا به سادگی، یکی می پرسد که کاربر برای یک عدد و سپس می افزاید: تمام اعداد بین آن تعداد و، می گویند، 0. بنابراین برای اولین بار من قصد دارم به جلو بروید و اعلام N اعضای هیات. سپس من را کپی کنید برخی از کد که ما برای مدتی استفاده می شود. در حالی که چیزی درست است. من که در یک لحظه باز می گردد. چه من می خواهم کاری انجام دهید؟ من می خواهم بگویم چون printf مثبت لطفا عدد صحیح. و سپس من قصد دارم به می گویند نفر می شود که بین المللی است. تا دوباره، برخی از کد boilerplate که ما قبل از استفاده می شود. و من قصد دارم برای انجام این کار در حالی که کمتر از 1 است. بنابراین این اطمینان حاصل شود که کاربر به من می دهد یک عدد صحیح مثبت است. و در حال حاضر من قصد دارم به انجام موارد زیر است. من می خواهم برای اضافه کردن تمام اعداد بین 1 و n یا 0 و n، معادل، برای دریافت مبلغ کل. بنابراین نماد بزرگ سیگما که شما ممکن است به یاد. بنابراین من قصد دارم این کار را با اولین تماس یک تابع به نام سیگما، انتقال آن در n، و سپس من قصد دارم به می گویند چون printf، پاسخ این است که سمت راست وجود دارد. بنابراین در کوتاه مدت، من و int از کاربر. من اطمینان حاصل شود آن مثبت است. من یک متغیر پاسخ نام نوع int و فروشگاه در آن بازگشت ارزش سیگما، عبور در n به عنوان ورودی. و سپس من نسخه قابل چاپ کردن که پاسخ. متاسفانه، حتی اگر سیگما برای تلفن های موبایل مانند چیزی که ممکن است در فایل math.h، اعلام آن، در واقع نه. به طوری که OK. من می توانم این خودم پیاده سازی. من قصد دارم برای پیاده سازی یک تابع به نام سیگما، و آن را رفتن به گرفتن پارامتر - اجازه دهید فقط آن را متر، فقط پس از آن متفاوت است. و سپس در اینجا، من قصد دارم برای گفتن، خوب، اگر متر کمتر از 1 است - این است که یک بسیار غیر برنامه. بنابراین من قصد دارم به جلو بروید و فورا 0 بازگشت. این فقط به معنی اضافه کردن تمام را ندارد اعداد بین 1 و اگر M M است خود را 0 و یا منفی است. و سپس من قصد دارم به جلو بروید و انجام این کار بسیار تکراری است. من قصد دارم برای انجام این نوع از قدیمی مدرسه، و من قصد دارم به جلو بروید و می گویند که من قصد دارم به اعلام مبلغ به 0. سپس من قصد دارم به برای حلقه بین المللی - و به من اجازه انجام آن را برای مطابقت با ما کد توزیع، بنابراین شما باید یک کپی در خانه. اعضای هیات من می شود 1 تا من کمتر یا برابر است با m است. من به علاوه به علاوه. و سپس در داخل این حلقه for - ما تقریبا وجود دارد - جمع می شود مبلغ به علاوه 1. و سپس من قصد دارم برای بازگشت به جمع. بنابراین من این کار را به سرعت، کاملا مسلما. اما باز هم، تابع اصلی زیبا ساده، بر اساس کد ایم تا کنون نوشته شده است. با استفاده از حلقه دوگانه به مثبت int از کاربر. من پس از آن تصویب که int به یک تابع جدید به نام سیگما، خواستار آن، دوباره، N. و من ذخیره مقدار بازگشتی، پاسخ از جعبه سیاه در حال حاضر شناخته شده به عنوان سیگما، در یک متغیر به نام جواب. سپس من آن را چاپ کنید. اگر ما در حال حاضر ادامه داستان، چگونه سیگما اجرا؟ من پیشنهاد می کنم به شرح زیر اجرا. اول، کمی از چک کردن خطا مطمئن شوید که کاربر نیست messing با من و عبور برخی از ارزش منفی یا 0. سپس من یک متغیر به نام اعلام خلاصه و تنظیم آن را به 0. و در حال حاضر من شروع به حرکت از من برابر 1 راه اندازی شده است و از جمله متر، چون من می خواهم به همه شامل اعداد از یکی از طریق متر، شامل. و داخل این حلقه for، من فقط نمی جمع می شود هر آنچه در آن است در حال حاضر، به علاوه ارزش من. به علاوه ارزش من. همانطور که به کنار، اگر شما این دیده نمی قبل از آن، برخی از قند نحوی وجود دارد برای این خط. من می توانم این بازنویسی به علاوه برابر من، فقط به خودم نجات چند keystrokes و به نگاه کمی کولر. اما این همه. این عملکرد همان چیزی است. متاسفانه، این کد را رفتن به کامپایل رتبهدهی نشده است. اگر من اجرا را سیگما 0، چگونه می من برای گرفتن فریاد زد؟ چه آن را دوست ندارد؟ مخاطب: [نامفهوم]. دیوید مالان: بله، من اعلام کنید تابع تا بالای، درست است؟ C نوع احمق، آن را تنها در آن آنچه به شما بگویم آن را به انجام، و شما باید آن را در آن منظور. و به همین ترتیب اگر من ضربه را وارد کنید در اینجا، من رفتن به هشدار در مورد سیگما ضمنی بیانیه. آه، نه یک مشکل. من می توانم به بالا، و من می توانم می گویند، همه حق است، یک دقیقه صبر کنید. سیگما یک تابع است که می گرداند int و انتظار بین المللی به عنوان ورودی، نقطه و ویرگول بدین. یا من می توانم کل تابع قرار داده است بالا اصلی است، اما به طور کلی، من می خواهم توصیه در برابر آن، زیرا این خوب همیشه در بالا تا اصلی شما در سمت راست می توانید شیرجه رفتن و می دانند چه برنامه با خواندن اصلی برای اولین بار انجام می دهند. بنابراین در حال حاضر اجازه دهید من روشن روی صفحه نمایش. بازسازی سیگما 0. همه به نظر می رسد برای بررسی کردن. اجازه دهید من اجرا سیگما 0. بین مثبت. من آن را به شماره 3 تا نگه داشتن آن ساده است. به طوری که باید به من 3 به علاوه 2 به علاوه 1 تا 6. را وارد کنید، و در واقع من 6. من می توانم چیزی بزرگتر انجام دهد - 50، 12، 75. فقط به عنوان یک مماس، من قصد دارم برای انجام چیزی مضحک است مانند واقعا بزرگ تعداد، آه، که در واقع کار می کرد - EH، من فکر نمی کنم درست است. اجازه دهید را ببینید. بیایید واقعا با آن ظروف سرباز یا مسافر. این یک مشکل است. چه خبر است؟ کد است که بد نیست. این هنوز خطی است. سوت یک اثر خوب است، هر چند. چه خبر است؟ هنوز مطمئن شوید که اگر من آن را شنیده. بنابراین آن را تبدیل کنید - و این است که به عنوان یک کنار. این است که به هسته ای نیست ایده بازگشت. به نظر می رسد، چرا که من در تلاش برای نمایندگی چنین تعداد بزرگی، بیشتر به احتمال زیاد آن را بغلط تعبیر توسط C به عنوان یک عدد مثبت نیست، اما عدد منفی. ما در این مورد صحبت کرده ایم، اما آن را معلوم است که اعداد منفی وجود دارد در جهان علاوه بر به اعداد مثبت. و وسیله ای است که شما می توانید نشان دهنده یک عدد منفی اساسا، شما با استفاده از یک کمی خاص را نشان می دهد بیش از منفی مثبت است. این کمی پیچیده تر از آن، اما این ایده اساسی است. متاسفانه، اگر C گیج کننده است از آن بیت را به واقع به معنی، آه، این یک عدد منفی، حلقه من است در اینجا، به عنوان مثال، در واقع هرگز رفتن به خاتمه. بنابراین اگر من در واقع چاپ شد چیزی دوباره و دوباره، ما می کل خیلی را ببینید. اما باز هم، این است که علاوه بر نقطه است. این است که واقعا فقط یک نوع از کنجکاوی فکری که ما می آیند بازگشت به نهایت. اما در حال حاضر، این است که درست است اجرای اگر فرض کنیم که کاربر خواهد شد نوع داده int ارائه که در عرض چند نوع داده int مناسب. اما من ادعا می کنند که این کد، رک و پوست کنده، می تواند خیلی بیشتر به سادگی انجام می شود. اگر هدف در دست است را به یک عدد مانند متر و اضافه کردن همه اعداد بین آن و 1، و یا برعکس بین 1 و آن، من ادعا می کنند که من می توانم این ایده که ادغام قرض نوع داشت، که در نظر گرفتن یک مشکل این اندازه و تقسیم آن به چیزی کوچکتر است. شاید نیمی نیست، اما کوچکتر، اما representatively همان. ایده همان است، اما یک مشکل کوچک. بنابراین من در واقع - اجازه بدهید این فایل (Save me) مرا نگه دار با شماره نسخه متفاوت. ما این نسخه را خواهید تماس بگیرید 1 به جای 0. و من ادعا می کنند که من در واقع می توانید reimplement این در این نوع ذهن خم راه است. من قصد دارم تنهایی برای ترک بخشی از آن. من قصد دارم برای گفتن اگر متر است کمتر از یا حتی مساوی به 0 - من فقط رفتن به کمی مقعد تر این زمان با چک کردن خطا من - من قصد دارم به جلو بروید و بازگشت 0. این اختیاری است. من فقط به سادگی تصمیم گیری اگر کاربر به من می دهد یک عدد منفی، من بازگشت 0، و آنها باید به عنوان خوانده شده اسناد بیشتر از نزدیک. دیگری - متوجه آنچه که من قصد دارم به انجام. دیگری من می خواهم به بازگشت M PLUS - چه سیگما متر است؟ خب، سیگما از M به علاوه متر منهای 1، به علاوه متر منهای 2، به علاوه منهای 3. من نمی خواهم به نوشتن همه که از. چرا من نه فقط زدن توپ؟ در بازگشتی خودم با کمی تماس بگیرید مشکل کوچکتر، نقطه و ویرگول بدین شکل، و آن روز تماس بگیرید؟ درست است؟ در حال حاضر در اینجا، بیش از حد، شما ممکن است احساس یا نگرانی که این حلقه بی نهایت که من است القا، به موجب آن من به اجرای سیگما تماس سیگما. اما این کاملا خوب، چون من پیش فکر کردم که خطوط اضافه شده؟ مخاطب: [نامفهوم]. دیوید مالان: 23 تا 26، که اگر شرایط من است. از آنجا چه خبر خوب در مورد تفریق در اینجا، چون من در حفظ و توزیع مشکلات کوچکتر سیگما، کوچکتر مشکلات، کوچکتر - آن نیست نیمی از اندازه. این تنها یک گام کودک کوچکتر، اما این خوب است. چرا که در نهایت، ما کار خواهیم کرد راه ما را به 1 یا 0. و زمانی که ما 0، سیگما رفتن به خود تماس بگیرید دیگر. این رفتن برای برگرداندن 0. بنابراین اثر، اگر شما از باد چیدمان بر این در ذهن خود مرور کنید، این است که اضافه کردن M PLUS متر، منفی 1، به علاوه متر منهای 2، به همراه متر منهای 3، به علاوه نقطه، نقطه، نقطه، متر منهای متر، در نهایت شما با دادن 0 و اثر در نهایت به اضافه همه این کارها با هم. بنابراین ما را نداشته باشند، با بازگشتی، حل مشکل این است که ما نمی تواند قبل از حل. در واقع، نسخه 0 از این، و هر مشکل تا به امروز است، قابل حل است با تنها با استفاده از حلقه ها و یا در حالی که حلقه ها یا سازه های مشابه. اما بازگشتی، من اعتقاد داشتن به ما می دهد راه های مختلف تفکر در مورد مشکلات، به موجب آن اگر ما می توانیم راه حلی برای مشکلات خود، آن را از چیزی تقسیم تا حدودی زیادی را به چیزی تا حدودی کوچکتر، من ادعا می کنند که ما می توانیم آن را حل کند شاید کمی بیشتر به زیبایی در شرایط از طراحی، با کد کمتر، و شاید حتی حل مشکلاتی که خواهد بود سخت تر است، همانطور که ما در نهایت باید ببینید، حل صرفا صورت تکراری. اما مطلب یا داستان جالب است که من می خواهم ما را در این بود. بگذار بروم جلو و باز یک فایل از - در واقع، بگذار بروم و انجام این سرعت واقعی است. بگذار بروم جلو و پیشنهاد شرح زیر است. در میان کد امروز این فایل است در اینجا. این یکی در اینجا، noswap. بنابراین این برنامه کمی احمقانه است که من شلاق که ادعا می کند به انجام شرح زیر است. در متد Main، آن را برای اولین بار اعلام کرد نوع int به نام x و آن را اختصاص ارزش 1. سپس آن را اعلام Y int و آن مقدار 2 را اختصاص می دهد. سپس آن را چاپ آنچه x و y است. سپس آن را می گوید، مبادله، نقطه نقطه نقطه. سپس آن را ادعا می کند به فراخوانی یک تابع مبادله نامیده می شود، عبور در x و Y، که ایده آن این است که امیدوارم x و y خواهد آمد مختلف، مخالف است. سپس آن را ادعا می کنند عوض شده! با یک علامت تعجب. سپس آن را چاپ x و y. اما معلوم است که این بسیار تظاهرات ساده پایین در اینجا است که در واقع حشره دار. حتی اگر من اعلام موقت متغیر و به طور موقت با قرار دادن در و پس از آن من reassigning ارزش ب - که معقول احساس می کند، چون من یک کپی از در دما نجات داد. سپس من ب روز رسانی برابر هر چه در درجه حرارت بود. این نوع از بازی پوسته حرکت به B و B را با استفاده از این مرد متوسط ​​دما نامیده می شود احساس می کند کاملا معقول است. اما من ادعا می کنند که زمانی که من این اجرا کد، به عنوان من در حال حاضر می خواهیم انجام دهیم - اجازه دهید من جلو بروید و در اینجا خمیر آن را. من این noswap.c را خواهید تماس بگیرید. و به عنوان نام نشان می دهد، این است که برای رفتن به یک برنامه صحیح. noswap / هیچ مبادله. X 1، Y 2، مبادله، عوض میکنه. X 1، Y 2 است. این است که اساسا اشتباه است، حتی هر چند این به نظر می رسد کاملا معقول و منطقی به من. و یک دلیل وجود دارد، اما ما نیستیم رفتن به فاش کردن دلیل فقط رتبهدهی نشده است. در حال حاضر مطلب یا داستان جالب دوم من می خواستم به شما ترک این است، اعلام انواع کد کوپن. نوآوری ما با اواخر روز این سال یک عدد غیر بی اهمیت برانگیخته است از سوالات بود که قصد ما. قصد این کد کوپن، به موجب آن اگر شما بخشی از مشکل تنظیم اولیه، در نتیجه گرفتن یک روز اضافی، واقعا به کمک شما بچه ها کمک خود را شروع اولیه، مرتب کردن توسط شما incentivizing. به ما کمک می کند تا بار توزیع در سراسر ساعات اداری بهتر است به طوری که مرتب کردن بر اساس برنده است. متاسفانه، من فکر می کنم به دستورات من نبوده اند، تا به امروز، بسیار روشن است، بنابراین این آخر هفته من رفت و برگشت و به روز تنظیمات در بزرگتر، متن جسورانه به گلوله هایی از این دست را توضیح دهد. و فقط به آن می گویند علنی تر، به طور پیش فرض، مجموعه مسائل به علت پنجشنبه در ظهر، در برنامه درسی. اگر شما شروع به در اوایل، به پایان رساندن بخشی از مشکل روز چهارشنبه در ساعت 12:00 PM، بخشی که مربوط به کوپن کد، ایده این است که شما می توانید گسترش مهلت خود را برای P تا جمعه. است که، به کمی کردن بخشی کوچک از P تنظیم نسبت به آنچه به طور معمول است مشکل بزرگتر، و به شما خرید خود را یک روز فوق العاده است. باز هم، آن می شود شما را به فکر کردن در مورد مجموعه مشکل، به شما می شود ساعات اداری زودتر. اما مشکل این کد کوپن است که هنوز هم مورد نیاز است، حتی اگر شما آن را نفرستید. اما قانعکنندهای تر از این است. (زمزمه STAGE) و کسانی که مردمی ترک در اوایل جاوا آن را پشیمانی. به عنوان مردمی در بالکن. من در پیش به مردمی عذرخواهی می کنیم بالکن برای دلایلی که خواهد بود فقط یک لحظه روشن است. بنابراین ما خوش شانس به یکی از آموزش همراهان رئیس سابق CS50 در یک شرکت نام dropbox.com. آنها شده اند بسیار سخاوتمندانه اهدا کد کوپن در اینجا برای این فضا بسیار، است که از معمول 2 گیگابایت. بنابراین آنچه که من فکر کردم ما را در انجام این کار توجه داشته باشید نهایی این است که انجام یک بیت سادگی، به موجب آن در فقط یک لحظه، ما آشکار خواهد شد برنده و که دارای کوپن کد که بعد از آن شما می توانید خود را به وب سایت، تایپ در، و voila، فضای کل خیلی بیشتر Dropbox به شما لوازم خانگی و برای فایل های شخصی شما. و برای اولین بار که می خواهم به شرکت در این نقاشی؟ خوب، در حال حاضر است که باعث می شود آن را حتی بیشتر سرگرم کننده است. کسی که این 25 گیگابایت را دریافت کد کوپن - است که به مراتب قانع کننده تر از اواخر روز در حال حاضر، شاید - کسی است که در بالای یک نشسته است پشتی صندلی که در زیر آن وجود دارد که کد کوپن. شما در حال حاضر ممکن است زیر نگاه کنید پشتی صندلی خود را. [پخش ویدئو] یک، دو، سه. [فریاد] شما دریافت می کنید یک ماشین! شما دریافت می کنید یک ماشین! دیوید مالان: خواهیم دید شما در روز چهارشنبه. شما دریافت می کنید یک ماشین! شما دریافت می کنید یک ماشین! شما دریافت می کنید یک ماشین! شما دریافت می کنید یک ماشین! شما دریافت می کنید یک ماشین! دیوید مالان: مردمی بالکن، آمده است در اینجا به جلو، جایی که ما باید اضافی. و همه می شود یک ماشین! همه می شود یک ماشین! [END پخش ویدئو] راوی: در CS50 بعدی - SPEAKER 5: خدای من خدای من خدای من خدای من خدای من خدای من خدای من خدای من خدای من خدای - [نمایشنامه UKELELE]