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