1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [بخش 3] [کمتر راحت] 2 00:00:03,000 --> 00:00:05,000 >> [مقابله Hardison] [دانشگاه هاروارد] 3 00:00:05,000 --> 00:00:08,000 >> [این CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:10,000 >> همه حق است، بیایید شروع کنیم. 5 00:00:10,000 --> 00:00:13,000 هفته 4 از CS50 خوش آمدید. 6 00:00:13,000 --> 00:00:19,000 اگر شما بچه ها باز کردن یک مرورگر وب و باز کردن pset 3، 7 00:00:19,000 --> 00:00:23,000 تقلا با CS50، ما قصد داریم به شروع می شود 8 00:00:23,000 --> 00:00:26,000 از طریق بخش از سوالات وجود دارد. 9 00:00:26,000 --> 00:00:32,000 درست مثل هفته گذشته، ما مشغول به کار در CS50 فضاهای، 10 00:00:32,000 --> 00:00:35,000 اگر شما هم می خواهید که تا جلو و به عنوان خوب، 11 00:00:35,000 --> 00:00:43,000 و اگر شما به جلو بروید و این لینک که من در اینجا در بالای صفحه مراجعه کنید. 12 00:00:43,000 --> 00:00:45,000 این زمان برای شروع است. 13 00:00:45,000 --> 00:00:51,000 ما باید برنامه سلام ما در اینجا. هیچ چیز دیوانه. 14 00:00:51,000 --> 00:00:55,000 یکی از اولین چیزهایی که من می خواهم امروز با شما بچه ها انجام شده است، بیش از یک راه حل چند 15 00:00:55,000 --> 00:00:58,000 به مشکل تنظیم 1، نوع راه حل های به عنوان مثال، 16 00:00:58,000 --> 00:01:03,000 بنابراین شما می توانید احساس برای چه نوع از کارکنان کد نوشتن، 17 00:01:03,000 --> 00:01:07,000 چه نوع دیگر از دانش آموزان کد نوشتن، 18 00:01:07,000 --> 00:01:10,000 و یک نگاه در آن شما را به خاطر من می دانم که آن را عجیب و غریب 19 00:01:10,000 --> 00:01:14,000 هنگامی که یک راه حل برای مشکل مجموعه ارائه و دریافت نظرات شما 20 00:01:14,000 --> 00:01:18,000 در نسخه خود را، اما گاهی اوقات آن را مفید ببینید که چگونه مردم دیگر آن را انجام داد، 21 00:01:18,000 --> 00:01:22,000 به خصوص آنهایی که خوب به دنبال. 22 00:01:22,000 --> 00:01:27,000 در اکثر موارد، من واقعا با راه حل هایی که شما بچه ها تحت تأثیر قرار گرفت. 23 00:01:27,000 --> 00:01:31,000 من هنوز به دنبال آغاز 2S مجموعه مشکل است، اما اگر آنها چیزی مانند اول، 24 00:01:31,000 --> 00:01:34,000 آن را به معنای هیچ چیز اما همه چیز خوب است. 25 00:01:34,000 --> 00:01:40,000 >> اگر شما در تجدید نظر من نگاه کنید، اجازه دهید شروع تمام راه را در ویرایشهای 1، 26 00:01:40,000 --> 00:01:47,000 و ما در حال رفتن به یک نگاه سریع در یک راه حل ماریو. 27 00:01:47,000 --> 00:01:54,000 اگر شما را بکشد تا این برنامه است که ما قصد داریم به ارائه درست باشد. 28 00:01:54,000 --> 00:01:56,000 مسائل مربوط به صحت با این مشکلات وجود ندارد، بلکه 29 00:01:56,000 --> 00:01:59,000 ما می خواهیم به بحث کمی در مورد مسائل مربوط به طرح های مختلف 30 00:01:59,000 --> 00:02:03,000 که در اینجا مورد استفاده قرار گرفت. 31 00:02:03,000 --> 00:02:08,000 یکی از چیزهایی که جالب بود در مورد راه حل 32 00:02:08,000 --> 00:02:11,000 این است که آن را با استفاده از این ساختار جدید به نام پوند تعریف، 33 00:02:11,000 --> 00:02:15,000 گاهی اوقات نیز به عنوان یک مخلوط تعریف نامیده می شود. 34 00:02:15,000 --> 00:02:18,000 اجازه بدهید من زوم بر روی آن است. 35 00:02:18,000 --> 00:02:24,000 # تعریف این اجازه می دهد تا شما را به نام به این اعداد را در برنامه شما است. 36 00:02:24,000 --> 00:02:28,000 در این حالت، حداکثر ارتفاع هرم در ماریو 37 00:02:28,000 --> 00:02:34,000 در 23 و به جای قرار دادن 23 در کد 38 00:02:34,000 --> 00:02:37,000 ما را به که به عنوان سخت برنامه نویسی 23 مراجعه کنید - 39 00:02:37,000 --> 00:02:43,000 به جای این به MAX_HEIGHT نام به این تعداد، 40 00:02:43,000 --> 00:02:48,000 به طوری که پایین در اینجا در DO-در حالی که حلقه من 41 00:02:48,000 --> 00:02:51,000 شما در واقع می تواند اشاره به MAX_HEIGHT 42 00:02:51,000 --> 00:02:55,000 به جای قرار دادن شماره 23 شوید. 43 00:02:55,000 --> 00:02:57,000 [دانشجو] استفاده از انجام این کار چیست؟ 44 00:02:57,000 --> 00:02:59,000 این یک سوال بزرگ است. 45 00:02:59,000 --> 00:03:03,000 یکی از خوانایی است. 46 00:03:03,000 --> 00:03:08,000 استفاده از با استفاده از این # تعریف خوانایی است. 47 00:03:08,000 --> 00:03:11,000 وقتی که من خواندن این کد، می توانید ببینید چه خبر است. 48 00:03:11,000 --> 00:03:15,000 >> من می توانم در این وضعیت را مشاهده کنید که در اینجا ما در حال آزمایش 49 00:03:15,000 --> 00:03:19,000 برای ارتفاع <0، که ما آن را نیز تعریف 50 00:03:19,000 --> 00:03:22,000 به حداقل ارتفاع یا ارتفاع دقیقه. 51 00:03:22,000 --> 00:03:25,000 مزیت دیگر این است که من پس از آن می توانید خواندن بقیه از خط برای دیدن 52 00:03:25,000 --> 00:03:30,000 که ما نیز بررسی تا اطمینان حاصل کنید که ارتفاع آن بیشتر از حداکثر ارتفاع نیست، 53 00:03:30,000 --> 00:03:35,000 از آنجا که ما در حال رفتن به ادامه در حالی که ارتفاع آن بیشتر از حداکثر ارتفاع. 54 00:03:35,000 --> 00:03:40,000 مزیت دیگر این است که اگر من زوم کمی در اینجا 55 00:03:40,000 --> 00:03:49,000 اگر من برای اجرای این برنامه است و من آن را اجرا کنید، می گویند، با 23 در حال حاضر، 56 00:03:49,000 --> 00:03:52,000 چاپ تمام 23 ردیف تنها می خواهم که. 57 00:03:52,000 --> 00:03:54,000 اما می گویند من می خواستم برای تغییر ارتفاع حداکثر 58 00:03:54,000 --> 00:03:57,000 و در حال حاضر من می خواهم برای محدود کردن حداکثر ارتفاع اهرام 59 00:03:57,000 --> 00:04:06,000 فقط می گویند مردی، که بد بو بود. 60 00:04:06,000 --> 00:04:14,000 # شامل ، # تعریف MAX_HEIGHT، 61 00:04:14,000 --> 00:04:18,000 و اجازه دهید می گویند ما می خواستیم به آن را برابر با 10 است. 62 00:04:18,000 --> 00:04:22,000 در حال حاضر در این نقطه، من تا به حال انجام بود در این مکان آن را تغییر دهید. 63 00:04:22,000 --> 00:04:27,000 من می توانم کد، کامپایل مجدد و در حال حاضر اگر من سعی می کنم و در سال 12 نوع، 64 00:04:27,000 --> 00:04:30,000 آن را دوباره به من تحریک کند. 65 00:04:30,000 --> 00:04:33,000 در این مورد، ما تنها با استفاده از MAX_HEIGHT یک بار. 66 00:04:33,000 --> 00:04:37,000 این است که بدون هیچ زحمتی بزرگ به در 67 00:04:37,000 --> 00:04:40,000 و آن را تغییر دهید در حلقه در حالی که اگر شما نیاز به. 68 00:04:40,000 --> 00:04:44,000 اما در برنامه های که در آن شما در حال اشاره به همان شماره سحر و جادو 69 00:04:44,000 --> 00:04:47,000 بارها و بارها، این # تعریف مکانیسم واقعا مفید 70 00:04:47,000 --> 00:04:52,000 دلیل این که شما فقط آن را در بالای فایل آن را به طور معمول که در آن شما قرار داده و آنها را در یک زمان 71 00:04:52,000 --> 00:04:57,000 و تغییر نفوذ از طریق بقیه از فایل. 72 00:04:57,000 --> 00:05:02,000 >> چیزهای دیگر من می خواستم در این انتساب توجه داشته باشید که من فکر می کنم نگاه واقعا خوب است، 73 00:05:02,000 --> 00:05:05,000 یکی از نامگذاری متغیر بود. 74 00:05:05,000 --> 00:05:14,000 شما اینجا را ببینید که ما داریم متغیر Integer به نام سطر و ارتفاع اصطلاح. 75 00:05:14,000 --> 00:05:20,000 فاصله، هش، این کد را کمی بیشتر قابل خواندن کمک می کند. 76 00:05:20,000 --> 00:05:25,000 باعث می شود که آن را کمی قابل فهم تر آنچه که در واقع در حال رفتن به. 77 00:05:25,000 --> 00:05:31,000 این است که در مقابل با استفاده از، می گویند، نامه های تصادفی 78 00:05:31,000 --> 00:05:35,000 یا فقط شر و ور در دسترس نباشد. 79 00:05:35,000 --> 00:05:39,000 چیزی نهایی من اشاره می کنند این است که در حلقه for، 80 00:05:39,000 --> 00:05:45,000 اغلب این متغیرها تکرارکننده، این شمارنده که شما خود را در حلقه for استفاده، 81 00:05:45,000 --> 00:05:51,000 استاندارد و معمولی به آنها را با هر دو من و سپس J شروع و سپس K 82 00:05:51,000 --> 00:05:54,000 و از آنجا اگر شما نیاز به متغیرهای بیشتر، 83 00:05:54,000 --> 00:05:56,000 و این فقط یک قرارداد است. 84 00:05:56,000 --> 00:05:58,000 هستند بسیاری از کنوانسیون وجود دارد. 85 00:05:58,000 --> 00:06:00,000 آن را در زبان برنامه نویسی استفاده می کنید بستگی دارد. 86 00:06:00,000 --> 00:06:04,000 اما در C، ما به طور معمول با من شروع می شود. 87 00:06:04,000 --> 00:06:08,000 این احساس برای استفاده را ندارد، می گویند، یا ب 88 00:06:08,000 --> 00:06:13,000 با توجه به این وضعیت است. 89 00:06:13,000 --> 00:06:15,000 است که آن را به یکی از این. 90 00:06:15,000 --> 00:06:25,000 اگر شما در حال حاضر جلو و ویرایشهای 2، شما دیگر ماریو، 91 00:06:25,000 --> 00:06:29,000 و این یکی شبیه به یک دیگر است که ما فقط دیدم، 92 00:06:29,000 --> 00:06:32,000 اما آن را نشانی از نوع چیزی از سرد. 93 00:06:32,000 --> 00:06:38,000 اگر ما در این بخش نگاه کنید در سمت راست در داخل داخلی حلقه 94 00:06:38,000 --> 00:06:44,000 آنها با استفاده از برخی از دیوانه به دنبال نحو درست در این خط است. 95 00:06:44,000 --> 00:06:47,000 این یک عملگر سه تایی نامیده می شود. 96 00:06:47,000 --> 00:06:53,000 این بیانیه اگر دیگری منقبض شده را به یک خط است. 97 00:06:53,000 --> 00:06:57,000 وضعیت این بخش در داخل پرانتز است. 98 00:06:57,000 --> 00:07:05,000 این معادل گفت: اگر J <ارتفاع - من - 1. 99 00:07:05,000 --> 00:07:10,000 و پس از آن چه که اگر بلوک خواهد بود فضا 100 00:07:10,000 --> 00:07:16,000 و پس از آن دیگری خواهد بود این #. 101 00:07:16,000 --> 00:07:20,000 این اساسا اختصاص فضا به این متغیر است. 102 00:07:20,000 --> 00:07:24,000 قرار دادن یک فضای در محتویات متغیر بلوک، 103 00:07:24,000 --> 00:07:29,000 اگر این وضعیت را ملاقات نمود، و در صورتی که شرایط آشنا نیست، 104 00:07:29,000 --> 00:07:32,000 سپس متغیر بلوک می شود #. 105 00:07:32,000 --> 00:07:37,000 و پس از آن، البته، به جای ایجاد یک رشته تمام 106 00:07:37,000 --> 00:07:43,000 چاپ و همه چیز در پایان این راه حل چاپ از یکی از شخصیت ها در یک زمان. 107 00:07:43,000 --> 00:07:48,000 خیلی باحال. 108 00:07:48,000 --> 00:07:53,000 >> یکی دیگر از زن و شوهر از چیزهایی که برای نگاه در. خواهیم در حرکت به حریص. 109 00:07:53,000 --> 00:07:58,000 حال اگر ما در حریص نگاه کنید، این راه حل اول 110 00:07:58,000 --> 00:08:00,000 استفاده از این # تعریف بسیار کمی است. 111 00:08:00,000 --> 00:08:06,000 ما باید یک ثابت تعریف شده برای هر یک از شماره های مختلف در این برنامه است. 112 00:08:06,000 --> 00:08:12,000 ما باید یکی برای سنت به ازای هر دلار، یک چهارم، dimes، نیکل و سکه 113 00:08:12,000 --> 00:08:15,000 و در حال حاضر اگر ما در پایین حرکت و خواندن کد، 114 00:08:15,000 --> 00:08:22,000 ما می توانیم یک استاندارد در حالی که حلقه همه چیز چاپ را ببینید. 115 00:08:22,000 --> 00:08:25,000 نوع اصل از این مشکل متوجه شد که 116 00:08:25,000 --> 00:08:29,000 شما نیاز به تبدیل شناور است که شما را از کاربر یک عدد صحیح 117 00:08:29,000 --> 00:08:32,000 به دقت ریاضی، انجام دهید، و دلیل این است که 118 00:08:32,000 --> 00:08:36,000 با اعداد اعشاری، مانند ما در مورد سخنرانی به طور خلاصه صحبت کردیم، 119 00:08:36,000 --> 00:08:41,000 این امکان وجود دارد به دقت نشان دادن هر مقدار در خط شماره 120 00:08:41,000 --> 00:08:47,000 به دلیل بی نهایت بسیاری از ارزش های بین 3 و، می گویند، 3.1 و حتی وجود دارد. 121 00:08:47,000 --> 00:08:54,000 شما می توانید 3.01 و 3.001 و 3.0001، و شما می توانید به رفتن. 122 00:08:54,000 --> 00:09:00,000 به نظر می رسد هر زمان که شما در حال کار کردن با پول، شما اغلب می خواهید آن را تبدیل 123 00:09:00,000 --> 00:09:05,000 را به فرمت عدد صحیح به طوری که شما سکه چیزی ندید و این نوع از مسائل از دست دادن نیست. 124 00:09:05,000 --> 00:09:09,000 انجام آن و گرد کردن کلیدی است. 125 00:09:09,000 --> 00:09:14,000 این راه حل با استفاده از الگوریتم کاملا سر راست است، بزرگ، 126 00:09:14,000 --> 00:09:17,000 که با decremented شماره از سنت باقی مانده، برای اولین بار توسط چهارم، 127 00:09:17,000 --> 00:09:19,000 سپس توسط dimes، سپس با نیکل، سپس با سکه، 128 00:09:19,000 --> 00:09:24,000 و اضافه کردن به تعدادی از سکه ها در هر زمان. 129 00:09:24,000 --> 00:09:31,000 >> یکی دیگر از راه حل است که خواهیم دید، که من زوم کردن و رفتن به نسخه 4، 130 00:09:31,000 --> 00:09:40,000 تا به حال یک شروع بسیار مشابه است، اما به جای آن استفاده از DIV و وزارت دفاع 131 00:09:40,000 --> 00:09:44,000 در اینجا برای محاسبه تعدادی از سنت است. 132 00:09:44,000 --> 00:09:50,000 این، تعدادی از چهارم به تعدادی از سنت تقسیم بر 25 برابر است، 133 00:09:50,000 --> 00:09:53,000 و دلیل این کار این است از آنجا که ما در حال انجام تقسیم عدد صحیح، 134 00:09:53,000 --> 00:09:58,000 پس از آن به دور هر گونه باقی مانده است. 135 00:09:58,000 --> 00:10:02,000 [دانشجو] آیا ما باید جستجو برای نظر دادن؟ 136 00:10:02,000 --> 00:10:05,000 این واقعا بستگی دارد. 137 00:10:05,000 --> 00:10:08,000 [دانشجو] شما در حال بیان دیدگاه بیش از کد اینجا ببینید. 138 00:10:08,000 --> 00:10:16,000 آره، و بنابراین فلسفه های مختلف در این دسته وجود دارد. 139 00:10:16,000 --> 00:10:21,000 فلسفه شخصی من این است که کد شما واقعا حقیقت، 140 00:10:21,000 --> 00:10:24,000 مثل کد شما همان چیزی است که در واقع بر روی کامپیوتر اجرا، 141 00:10:24,000 --> 00:10:29,000 و پس کد شما باید به عنوان قابل خواندن است که ممکن است به عنوان نظر بسیاری ضروری نیست. 142 00:10:29,000 --> 00:10:33,000 که گفت، زمانی که شما در حال انجام کارهایی هستند که نوع مشکل ریاضی 143 00:10:33,000 --> 00:10:38,000 یا الگوریتمی، خوب به نظر کسانی که به طوری که شما می توانید آن را 144 00:10:38,000 --> 00:10:43,000 اضافه کردن یک بعد اضافی، یک لایه اضافی به هر کسی که کد شما را بخواند. 145 00:10:43,000 --> 00:10:49,000 در این راه حل، اغلب آنها به نظر به شدت فقط به خاطر اینکه 146 00:10:49,000 --> 00:10:52,000 ما می خواهیم قادر به توزیع آنها را دارند و مردم آنها را انتخاب کنید تا 147 00:10:52,000 --> 00:10:56,000 و خیلی به راحتی آنها را بخوانند. 148 00:10:56,000 --> 00:11:05,000 اما قطعا، من موافق این است که سنگین است. 149 00:11:05,000 --> 00:11:07,000 [دانشجو] اما زمانی که در شک، سنگین تر؟ 150 00:11:07,000 --> 00:11:10,000 هنگامی که در شک، سنگین تر است. 151 00:11:10,000 --> 00:11:17,000 گاهی اوقات برخی از افراد خواهد شد 0 بازگشت و یا چیزی شبیه به آن می گویند. 152 00:11:17,000 --> 00:11:20,000 من فکر می کنم که یک نظر مضحک است. 153 00:11:20,000 --> 00:11:22,000 واضح است که چه چیزی اتفاق می افتد. 154 00:11:22,000 --> 00:11:25,000 من لازم نیست که به زبان انگلیسی به من بگویید که. 155 00:11:25,000 --> 00:11:28,000 گاهی اوقات افراد از مسائل مانند "kthxbai!" نوشتن 156 00:11:28,000 --> 00:11:32,000 این نوع از ناز، بلکه نه 157 00:11:32,000 --> 00:11:35,000 است که تفاوت بین نقاط اظهارنظر یا نه نیست. 158 00:11:35,000 --> 00:11:41,000 این نوع از نظرات فقط ولز، ولز. 159 00:11:41,000 --> 00:11:43,000 دانلود. 160 00:11:43,000 --> 00:11:48,000 >> در این نقطه، اجازه دهید شروع به کار بر روی این مشکل مجموعه 3 بخش از سوالات. 161 00:11:48,000 --> 00:11:52,000 اگر شما بچه ها را بکشد تا دوباره، 162 00:11:52,000 --> 00:11:55,000 هفته گذشته، ما در حال رفتن به تماشای شلوارک در این بخش است. 163 00:11:55,000 --> 00:12:00,000 ما شما بچه ها به شما اجازه انجام این کار را در زمان خود شما و صحبت کردن در مورد سوالات. 164 00:12:00,000 --> 00:12:05,000 اما در حال حاضر در این بخش ما قصد داریم به صرف زمان کمی بیشتر 165 00:12:05,000 --> 00:12:11,000 صحبت کردن در مورد کمتر از اصول برنامه نویسی 166 00:12:11,000 --> 00:12:15,000 مثل ما در هفته گذشته، و در عوض، ما در حال رفتن به تمرکز بیشتر در 167 00:12:15,000 --> 00:12:22,000 کمی بیشتر از این نظریه، بنابراین در مورد جستجوی دودویی صحبت و سپس مرتب سازی. 168 00:12:22,000 --> 00:12:27,000 از کسانی که از شما شده اند که همراه با سخنرانی، 169 00:12:27,000 --> 00:12:30,000 کسی می تونه به من یک روکش از آنچه را که تفاوت این است 170 00:12:30,000 --> 00:12:35,000 بین جستجوی دودویی و جست و جو خطی؟ 171 00:12:35,000 --> 00:12:37,000 چه خبر است؟ مطمئن شوید. 172 00:12:37,000 --> 00:12:42,000 جستجو جستجوی خطی را از طریق هر عنصر در لیست طبقه بندی شده اند 173 00:12:42,000 --> 00:12:45,000 یکی توسط یکی یک به یک به یک، 174 00:12:45,000 --> 00:12:50,000 و جستجوی دودویی تقسیم به 2 گروه، 175 00:12:50,000 --> 00:12:57,000 چک اگر مقدار کلید است که شما در حال جستجو برای بزرگتر یا کمتر از ارزش نقطه میانی 176 00:12:57,000 --> 00:13:00,000 که شما فقط در بر داشت، و اگر آن را کمتر از آن را با فهرست پایین تر می رود 177 00:13:00,000 --> 00:13:03,000 و پس از آن که دوباره تقسیم، آیا همان تابع 178 00:13:03,000 --> 00:13:07,000 تمام راه را تا زمانی که نقطه میانی می شود برابر با ارزش خود را می یابد. 179 00:13:07,000 --> 00:13:10,000 راست. 180 00:13:10,000 --> 00:13:12,000 >> چرا ما مهم است؟ 181 00:13:12,000 --> 00:13:20,000 چرا ما در مورد جستجوی دودویی در مقابل جستجوی خطی صحبت کنید؟ 182 00:13:20,000 --> 00:13:22,000 آره. 183 00:13:22,000 --> 00:13:24,000 دودویی است و خیلی سریع تر است، بنابراین اگر اندازه مشکل شما را دو برابر 184 00:13:24,000 --> 00:13:27,000 آن را طول می کشد یک گام دیگر به جای دو برابر بسیاری از. 185 00:13:27,000 --> 00:13:29,000 دقیقا. 186 00:13:29,000 --> 00:13:31,000 این یک پاسخ بزرگ است. 187 00:13:31,000 --> 00:13:36,000 جستجوی خطی بسیار چک کردن یک عنصر در یک زمان، 188 00:13:36,000 --> 00:13:39,000 و همانطور که ما در روز اول سخنرانی را دیدم 189 00:13:39,000 --> 00:13:42,000 وقتی داود رفت و از طریق تلفن کتاب به عنوان مثال خود را 190 00:13:42,000 --> 00:13:45,000 و پاره پاره کردن یک صفحه از دفترچه تلفن در یک زمان 191 00:13:45,000 --> 00:13:47,000 نگه داشته و انجام این کار بارها و بارها و بارها دوباره، 192 00:13:47,000 --> 00:13:51,000 آن را به او واقعا زمان طولانی برای پیدا کردن کسی را در دفترچه تلفن، 193 00:13:51,000 --> 00:13:55,000 ، مگر، البته، او برای کسی که به دنبال در آغاز از حروف الفبا. 194 00:13:55,000 --> 00:14:00,000 با استفاده از جستجوی دودویی، شما می توانید خیلی سریع تر، 195 00:14:00,000 --> 00:14:05,000 و آن را فقط دو بار به عنوان سریع و یا 3 بار یا 4 بار به عنوان سریع به عنوان سریع نیست. 196 00:14:05,000 --> 00:14:13,000 اما مشکل می شود کوچکتر و کوچکتر و کوچکتر خیلی سریعتر است. 197 00:14:13,000 --> 00:14:17,000 برای نشان دادن این کار، ما شروع به صحبت کردن در مورد آنچه اتفاق افتاده 198 00:14:17,000 --> 00:14:21,000 هنگامی که ما نوشتن جستجوی دودویی. 199 00:14:21,000 --> 00:14:27,000 مشکل در دست است که اگر من یک آرایه از اعداد، 200 00:14:27,000 --> 00:14:40,000 می گویند، 1، 2، 3، 5، 7، 23، 45، 78، 12،323، 201 00:14:40,000 --> 00:14:47,000 و پس از آن با یک تن از 0s و 9 پس از آن، 202 00:14:47,000 --> 00:14:52,000 ما می خواهیم قادر به کشف کردن واقعا به سرعت چیزی است که در 203 00:14:52,000 --> 00:14:57,000 این مجموعه ای از اعداد است. 204 00:14:57,000 --> 00:15:00,000 من می دانم که این کمی احمقانه به نظر می رسد و کمی ساختگی، 205 00:15:00,000 --> 00:15:02,000 چون در حال حاضر در آن است. 206 00:15:02,000 --> 00:15:05,000 ما یک آرایه است که از عناصر بسیار زیادی در آن ندارد، 207 00:15:05,000 --> 00:15:08,000 و اگر بخواهید یکی از شما را به کشف کردن اینکه آیا یا نه 208 00:15:08,000 --> 00:15:11,000 23 در آرایه، شما می توانید انجام دهید که خیلی سریع 209 00:15:11,000 --> 00:15:16,000 فقط با یک نظر اجمالی در این و به من گفتن بله یا نه. 210 00:15:16,000 --> 00:15:20,000 آنالوگ به نظر تصور کنید اگر این بودند، می گویند، 211 00:15:20,000 --> 00:15:27,000 صفحه گسترده اکسل با 10،000 ردیف، 20،000 ردیف. 212 00:15:27,000 --> 00:15:31,000 البته، شما می توانید فرمان F یا F کنترل و نگاه چیزی را. 213 00:15:31,000 --> 00:15:33,000 شما همچنین می توانید از فیلتر و مسائل جستجو استفاده کنید. 214 00:15:33,000 --> 00:15:37,000 اما اگر شما تا به حال به فایل از طریق خط که خط به خط، 215 00:15:37,000 --> 00:15:40,000 آن را به شما مدت زمان طولانی برای پیدا کردن آن. 216 00:15:40,000 --> 00:15:42,000 این نوع مانند در مثال تلفن، بیش از حد، که در آن 217 00:15:42,000 --> 00:15:44,000 هیچ کس به نظر می رسد را از طریق یک تلفن صفحه یک کتاب در یک زمان. 218 00:15:44,000 --> 00:15:47,000 به طور معمول، آنها را به وسط آن را باز کنید، 219 00:15:47,000 --> 00:15:50,000 و یا در مورد بسیاری از دفترچه تلفن و لغت نامه 220 00:15:50,000 --> 00:15:54,000 شما در واقع آن را در نامه اول کوک، 221 00:15:54,000 --> 00:16:01,000 شما که حرف اول تلنگر و باز و شروع به رفتن را از طریق وجود دارد. 222 00:16:01,000 --> 00:16:03,000 >> به یاد من نام خود را دوباره. >> سام. 223 00:16:03,000 --> 00:16:05,000 سام. 224 00:16:05,000 --> 00:16:11,000 مانند سام گفت که فرایند جستجو خطی خواهد بود واقعا آرام، 225 00:16:11,000 --> 00:16:15,000 و در عوض با جستجوی دودویی، راه این کار این است که 226 00:16:15,000 --> 00:16:21,000 هر زمان که ما از طریق تکرار از الگوریتم ما جستجو 227 00:16:21,000 --> 00:16:27,000 ما قصد داریم به تقسیم لیست در نیم، در اصل، 228 00:16:27,000 --> 00:16:33,000 به دو لیست کوچکتر است. 229 00:16:33,000 --> 00:16:39,000 و سپس در تکرار بعدی حلقه، خواهیم دوباره آن را تقسیم 230 00:16:39,000 --> 00:16:44,000 به لیست های دیگر کوچکتر است. 231 00:16:44,000 --> 00:16:48,000 همانطور که می بینید، مشکل را نگه می دارد در حال کوچکتر شدن و کوچکتر 232 00:16:48,000 --> 00:16:55,000 از آنجا که ما در حفظ و 1/2 دور از لیست هر بار تنها. 233 00:16:55,000 --> 00:16:59,000 چگونه این کار دور است؟ 234 00:16:59,000 --> 00:17:05,000 فقط به عنوان یک یادآوری، چیزی است که ما قصد داریم برای انجام این کار، اگر ما یک کامپیوتر 235 00:17:05,000 --> 00:17:11,000 و ما، می گویند، جستجو برای شماره 5 در این لیست 236 00:17:11,000 --> 00:17:15,000 این است که ما می خواهیم یک عدد در وسط را انتخاب کنید. 237 00:17:15,000 --> 00:17:26,000 در وسط این لیست، زیرا 1، 2، 3، 4، 5، 6، 7، 8، 9، 10 عدد وجود دارد، 238 00:17:26,000 --> 00:17:32,000 ما می خواهم شماره انتخاب کنید یا در موقعیت 4 و یا در موقعیت 5، 239 00:17:32,000 --> 00:17:38,000 و ما می خواهم که وسط لیست ما تماس بگیرید. 240 00:17:38,000 --> 00:17:42,000 انتخاب شماره در وسط. 241 00:17:42,000 --> 00:17:51,000 سپس، درست مثل سام گفت، خواهیم تست کنید در صورتی که تعداد برابر است با 242 00:17:51,000 --> 00:17:59,000 به شماره ای که ما می خواهیم و یا شماره مورد نظر ما است. 243 00:17:59,000 --> 00:18:06,000 اگر آن برابر است، و سپس ما آن را در بر داشت. ما پیروز شود. 244 00:18:06,000 --> 00:18:12,000 اگر آن برابر نیست، پس از آن زن و شوهر از موارد وجود دارد. 245 00:18:12,000 --> 00:18:15,000 دو مورد یا تعداد بیشتر از تعدادی است که ما در حال نگاه کردن به، 246 00:18:15,000 --> 00:18:19,000 یا آن را کمتر از است. 247 00:18:19,000 --> 00:18:25,000 اگر آن را بیشتر، ما را به سمت راست حرکت می کند. 248 00:18:25,000 --> 00:18:33,000 و اگر آن را کمتر، ما را به سمت چپ حرکت می کند. 249 00:18:33,000 --> 00:18:41,000 و پس از آن کل فرایند را تکرار 250 00:18:41,000 --> 00:18:48,000 در هر دو نیمه راست یا نیمه چپ از لیست. 251 00:18:48,000 --> 00:18:51,000 >> مشکل اول در بخش امروز است، به شکل 252 00:18:51,000 --> 00:18:55,000 ما در واقع می تواند به بیان این کد C شروع می شود. 253 00:18:55,000 --> 00:18:58,000 ما رو شبه به اینجا. 254 00:18:58,000 --> 00:19:04,000 چه خواهیم شروع به انجام این کار است که من جلو و یک نام تجاری جدید فضا، 255 00:19:04,000 --> 00:19:09,000 صرفه جویی در این نسخه به طوری که در حال حاضر این یادداشت ها را برای بعد، 256 00:19:09,000 --> 00:19:20,000 خواهیم این کار، حذف و پس از آن از مجموعه مشکل کپی و چسباندن 257 00:19:20,000 --> 00:19:26,000 این اطلاعات را به فضای ما، و امیدوارم این بدان شکستن نیست. 258 00:19:26,000 --> 00:19:28,000 کامل. 259 00:19:28,000 --> 00:19:33,000 اگر شما بچه ها همه انجام این کار، کپی و چسباندن این کد را در فضای جدید خود را، 260 00:19:33,000 --> 00:19:43,000 به یک خالی است. 261 00:19:43,000 --> 00:19:47,000 بیایید دانیل. اگر شما کامپایل و اجرای این برنامه، کار می کند؟ 262 00:19:47,000 --> 00:19:49,000 >> شماره آن چه گفت؟ 263 00:19:49,000 --> 00:19:53,000 این گزارش می گوید کنترل به پایان تابع غیر از درجه اعتبار ساقط می رسد. 264 00:19:53,000 --> 00:19:55,000 آره، پس من را اجرا کنید آن بگذارید. 265 00:19:55,000 --> 00:19:59,000 شما بچه ها دیده می شود پیش از این؟ آیا شما می دانید چه این بدان معنی است؟ 266 00:19:59,000 --> 00:20:01,000 خوب، اجازه دهید تشریح این بیت کمی. 267 00:20:01,000 --> 00:20:10,000 این گفت: در file.c در خط 9، ستون 1 خطا، درست مثل شما گفت، 268 00:20:10,000 --> 00:20:16,000 و آن را می گوید که آن را ناشی از هشدار خطا و هشدار دهنده نوع بازگشت است. 269 00:20:16,000 --> 00:20:18,000 به نظر می رسد چیزی در جریان است با نوع بازگشت، که حس می کند. 270 00:20:18,000 --> 00:20:21,000 ما باید یک تابع غیر از درجه اعتبار ساقط است، که بدان معنی است که ما باید یک تابع 271 00:20:21,000 --> 00:20:24,000 که نمی تواند خالی بر نمی گرداند. 272 00:20:24,000 --> 00:20:27,000 یک تابع از درجه اعتبار ساقط است که به نظر می رسد، مثل این: 273 00:20:27,000 --> 00:20:35,000 از درجه اعتبار ساقط صنایع غذایی ()، و آن را از درجه اعتبار ساقط چون نوع بازگشت از درجه اعتبار ساقط است، 274 00:20:35,000 --> 00:20:38,000 به این معنی که اگر ما چیزی در اینجا 275 00:20:38,000 --> 00:20:45,000 مانند بازگشت 1، ما می خواهم یک خطای کامپایلر برای این. 276 00:20:45,000 --> 00:20:49,000 با این حال، ما باید یک تابع غیر از درجه اعتبار ساقط است. 277 00:20:49,000 --> 00:20:51,000 غیر از درجه اعتبار ساقط عملکرد ما در این مورد عملکرد ما جستجو 278 00:20:51,000 --> 00:20:56,000 به دلیل آن است نوع بازگشت بولی. 279 00:20:56,000 --> 00:20:59,000 هنگامی که آن را گفت که کنترل به پایان می رسد از یک تابع غیر از درجه اعتبار ساقط است، 280 00:20:59,000 --> 00:21:02,000 این دلیل است که جستجو می کند بیانیه ای بازگشت ندارد. 281 00:21:02,000 --> 00:21:04,000 هر چیزی از نوع بولی بازگشت نیست. 282 00:21:04,000 --> 00:21:09,000 >> ما می توانیم آن، تعمیر و چه شما بچه ها فکر می کنم 283 00:21:09,000 --> 00:21:13,000 جستجو باید به طور پیش فرض باز گردم؟ 284 00:21:13,000 --> 00:21:16,000 چه باید مقدار بازگشتی پیش فرض از جستجو؟ 285 00:21:16,000 --> 00:21:19,000 از آنجا که این چیزی است که ما می توانیم در پایان قرار داده است. 286 00:21:19,000 --> 00:21:21,000 شارلوت، آیا شما هر؟ 287 00:21:21,000 --> 00:21:23,000 درست یا غلط؟ >> درست یا غلط است. 288 00:21:23,000 --> 00:21:26,000 کدام یک؟ 289 00:21:26,000 --> 00:21:28,000 غلط است. نمی دانم. 290 00:21:28,000 --> 00:21:30,000 غلط؟ بیایید آن را امتحان کنید. 291 00:21:30,000 --> 00:21:32,000 چرا به شما می گویند بازگشت غلط؟ که شهود بزرگ است. 292 00:21:32,000 --> 00:21:35,000 [شارلوت] من نمی دانم. 293 00:21:35,000 --> 00:21:39,000 ما قصد داریم برای بازگشت به اشتباه در این مورد به دلیل این خواهد بود که به طور پیش فرض ما 294 00:21:39,000 --> 00:21:44,000 اگر به هر دلیلی این لیست خالی است و یا سوزن 295 00:21:44,000 --> 00:21:46,000 که ما به دنبال آن هستید وجود ندارد. 296 00:21:46,000 --> 00:21:50,000 سپس در پایان، اگر ما انجام نمی گرداند درست قبل از آن در این تابع، 297 00:21:50,000 --> 00:21:55,000 ما همیشه می دانیم که این تابع می گویند نه، آن را در آرایه نیست. 298 00:21:55,000 --> 00:21:58,000 آن را در انبار کاه نیست. 299 00:21:58,000 --> 00:22:03,000 حالا اگر ما را تدوین و آن را اجرا کنید اجازه دهید این نجات بده، بنابراین ما می توانیم آن را به بالا بکشد. 300 00:22:03,000 --> 00:22:08,000 در حال حاضر اگر ما کامپایل و اجرای برنامه، آن را می سازد. 301 00:22:08,000 --> 00:22:12,000 ما دریافت سریع کوچک ما. 302 00:22:12,000 --> 00:22:20,000 اگر من ضربه 4-UH-آه. 303 00:22:20,000 --> 00:22:25,000 آیا این نسخه قابل چاپ نیست از هر چیزی. به نظر می رسد همه چیز به پایان رسید درست است. 304 00:22:25,000 --> 00:22:35,000 ما باید برای پر کردن این سایت شوید. 305 00:22:35,000 --> 00:22:39,000 ما در مورد این الگوریتم در شبه به صحبت کمی پیش. 306 00:22:39,000 --> 00:22:44,000 اجازه دهید به من مراجعه کنید، صرفه جویی در، 307 00:22:44,000 --> 00:22:49,000 و من که الگوریتم بالا بکشد دوباره. 308 00:22:49,000 --> 00:22:51,000 بیایید ضربه این پسر. نه. 309 00:22:51,000 --> 00:22:58,000 آن است که وجود دارد. 310 00:22:58,000 --> 00:23:03,000 چگونه این کار را انجام دهید؟ 311 00:23:03,000 --> 00:23:11,000 یک استراتژی خوب برای شروع کردن این کد چه خواهد بود؟ 312 00:23:11,000 --> 00:23:16,000 شما باید برای انتخاب یک شماره در وسط. 313 00:23:16,000 --> 00:23:23,000 چگونه می توانم یک عدد را انتخاب کنید در وسط یک آرایه؟ 314 00:23:23,000 --> 00:23:25,000 هر گونه پیشنهادات؟ 315 00:23:25,000 --> 00:23:27,000 [دانشجو] Strlen تقسیم بر 2. 316 00:23:27,000 --> 00:23:32,000 Strlen تقسیم بر 2. این یکی از بزرگ است. 317 00:23:32,000 --> 00:23:35,000 Strlen با این نسخهها کار با انواع خاصی از آرایه. 318 00:23:35,000 --> 00:23:38,000 چه نوع آرایه؟ 319 00:23:38,000 --> 00:23:44,000 آرایه رشته ها، آرایه های شخصیت. 320 00:23:44,000 --> 00:23:48,000 این که مرتب سازی بر اساس همان مفهوم است که ما می خواهیم به درخواست، 321 00:23:48,000 --> 00:23:52,000 اما ما می توانیم strlen استفاده نیست چرا که ما مجموعه ای از کاراکتر ها را ندارد. 322 00:23:52,000 --> 00:23:55,000 ما یک آرایه از نوع داده int است. 323 00:23:55,000 --> 00:23:58,000 اما چه strlen برای ما؟ 324 00:23:58,000 --> 00:24:01,000 آیا شما می دانید آنچه در آن برای ما می شود؟ 325 00:24:01,000 --> 00:24:03,000 [دانشجو] Strlen می شود تماس با ما طول. 326 00:24:03,000 --> 00:24:05,000 دقیقا، آن را می شود با ما طول. 327 00:24:05,000 --> 00:24:09,000 Strlen می شود طول آرایه برای ما. 328 00:24:09,000 --> 00:24:14,000 >> چگونه است که ما در برنامه ما جستجو دودویی؟ 329 00:24:14,000 --> 00:24:18,000 چگونه طول یک آرایه را دریافت می کنید؟ 330 00:24:18,000 --> 00:24:20,000 [دانشجو] Strlen؟ 331 00:24:20,000 --> 00:24:25,000 شما می توانید طول یک آرایه رشته ای به درستی فرمت شده C با strlen دریافت کنید. 332 00:24:25,000 --> 00:24:31,000 این مشکل، این است که ما می توانم در یک آرایه رشته ای ندارد. 333 00:24:31,000 --> 00:24:36,000 اگر ما نگاهی به این کد، ما باید این آرایه عدد صحیح است. 334 00:24:36,000 --> 00:24:38,000 چگونه ما می دانیم که چه مدت آن است؟ 335 00:24:38,000 --> 00:24:44,000 [دانشجو] یک معادل برای نقطه پایانی، مانند L نوع int و یا چیزی وجود دارد؟ 336 00:24:44,000 --> 00:24:49,000 به نظر می رسد در واقع وجود ندارد، و بنابراین در یک راه، این است که 337 00:24:49,000 --> 00:24:52,000 یکی از آن چیزهایی است که فقط خوبی در مورد C، 338 00:24:52,000 --> 00:24:57,000 است که هیچ راهی برای به دست آوردن طول یک آرایه وجود دارد 339 00:24:57,000 --> 00:24:59,000 اگر تمام من به تو آرایه است. 340 00:24:59,000 --> 00:25:02,000 دلیل آن را با رشته ها کار می کند، به همین دلیل strlen با این نسخهها کار، 341 00:25:02,000 --> 00:25:06,000 چرا که اگر یک رشته به درستی فرمت شده، 342 00:25:06,000 --> 00:25:12,000 آن خواهد شد که ویژه \ 0 کاراکتر در پایان داشته باشد. 343 00:25:12,000 --> 00:25:16,000 >> شما همچنین می توانید تصور کنید اگر شما یک رشته نادرست فرمت شده 344 00:25:16,000 --> 00:25:20,000 و هیچ \ 0 کاراکتر وجود دارد، و سپس همه چیز کار نمی کند. 345 00:25:20,000 --> 00:25:22,000 [دانشجو] آیا می توانم \ 0 اضافه کنید؟ 346 00:25:22,000 --> 00:25:24,000 ما می توانیم در این مورد. 347 00:25:24,000 --> 00:25:29,000 ما می تواند برخی از مرتب کردن بر اساس \ 0 348 00:25:29,000 --> 00:25:33,000 و یا برخی از مرتب کردن بر اساس دلالت شخصیت و سپس به استفاده از آن. 349 00:25:33,000 --> 00:25:36,000 اما این کاملا به کار 350 00:25:36,000 --> 00:25:40,000 به این دلیل که 0 \ یک نوع کاراکتر، 351 00:25:40,000 --> 00:25:43,000 و در اینجا ما باید نوع داده int است. 352 00:25:43,000 --> 00:25:46,000 نکته دیگر این است که اگر ما به استفاده از یک مقدار خاص 353 00:25:46,000 --> 00:25:49,000 مانند -1 به علامت پایان یک آرایه 354 00:25:49,000 --> 00:25:54,000 پس از آن ما می توانیم -1 در آرایه صحیح ما را ذخیره نکرده است. 355 00:25:54,000 --> 00:25:56,000 ما گیر می شود. 356 00:25:56,000 --> 00:26:00,000 به نظر می رسد که تنها راه برای دریافت نمایید 357 00:26:00,000 --> 00:26:03,000 آرایه در C است که در واقع آن را به یاد داشته باشید 358 00:26:03,000 --> 00:26:08,000 هنگامی که شما آن را راه اندازی و سپس آن عبور کند در اطراف با آرایه 359 00:26:08,000 --> 00:26:14,000 به طوری که هر زمان که من یک تابع است که به انجام این کار 360 00:26:14,000 --> 00:26:18,000 در یک آرایه از اعداد صحیح یا شناور و یا دو برابر و یا آنچه که شما، 361 00:26:18,000 --> 00:26:22,000 من هم نیاز به طول آرایه به تابع، 362 00:26:22,000 --> 00:26:26,000 و این دقیقا همان چیزی است که ما انجام داده ایم، در اینجا در تابع جستجو انجام می شود. 363 00:26:26,000 --> 00:26:30,000 اگر شما نگاه کنید، آنچه که ما انجام داده ایم هنگامی که ما در آرایه ما می گذرد، 364 00:26:30,000 --> 00:26:36,000 ما همچنین در طول، اندازه منتقل می کند. 365 00:26:36,000 --> 00:26:41,000 این فقط اتفاق می افتد که ما به نام این متغیر در اینجا، 366 00:26:41,000 --> 00:26:43,000 این پارامتر و یا آرگومان. 367 00:26:43,000 --> 00:26:46,000 این لیست آرگومان یک تابع یا لیست پارامتر نامیده می شود، 368 00:26:46,000 --> 00:26:51,000 و این استدلال نیز نامیده می شود و یا پارامتر است. 369 00:26:51,000 --> 00:26:53,000 مردم از قوانین و مقررات مختلف در زمان های مختلف است. 370 00:26:53,000 --> 00:26:55,000 من آنها را خودم گاهی اوقات تغییر. 371 00:26:55,000 --> 00:27:00,000 این فقط اتفاق می افتد که این متغیر در اینجا به نام به همین ترتیب 372 00:27:00,000 --> 00:27:03,000 به این # تعریف در اینجا. 373 00:27:03,000 --> 00:27:06,000 اما آنها یک چیز مشابه نیستند. 374 00:27:06,000 --> 00:27:11,000 سرمایه مهم است. 375 00:27:11,000 --> 00:27:14,000 >> اگر شما به آنچه که اتفاق می افتد در اینجا نگاه کنید، ما اعلام می کنیم 376 00:27:14,000 --> 00:27:18,000 آرایه از نوع int ما، که ما آن را به نام اعداد. 377 00:27:18,000 --> 00:27:23,000 ما با توجه به حجم ما، که مربوط به ما # تعریف در بالا. 378 00:27:23,000 --> 00:27:27,000 رفتن به تا 8. 379 00:27:27,000 --> 00:27:35,000 و پس از آن زمانی که ما پس از آن عملکرد ما جستجو تماس زیر، 380 00:27:35,000 --> 00:27:40,000 ما در شماره منتقل می شود ما می خواهیم را برای جستجو، که ما را وادار کرده ام، 381 00:27:40,000 --> 00:27:43,000 بدست آمده از کاربر است. 382 00:27:43,000 --> 00:27:46,000 ما در آرایه منتقل می کند، این تعداد، 383 00:27:46,000 --> 00:27:51,000 و پس از آن نیز باید به تصویب در اندازه آرایه، 384 00:27:51,000 --> 00:27:57,000 و پس از آن مقدار از اندازه 8 می شود ذخیره می شود 385 00:27:57,000 --> 00:28:01,000 و یا به این اندازه متغیر عدد صحیح نامیده می شود منتقل می شود. 386 00:28:01,000 --> 00:28:08,000 ما باید اندازه آرایه است. 387 00:28:08,000 --> 00:28:11,000 حال اگر ما به بازگشت به آنچه که ما در مورد قبل از آن صحبت می کردند، 388 00:28:11,000 --> 00:28:14,000 من فکر می کنم دختر خانم به ارمغان آورد تا نقطه ای که آنچه که ما نیاز به انجام این است که طول آرایه 389 00:28:14,000 --> 00:28:20,000 و آن را تقسیم به 2 و که ما را از نقطه میانی است. 390 00:28:20,000 --> 00:28:22,000 اجازه دهید را ببینید. 391 00:28:22,000 --> 00:28:25,000 آیا من می توانم از کسی نوشتن و ذخیره آن را در فضای خود را؟ 392 00:28:25,000 --> 00:28:27,000 چگونه در مورد لیلا؟ 393 00:28:27,000 --> 00:28:31,000 آیا من می توانم این نوشتن به شما را؟ 394 00:28:31,000 --> 00:28:35,000 ارسال خط اول که در آن طول آرایه را می گیرد و از نقطه میانی 395 00:28:35,000 --> 00:28:41,000 و آن را در یک متغیر جدید ذخیره. 396 00:28:41,000 --> 00:28:44,000 من شما را دو ثانیه به من بدهید. آیا شما آماده هستید؟ 397 00:28:44,000 --> 00:28:46,000 [نامفهوم دانشجویی] 398 00:28:46,000 --> 00:28:50,000 مطمئنا، می تواند شما را به من محاسبه نقطه میانی 399 00:28:50,000 --> 00:28:55,000 از آرایه کومه علف خشک در داخل تابع جستجو 400 00:28:55,000 --> 00:29:03,000 با استفاده از طول آرایه کومه علف خشک، که متغیر اندازه است؟ 401 00:29:03,000 --> 00:29:08,000 هیچ چیز مشکل در اینجا است. 402 00:29:08,000 --> 00:29:12,000 [لیلا] فقط اندازه 2 / و فقط 403 00:29:12,000 --> 00:29:17,000 و آن را ذخیره کنید، و دکمه ذخیره در بالای صفحه، 404 00:29:17,000 --> 00:29:19,000 و ما آن را به بالا بکشید. 405 00:29:19,000 --> 00:29:22,000 کامل. 406 00:29:22,000 --> 00:29:28,000 وجود دارد بروید. عالی است. 407 00:29:28,000 --> 00:29:30,000 >> به عنوان است، به این کامپایل؟ 408 00:29:30,000 --> 00:29:32,000 [لیلا] نه، به آن نیاز دارد بیشتر است. 409 00:29:32,000 --> 00:29:34,000 [مقابله] آره، پس چه کار باید انجام دهیم؟ 410 00:29:34,000 --> 00:29:36,000 [لیلا] مثل نقطه میانی از نوع int و یا چیزی است. 411 00:29:36,000 --> 00:29:41,000 عالی است. آره، اجازه دهید که، هوشمند نقطه میانی = اندازه. 412 00:29:41,000 --> 00:29:44,000 آیا این کامپایل؟ 413 00:29:44,000 --> 00:29:47,000 بیایید حذف این نظر و دریافت آن از راه. 414 00:29:47,000 --> 00:29:50,000 نه آنچه که تدوین در این مورد؟ 415 00:29:50,000 --> 00:29:52,000 ما هر چیزی را با عدد صحیح انجام نمی دهند، 416 00:29:52,000 --> 00:29:55,000 بنابراین ما نیاز به آن را چاپ کنید و یا چیزی شبیه به آن است. 417 00:29:55,000 --> 00:29:58,000 بله، دقیقا. 418 00:29:58,000 --> 00:30:00,000 ما می خواهیم یک متغیر استفاده نشده. 419 00:30:00,000 --> 00:30:02,000 چه چیز دیگری است که قصد ندارم در این مورد کار می کنند؟ 420 00:30:02,000 --> 00:30:06,000 من فکر می کنم شما گفت: چیزی، سام. سمیکالن. 421 00:30:06,000 --> 00:30:08,000 آره، من گم شده آن سمی کالن. 422 00:30:08,000 --> 00:30:14,000 این رفتن به یک چیز ثابت در طول دوره از این واژه است. 423 00:30:14,000 --> 00:30:17,000 چیزی نهایی من این است که من برخی از فضای سفید در دو طرف قرار داده است 424 00:30:17,000 --> 00:30:23,000 از این عملگر در اینجا، از آنجا که به طور معمول که ما چگونه آن را انجام دهید 425 00:30:23,000 --> 00:30:26,000 با توجه به راهنمای سبک ما. 426 00:30:26,000 --> 00:30:29,000 ما باید نقطه میانی از آرایه. 427 00:30:29,000 --> 00:30:32,000 حال اگر به یاد داشته باشید برگشت به الگوریتم ما 428 00:30:32,000 --> 00:30:37,000 مرحله دوم که ما تا به حال برای انجام این کار زمانی که ما به نقطه میانی چه بود؟ 429 00:30:37,000 --> 00:30:42,000 [دانشجو] اگر آن را بیشتر [نامفهوم]. 430 00:30:42,000 --> 00:30:48,000 آره، بنابراین ما باید برای انجام برخی از مرتب سازی بر مقایسه است، و آنچه که ما در مقایسه با اینجا؟ 431 00:30:48,000 --> 00:30:53,000 به شما گفت که اگر آن را بزرگتر از. آن را که در آن حکم با اشاره به چیست؟ 432 00:30:53,000 --> 00:30:57,000 شماره می آید که، در صورتی که بیشتر از نقطه میانی، پس از آن تا به آرایه؟ 433 00:30:57,000 --> 00:31:05,000 دقیقا، به طوری که شماره می آید که تا زمانی که ما 434 00:31:05,000 --> 00:31:10,000 سوزن، بنابراین ما نسبت به سوزن، 435 00:31:10,000 --> 00:31:12,000 چه هستند که ما در مقابل سوزن نسبت؟ 436 00:31:12,000 --> 00:31:15,000 از آنجا که سوزن آن چیزی است که ما به دنبال آن هستید. 437 00:31:15,000 --> 00:31:18,000 ما آن را نسبت به رسیدن به نقطه میانی است. 438 00:31:18,000 --> 00:31:21,000 >> اما معنی آن را چک کنید 439 00:31:21,000 --> 00:31:27,000 اگر سوزن نقطه میانی =؟ 440 00:31:27,000 --> 00:31:32,000 آیا این را حس؟ 441 00:31:32,000 --> 00:31:35,000 آیا کسی مخالف؟ 442 00:31:35,000 --> 00:31:40,000 بیایید آن را امتحان کنید، اگر (سوزن نقطه میانی ==). 443 00:31:40,000 --> 00:31:42,000 [دانشجو] آیا printf شما آن را در بر داشت. 444 00:31:42,000 --> 00:31:51,000 [مقابله] Printf ("ما آن را در بر داشت \ N!")؛ 445 00:31:51,000 --> 00:31:56,000 در غیر این صورت، I'm رفتن به شروع به انجام کاری مختلف در اینجا. 446 00:31:56,000 --> 00:32:00,000 من قصد دارم برای شروع به قرار دادن پرانتز در اطراف اگر اظهارات در همه زمان ها 447 00:32:00,000 --> 00:32:05,000 فقط به خاطر اینکه اگر چیزهای بیشتری است، پس از آن ما اضافه کنید 448 00:32:05,000 --> 00:32:07,000 ما کامپایلرها می کنید. 449 00:32:07,000 --> 00:32:09,000 آره، سام. شما باید یک نقطه. 450 00:32:09,000 --> 00:32:12,000 مشکل این است که نقطه میانی نشان دهنده موقعیت در آرایه، 451 00:32:12,000 --> 00:32:15,000 اما شما می توانید آن را ارزش در آن موقعیت از آرایه به نمایندگی از. 452 00:32:15,000 --> 00:32:17,000 این یک نقطه بزرگ است. 453 00:32:17,000 --> 00:32:19,000 آیا همه شنیدن آنچه که سام گفت؟ 454 00:32:19,000 --> 00:32:22,000 او گفت که به عنوان نقطه میانی است 455 00:32:22,000 --> 00:32:28,000 نشان دهنده تنها یک موقعیت در آرایه است، اما این عنصر واقعی در آرایه نیست. 456 00:32:28,000 --> 00:32:30,000 اگر شما فکر می کنم در مورد کد نوشته شده در حال حاضر، 457 00:32:30,000 --> 00:32:35,000 اگر ما در این آرایه نگاه کردن، که دارای 8 عنصر در آن، 458 00:32:35,000 --> 00:32:39,000 چه مقدار از نقطه میانی در این تابع وجود دارد؟ 459 00:32:39,000 --> 00:32:41,000 [دانشجو] 4. 460 00:32:41,000 --> 00:32:45,000 [مقابله] 4. 461 00:32:45,000 --> 00:32:51,000 اگر ما شماره 4 نگاه کنید - 462 00:32:51,000 --> 00:32:54,000 و ما فقط می توانید از این کد و اجرای قرار دادن یک چهره کمی غمگین در اینجا 463 00:32:54,000 --> 00:32:58,000 از آنجا که ما را پیدا کند آن را اگر ما برای اجرای این کد 464 00:32:58,000 --> 00:33:04,000 مناسب است در حال حاضر، آپلود، ساختمان، اجازه دهید من در پایین حرکت کنید، 465 00:33:04,000 --> 00:33:09,000 و اگر ما برای شماره 4 نگاه کنید، 466 00:33:09,000 --> 00:33:18,000 ما آن را در بر داشت، اما ما این به printf بله دریافت نمی. 467 00:33:18,000 --> 00:33:23,000 یکی از دلایل این است که ما درست نمی گرداند، 468 00:33:23,000 --> 00:33:26,000 اما آیا ما واقعا عدد 4 را پیدا کنم؟ 469 00:33:26,000 --> 00:33:28,000 و سام گفت: هیچ. 470 00:33:28,000 --> 00:33:31,000 چی پیدا می کنیم؟ 471 00:33:31,000 --> 00:33:35,000 ما واقعا در بر داشت از نقطه میانی، که اگر ما در آرایه نگاه کردن، 472 00:33:35,000 --> 00:33:38,000 آن را برای رفتن به این عنصر در اول 4 است که ما به دنبال آن هستید، 473 00:33:38,000 --> 00:33:42,000 که در آن 23 میباشد. 474 00:33:42,000 --> 00:33:46,000 >> چگونه ما در واقع این عنصر در نقطه میانی 475 00:33:46,000 --> 00:33:48,000 و فقط از نقطه میانی خود نیست؟ 476 00:33:48,000 --> 00:33:52,000 [دانشجو] کاراکتر ما وارد و یا چیزی؟ 477 00:33:52,000 --> 00:33:55,000 چه را که انجام دهید، فقط از روی کنجکاوی. 478 00:33:55,000 --> 00:33:57,000 آیا می توانم یک کمی توضیح بدهید؟ 479 00:33:57,000 --> 00:34:02,000 شما باید برای تبدیل موقعیت به تعداد، 480 00:34:02,000 --> 00:34:05,000 فرض کنید که شما را به برخی از اتصال من فکر می کنم آن را به کاراکتر است، اما آن را نمی ممکن است. 481 00:34:05,000 --> 00:34:07,000 آره، که یک نقطه خوب است. 482 00:34:07,000 --> 00:34:12,000 ما انجام شده است بسیاری از این موقعیت تبدیل به کاراکتر این شخصیت، 483 00:34:12,000 --> 00:34:14,000 در دو مجموعه مشکل است. 484 00:34:14,000 --> 00:34:18,000 به نظر می رسد که در اینجا، این است که تقریبا شبیه به 485 00:34:18,000 --> 00:34:24,000 دسترسی به شخصیت i ام در یک رشته، اگر آن را حس می کند. 486 00:34:24,000 --> 00:34:30,000 در اینجا ما می خواهیم برای دسترسی به عنصر نقطه میانی است. 487 00:34:30,000 --> 00:34:34,000 ما چگونه انجام این کار؟ 488 00:34:34,000 --> 00:34:39,000 کوین، هر گونه پیشنهاد ما ممکن است انجام این کار را دارید؟ 489 00:34:39,000 --> 00:34:44,000 شما به کاهدان می تواند انجام، براکت باز، متوسط، بسته براکت. 490 00:34:44,000 --> 00:34:46,000 که تو می نویسم برای ما؟ 491 00:34:46,000 --> 00:34:51,000 ذخیره کردن آن را در اینجا، و ما که تا بکشد. 492 00:34:51,000 --> 00:34:56,000 ما به دنبال این خط 9، 493 00:34:56,000 --> 00:34:59,000 و ما در حال تحقق است که ما نمی خواهیم سوزن را نسبت به نقطه میانی، 494 00:34:59,000 --> 00:35:03,000 اما در عوض، ما می خواهیم به مقایسه سوزن 495 00:35:03,000 --> 00:35:07,000 به عنصر در نقطه میانی موقعیت در آرایه کاهدان ما است. 496 00:35:07,000 --> 00:35:10,000 دانلود. 497 00:35:10,000 --> 00:35:12,000 وجود دارد بروید. 498 00:35:12,000 --> 00:35:15,000 بله، به نظر می رسد که بسیار خوب است، اگر (سوزن == کاهدان [نقطه میانی]). 499 00:35:15,000 --> 00:35:18,000 ما آن را در بر داشت. 500 00:35:18,000 --> 00:35:22,000 حالا اگر ما اجرا پشت کد we'll تا کمی 501 00:35:22,000 --> 00:35:26,000 آن را کامپایل، اجرا می شود، و در حال حاضر اگر ما به مدت 4 نگاه کنید. 502 00:35:26,000 --> 00:35:30,000 ما آن را پیدا نمی کند چرا که در حال حاضر ما در حال گرفتن شماره 23. 503 00:35:30,000 --> 00:35:33,000 ما در حال رسیدن به ارزش 23، و این چیزی است که ما نسبت به سوزن ما. 504 00:35:33,000 --> 00:35:35,000 اما این خوب است. این یک گام در مسیر درست است. 505 00:35:35,000 --> 00:35:37,000 >> این چیزی است که ما در حال تلاش برای انجام. 506 00:35:37,000 --> 00:35:40,000 ما در حال تلاش برای مقایسه سوزن در برابر موقعیت خود را در آرایه 507 00:35:40,000 --> 00:35:44,000 اما نه در برابر عناصر واقعی در آرایه. 508 00:35:44,000 --> 00:35:49,000 اگر ما نگاه دوباره در حال حاضر در گام بعدی در الگوریتم ما 509 00:35:49,000 --> 00:35:51,000 گام بعدی چه چیزی است؟ 510 00:35:51,000 --> 00:35:57,000 لیلا در حال حاضر آن را به طور خلاصه ذکر شده است. 511 00:35:57,000 --> 00:36:00,000 [دانشجو] بررسی کنید تا ببینید که اگر آن را بزرگتر یا کمتر از و پس از آن تصمیم می گیرید که راه را برای حرکت. 512 00:36:00,000 --> 00:36:03,000 [مقابله] آره، پس چگونه ما انجام این کار؟ 513 00:36:03,000 --> 00:36:07,000 آیا می توانید در برخی I'll صرفه جویی در این نسخه قرار داده شده، 514 00:36:07,000 --> 00:36:13,000 و پس از آن اگر در برخی از خطوط که انجام این کار قرار داده است. 515 00:36:13,000 --> 00:36:15,000 آره، شارلوت. >> من یک سوال. 516 00:36:15,000 --> 00:36:19,000 باید آن را نمی شود نقطه میانی 1 - به دلیل اولین چیزی است 517 00:36:19,000 --> 00:36:26,000 0 ایندکس شده، بنابراین اگر ما 4 است، که در واقع شخصیت ما به دنبال؟ 518 00:36:26,000 --> 00:36:30,000 بله، و مشکل دیگر که با است 519 00:36:30,000 --> 00:36:35,000 که گرفتن بزرگ است، زیرا آن چیزی است که برای پایان دادن اتفاق می افتد احتمالا 520 00:36:35,000 --> 00:36:42,000 اگر ما در حفظ و در حال حرکت است و ما هرگز تنظیم در ابتدا؟ 521 00:36:42,000 --> 00:36:46,000 من حدس می زنم چیزی است که ما ممکن است در نهایت انجام است که در تلاش برای دسترسی به 522 00:36:46,000 --> 00:36:49,000 این عنصر در موقعیت 8 از آرایه، 523 00:36:49,000 --> 00:36:53,000 که در این مورد وجود ندارد. 524 00:36:53,000 --> 00:36:56,000 ما می خواهیم نوعی از حسابداری برای حقیقت 525 00:36:56,000 --> 00:36:59,000 که در حال حاضر برخی از نمایه سازی صفر است. 526 00:36:59,000 --> 00:37:05,000 شارلوت با عرض پوزش، من نقطه میانی به معنای 1 - در براکت مربع است. 527 00:37:05,000 --> 00:37:08,000 ما که می تواند انجام دهد. 528 00:37:08,000 --> 00:37:10,000 خواهیم دوباره به این موضوع فقط یک کمی. 529 00:37:10,000 --> 00:37:13,000 زمانی که ما شروع به به حلقه واقعی، 530 00:37:13,000 --> 00:37:16,000 که زمانی که ما واقعا می خواهید این را به بازی می آیند. 531 00:37:16,000 --> 00:37:21,000 در حال حاضر، ما می توانیم این کار، انجام دهید، اما شما کاملا درست است. 532 00:37:21,000 --> 00:37:28,000 که نمایه سازی صفر اثر است که ما باید به حساب. 533 00:37:28,000 --> 00:37:30,000 اجازه دهید را ببینید. 534 00:37:30,000 --> 00:37:34,000 >> چگونه است که بیشتر از و کمتر از؟ 535 00:37:34,000 --> 00:37:36,000 [دانشجو] من چگونه به انجام این کار بیشتر از و کمتر از بخش. 536 00:37:36,000 --> 00:37:41,000 من فقط مطمئن بود که به چاپ اگر شما دریابید که کمتر از نقطه میانی کومه علف خشک و یا بزرگتر از آن است که نیست. 537 00:37:41,000 --> 00:37:43,000 در اینجا من می تواند نجات I've- 538 00:37:43,000 --> 00:37:47,000 [مقابله] بله، اگر شما را نجات دهد آنچه که تو کردم، و ما آن را به بالا بکشد. 539 00:37:47,000 --> 00:37:49,000 وجود دارد بروید. 540 00:37:49,000 --> 00:37:51,000 [دانشجو] و من علامت سوال را برای چیزی که من نمی دانم قرار داده است. 541 00:37:51,000 --> 00:37:54,000 [مقابله] است که به نظر می رسد بزرگ است. 542 00:37:54,000 --> 00:37:58,000 در اینجا ما باید علامت سوال از آنجا که ما هنوز نمی دانیم 543 00:37:58,000 --> 00:38:06,000 آنچه که ما در حال رفتن به کاملا هنوز. 544 00:38:06,000 --> 00:38:12,000 چه که ما می خواهیم انجام دهند اوه، ما باید برخی از پرانتز همه بد بو بر ما. 545 00:38:12,000 --> 00:38:15,000 ما می خواهیم از این پرانتز درست باشد. 546 00:38:15,000 --> 00:38:19,000 وجود دارد بروید. 547 00:38:19,000 --> 00:38:22,000 و بنابراین چه چیزی ما می خواهیم برای انجام این کار، با توجه به الگوریتم، 548 00:38:22,000 --> 00:38:27,000 اگر ما سوزن را پیدا کند؟ 549 00:38:27,000 --> 00:38:32,000 می گویند در صورتی که سوزن کمتر از چیزی است که ما به دنبال. کوین. 550 00:38:32,000 --> 00:38:34,000 فقط در نیمه چپ نگاه کنند. 551 00:38:34,000 --> 00:38:40,000 راست، بنابراین ما می خواهیم نظر در اینجا است که می گوید: "نگاهی به نیمه چپ." قرار داده است 552 00:38:40,000 --> 00:38:46,000 و اگر سوزن از انبار کاه در نقطه میانی بزرگتر است، چه چیزی ما می خواهیم کاری انجام دهید؟ 553 00:38:46,000 --> 00:38:48,000 [دانشجو] سپس شما را در نیمه سمت راست نگاه کنید. 554 00:38:48,000 --> 00:38:53,000 در نیمه سمت راست، در نیمه سمت راست نگاه کنید. " 555 00:38:53,000 --> 00:38:58,000 خیلی کهنه نشده. 556 00:38:58,000 --> 00:39:05,000 خوب، پس در این مرحله، همه چیز به دنبال خیلی خوب است. 557 00:39:05,000 --> 00:39:13,000 مشکل با کد نوشته شده است؟ 558 00:39:13,000 --> 00:39:15,000 [دانشجو] شما نقطه پایانی برای نیمه ندارد. 559 00:39:15,000 --> 00:39:18,000 در سمت راست، ما نقطه پایانی برای نیمه ندارد. 560 00:39:18,000 --> 00:39:20,000 ما نیز تنها از طریق این یک بار بروید. 561 00:39:20,000 --> 00:39:23,000 ما فقط در یک نقطه میانی نگاه کنید. 562 00:39:23,000 --> 00:39:27,000 در هر صورت این عنصر وجود دارد، یا این طور نیست. 563 00:39:27,000 --> 00:39:34,000 به منظور تکمیل این کار، ما باید برخی از مرتب کردن بر اساس تکرار به انجام. 564 00:39:34,000 --> 00:39:39,000 ما نیاز به حفظ تکرار تا زمانی که ما را پیدا می کنند که 565 00:39:39,000 --> 00:39:43,000 هر دو عنصر در آن وجود دارد به دلیل ایم تنگ کردن و در نهایت آن را در بر داشت، 566 00:39:43,000 --> 00:39:46,000 و یا آن را در آنجا نیست، زیرا ما را از طریق تمام چیزهایی نگاه 567 00:39:46,000 --> 00:39:52,000 در نیمه های مناسب از آرایه و متوجه می شود که هیچ چیز در آن وجود دارد. 568 00:39:52,000 --> 00:39:56,000 >> هر زمان که ما این تکرار رفتن کردم، چه می خواهیم استفاده کنید؟ 569 00:39:56,000 --> 00:39:58,000 [دانشجو] حلقه. 570 00:39:58,000 --> 00:40:00,000 برخی از مرتب کردن بر اساس حلقه. بله. 571 00:40:00,000 --> 00:40:03,000 [دانشجو] آیا می توانم یک حلقه DO-در حالی که ما انجام می دهیم و آن را انجام این کار و پس از آن در حالی که 572 00:40:03,000 --> 00:40:10,000 سوزن برابر I'm مطمئن شوید که من با آن خواهد بود نه. 573 00:40:10,000 --> 00:40:18,000 اما نوع مانند کار که به عنوان طولانی به عنوان آن می کند برابر است با ارزش که ورودی کاربر است. 574 00:40:18,000 --> 00:40:21,000 آره، پس بیایید ببینید، چگونه ممکن است این خود را بنویسید؟ 575 00:40:21,000 --> 00:40:23,000 شما گفته اید اجازه دهید با استفاده از یک حلقه DO-در حالی که. 576 00:40:23,000 --> 00:40:26,000 از کجا شروع؟ 577 00:40:26,000 --> 00:40:33,000 [دانشجو] پس از اندازه 2 /. 578 00:40:33,000 --> 00:40:42,000 [مقابله] خوب، و چه می خواهیم کاری انجام دهید؟ 579 00:40:42,000 --> 00:40:44,000 ما در در حالی که بعد از پر کردن است. 580 00:40:44,000 --> 00:40:46,000 چه می خواهیم کاری انجام دهید؟ 581 00:40:46,000 --> 00:40:49,000 [دانشجو] آیا ما می خواهیم به همه چیز ما در قسمت IF نیست؟ 582 00:40:49,000 --> 00:40:52,000 [مقابله] آیا تمام این مسائل، بزرگ است. 583 00:40:52,000 --> 00:40:55,000 کپی و پیست کنید. 584 00:40:55,000 --> 00:40:59,000 آه، مرد. 585 00:40:59,000 --> 00:41:03,000 بیایید ببینیم که اگر این کار، اگر ما می تواند تب در این باره است. 586 00:41:03,000 --> 00:41:08,000 زیبا. 587 00:41:08,000 --> 00:41:16,000 خوب، و این که ما را نجات دهد، بنابراین شما بچه ها آن را داشته باشد. 588 00:41:16,000 --> 00:41:21,000 تمامی حقوق، و ما می رویم برای انجام این کار در حالی که 589 00:41:21,000 --> 00:41:25,000 شرایط در حالی که شما پس از آن بود چه بود؟ 590 00:41:25,000 --> 00:41:31,000 [دانشجو] در حالی که سوزن برابر نیست، بنابراین مثل علامت تعجب. 591 00:41:31,000 --> 00:41:37,000 اما من مطمئن هستم که دقیقا همان چیزی است که هنوز نمی باشد. 592 00:41:37,000 --> 00:41:39,000 [مقابله] آره، این است که یک راه برای انجام آن است. 593 00:41:39,000 --> 00:41:41,000 سام، نظر شما چیست؟ 594 00:41:41,000 --> 00:41:43,000 [سام] من به یاد زمانی که من در فیلم ها نگاه کرد، 595 00:41:43,000 --> 00:41:48,000 من در زمان یک تصویر را از یکی از مانند هنگامی که ما شبه برای آن انجام داد، 596 00:41:48,000 --> 00:41:52,000 برخی از رابطه بین حداکثر و حداقل وجود دارد. 597 00:41:52,000 --> 00:41:58,000 من فکر می کنم آن چیزی است که اگر حداکثر همواره کمتر از دقیقه بود. 598 00:41:58,000 --> 00:42:00,000 فهمیدی. 599 00:42:00,000 --> 00:42:04,000 [سام] و یا مانند اگر حداکثر کمتر از دقیقه یا چیزی شبیه به آن نیست، 600 00:42:04,000 --> 00:42:06,000 چرا که به این معنی است که شما همه چیز را. 601 00:42:06,000 --> 00:42:13,000 >> آره، پس چه چیزی آن را مانند حداکثر و حداقل با اشاره به صدا؟ 602 00:42:13,000 --> 00:42:16,000 [سام] ارزش هایی که اعداد صحیح که می رویم به تغییر 603 00:42:16,000 --> 00:42:18,000 نسبت به جایی که ما را از نقطه میانی است. 604 00:42:18,000 --> 00:42:20,000 دقیقا. 605 00:42:20,000 --> 00:42:24,000 [سام] در آن لحظه، آن را با رفتن به [نامفهوم] محاسبه max و در دقیقه است. 606 00:42:24,000 --> 00:42:29,000 وسط این حداکثر و ایده در دقیقه است. 607 00:42:29,000 --> 00:42:35,000 آیا این حس به مردمی؟ 608 00:42:35,000 --> 00:42:39,000 اگر ما برای شروع به دنبال چگونه ما قصد داریم برای انجام این کار تکرار، 609 00:42:39,000 --> 00:42:43,000 شما کاملا درست است که ما می خواهیم برای استفاده از برخی از مرتب کردن بر اساس انجام دهند در حالی که حلقه. 610 00:42:43,000 --> 00:42:49,000 اما من حدس می زنم اگر ما به یاد داشته باشید آنچه که در نقطه ای از این آرایه 611 00:42:49,000 --> 00:42:53,000 و آنچه در واقع اتفاق می افتد، I'm رفتن به نوشتن در اینجا 612 00:42:53,000 --> 00:42:58,000 در تکرار اول جستجوی دودویی، ما باید 613 00:42:58,000 --> 00:43:05,000 من قصد دارم برای استفاده از B و E به معنی آغاز. 614 00:43:05,000 --> 00:43:10,000 و سپس در پایان از آرایه های ما. 615 00:43:10,000 --> 00:43:14,000 ما می دانیم که از آغاز در 4 حق در اینجا، 616 00:43:14,000 --> 00:43:18,000 و ما می دانیم که در پایان در 108 است. 617 00:43:18,000 --> 00:43:23,000 می گویند که ما در حال جستجو برای شماره 15. 618 00:43:23,000 --> 00:43:27,000 اولین بار این کار را، ما دیدیم پیشتر گفته شد، 619 00:43:27,000 --> 00:43:30,000 نقطه میانی یا رفتن به 16 یا 23 620 00:43:30,000 --> 00:43:34,000 بسته در مورد نحوه محاسبه شده است. 621 00:43:34,000 --> 00:43:37,000 از آنجا که به طور مساوی در وسط تقسیم می ما این فضا را 622 00:43:37,000 --> 00:43:42,000 بین 16 و 23، ما به طور مساوی نمی تواند آن را تقسیم 623 00:43:42,000 --> 00:43:47,000 یا آن را تقسیم و در یک نقطه میانی واقعی. 624 00:43:47,000 --> 00:43:49,000 ما در 16 نگاه خواهیم کرد. 625 00:43:49,000 --> 00:43:55,000 ما متوجه "هی، 16> 15 که ما به دنبال آن هستید." 626 00:43:55,000 --> 00:43:59,000 سپس در نیمه سمت چپ آرایه 627 00:43:59,000 --> 00:44:03,000 آنچه که ما را به پایان خواهم انجام دور است 628 00:44:03,000 --> 00:44:07,000 این بخش فوقانی کل 629 00:44:07,000 --> 00:44:16,000 و گفت، "خوب، در حال حاضر نقطه پایانی ما این است که برای رفتن به اینجا." 630 00:44:16,000 --> 00:44:22,000 تکرار بعدی حلقه ما، ما در حال حاضر در این آرایه به دنبال، 631 00:44:22,000 --> 00:44:25,000 به طور موثر با دور ریخته می شود این بخش به دلیل در حال حاضر 632 00:44:25,000 --> 00:44:30,000 اگر ما در حال در نظر گرفتن نقطه میانی به تفاوت بین شروع و پایان، 633 00:44:30,000 --> 00:44:34,000 ما در پیدا کردن نقطه میانی ما به 8، 634 00:44:34,000 --> 00:44:40,000 که ما پس از آن می توانید تست 8 تا ببینید که در آن در رابطه به تعداد ما به دنبال 635 00:44:40,000 --> 00:44:44,000 15، که 15 بزرگتر است، 636 00:44:44,000 --> 00:44:49,000 بنابراین ما باید برای حرکت به قسمت سمت راست از لیست، 637 00:44:49,000 --> 00:44:51,000 که ما آن را می دانم چرا ما انسان ها، و ما می توانیم آن را ببینید. 638 00:44:51,000 --> 00:44:54,000 ما می دانیم که بخش راست است برای رفتن به جایی که ما آن را پیدا کنید، 639 00:44:54,000 --> 00:45:01,000 اما کامپیوتر نمی داند که، چه خواهیم انجام دهیم این است که ما در واقع خواهیم 640 00:45:01,000 --> 00:45:04,000 این بالا برود، و در حال حاضر آغاز و پایان 641 00:45:04,000 --> 00:45:11,000 همان نقطه تا نقطه میانی می شود تنها در این لیست که در آن نقطه، 642 00:45:11,000 --> 00:45:16,000 که 15 است، و ما آن را در بر داشت. 643 00:45:16,000 --> 00:45:21,000 کند که برخی از نور در جایی که این حداکثر کل و نماد دقیقه ریخته، 644 00:45:21,000 --> 00:45:24,000 پیگیری پایانی از آرایه به منظور کشف کردن 645 00:45:24,000 --> 00:45:35,000 چگونه برای محدود کردن چیز ها را؟ 646 00:45:35,000 --> 00:45:42,000 >> چه اتفاقی خواهد افتاد اگر این بود تا 15 برابر در حال حاضر؟ 647 00:45:42,000 --> 00:45:52,000 چه اگر ما برای 15 و، به جای آن دنبال شد، این تعداد نیز 16؟ 648 00:45:52,000 --> 00:45:54,000 ما می گفت: "آه، آن بیشتر است. 649 00:45:54,000 --> 00:45:57,000 ما می خواهیم به عقب برگردید و به سمت چپ. " 650 00:45:57,000 --> 00:46:01,000 و ما می خواهم الکترونیکی خود را به سمت راست حرکت می کند، 651 00:46:01,000 --> 00:46:06,000 که در آن نقطه ما باید نقطه پایانی خواهد بود که متناقض است. 652 00:46:06,000 --> 00:46:09,000 قادر نخواهد بود به جستجو برای عناصر هر 653 00:46:09,000 --> 00:46:13,000 چرا که در حال حاضر ما به نقطه پایانی ما و نقطه شروع ما، 654 00:46:13,000 --> 00:46:16,000 حداکثر و حداقل ما، در حال حاضر بدبختانه. 655 00:46:16,000 --> 00:46:23,000 ما را از طریق کل آرایه را جستجو کنید. ما می توانیم هر چیزی را پیدا کند. 656 00:46:23,000 --> 00:46:27,000 این نقطه که در آن ما می خواهم می خواهم می گویند: "خوب، ما قصد داریم برای جلوگیری از این الگوریتم است. 657 00:46:27,000 --> 00:46:34,000 ما هیچ چیزی یافت نشد. ما می دانیم که آن را در اینجا نیست. " 658 00:46:34,000 --> 00:46:36,000 چگونه است که این رود؟ 659 00:46:36,000 --> 00:46:40,000 [دانشجو] دقیقا چگونه کامپیوتر تغییر پایان؟ 660 00:46:40,000 --> 00:46:45,000 چگونه در پایان قبل از آغاز تا پایان؟ 661 00:46:45,000 --> 00:46:48,000 پایان به پایان می رسد تا قبل از شروع 662 00:46:48,000 --> 00:46:54,000 به دلیل از ریاضی است که ما قصد داریم تا هر زمان که ما این کار را. 663 00:46:54,000 --> 00:47:00,000 راه ما مبادله است اگر شما در همان بار اول نگاه ما این کار را انجام مبادله 664 00:47:00,000 --> 00:47:03,000 که در آن ما را آغاز و در 4 و پایان 665 00:47:03,000 --> 00:47:13,000 تمام راه را به پایین 108 و نقطه میانی ما، می گویند، در 16 - 666 00:47:13,000 --> 00:47:20,000 من قصد دارم برای تنظیم مجدد بازگشت به 15-اگر ما به دنبال از 15 667 00:47:20,000 --> 00:47:25,000 ما می دانستیم که آنچه که ما هنگامی که ما بررسی از 16 و دیدم که بیشتر 668 00:47:25,000 --> 00:47:28,000 و می خواست به دور انداختن تمام قسمت سمت راست از لیست، 669 00:47:28,000 --> 00:47:36,000 ما دیدیم که آنچه که ما می خواستیم به انجام حرکت این نامه حق در اینجا. 670 00:47:36,000 --> 00:47:44,000 به طور موثر، E قبل از نقطه میانی منتقل شدم. 671 00:47:44,000 --> 00:47:48,000 به همین ترتیب، زمانی که ما این تکرار از الگوریتم 672 00:47:48,000 --> 00:47:51,000 و نقطه میانی در 8، 673 00:47:51,000 --> 00:47:55,000 ما متوجه شدیم که 8 <15 است، بنابراین ما می خواستیم به حرکت ب 674 00:47:55,000 --> 00:48:00,000 گذشته یکی از نقطه میانی. 675 00:48:00,000 --> 00:48:07,000 در حال حاضر، شروع و پایان هر دو با هم در این 15. 676 00:48:07,000 --> 00:48:10,000 >> اگر ما می خواهم اتفاق می افتد به برخی از ارزش های دیگر نه، 15 نگاه کنید، 677 00:48:10,000 --> 00:48:14,000 و یا اگر به جای این 15 از 16 بوده است، 678 00:48:14,000 --> 00:48:20,000 ما را پیدا کرده اند که ایران ما می خواهیم به حرکت می کند قبل از نقطه میانی است. 679 00:48:20,000 --> 00:48:33,000 در حال حاضر E خواهد بود بدبختانه کمتر از B وجود دارد. 680 00:48:33,000 --> 00:48:39,000 اجازه راه رفتن را از طریق ما در واقع تا پایان برنامه نویسی این الگوریتم. 681 00:48:39,000 --> 00:48:44,000 ما می دانیم که ما می خواهیم به این محاسبه نقطه میانی. 682 00:48:44,000 --> 00:48:48,000 ما می دانیم که ما می خواهیم برای پیگیری شروع و پایان از آرایه 683 00:48:48,000 --> 00:48:51,000 از آرایه های کنونی ما، بنابراین ما می توانیم کشف کردن 684 00:48:51,000 --> 00:48:56,000 که این نیمه چپ از لیست است و از آنجا که نیمه سمت راست از لیست است. 685 00:48:56,000 --> 00:49:03,000 ما که با هر دو شروع و پایان، 686 00:49:03,000 --> 00:49:07,000 و یا ما می توانیم آنها را به حداقل و حداکثر است. 687 00:49:07,000 --> 00:49:10,000 من از شروع و پایان دادن به این زمان است. 688 00:49:10,000 --> 00:49:15,000 هنگامی که ما شروع شود، اگر ما نگاهی به مثال ما در اینجا، 689 00:49:15,000 --> 00:49:20,000 آغاز ما این بود که از همان ابتدای آرایه، مجموعه ای طبیعی است. 690 00:49:20,000 --> 00:49:25,000 چه شاخص این بود؟ ما باید شروع کنیم؟ 691 00:49:25,000 --> 00:49:27,000 دانیل. 692 00:49:27,000 --> 00:49:30,000 [دانیال] پشته علف [0]. 693 00:49:30,000 --> 00:49:37,000 [مقابله] آره، بنابراین ما می تواند از آن برابر با کومه علف خشک تنظیم [0]. 694 00:49:37,000 --> 00:49:40,000 مشکل است، هر چند، این است که این به ما می دهد و موقعیت از اولین عنصر نیست. 695 00:49:40,000 --> 00:49:45,000 این به ما می دهد شاخص عنصر اول و یا ارزش واقعی که در آن مقام اول است. 696 00:49:45,000 --> 00:49:47,000 [دانشجو] که به 0.20 تبدیل کنم؟ 697 00:49:47,000 --> 00:49:52,000 [مقابله] آنچه را انجام خواهد داد، خوب، آن را به هیچ مبدل را انجام ندهید. 698 00:49:52,000 --> 00:49:56,000 چیزی که آن را انجام خواهد داد این است که آن را به 4 در شروع ذخیره، 699 00:49:56,000 --> 00:49:59,000 و پس از آن سخت خواهد بود برای مقایسه در برابر شروع 700 00:49:59,000 --> 00:50:03,000 به دلیل آغاز خواهد شد برگزاری ارزش از 4، 701 00:50:03,000 --> 00:50:06,000 که ابتدا از آرایه های ما است، 702 00:50:06,000 --> 00:50:08,000 اما ما می خواهیم برای پیگیری شاخص در آرایه 703 00:50:08,000 --> 00:50:11,000 به عنوان مخالف به ارزش شده است. 704 00:50:11,000 --> 00:50:17,000 ما در واقع می خواهید 0، شبیه به آن. 705 00:50:17,000 --> 00:50:20,000 برای پایان آرایه شارلوت این تا کمی زودتر به ارمغان آورد. 706 00:50:20,000 --> 00:50:23,000 این جایی است که ما را به حساب آورد نمایه سازی صفر است. 707 00:50:23,000 --> 00:50:25,000 >> شارلوت، در پایان از آرایه چیست؟ 708 00:50:25,000 --> 00:50:28,000 فهرست پایان چیست؟ 709 00:50:28,000 --> 00:50:30,000 [شارلوت] حجم - 1. 710 00:50:30,000 --> 00:50:32,000 آره، که به اندازه باید استفاده می کنیم؟ 711 00:50:32,000 --> 00:50:35,000 باید حجم سرمایه یا اندازه حروف کوچک استفاده می کنیم؟ 712 00:50:35,000 --> 00:50:37,000 اندازه سرمایه است. 713 00:50:37,000 --> 00:50:42,000 در این مورد، ما می تواند اندازه سرمایه استفاده کنید. 714 00:50:42,000 --> 00:50:45,000 اگر ما می خواستیم این تابع قابل حمل 715 00:50:45,000 --> 00:50:48,000 و استفاده از این تابع را در برنامه های دیگر، 716 00:50:48,000 --> 00:50:50,000 ما در واقع می تواند اندازه های حروف کوچک استفاده کنید. 717 00:50:50,000 --> 00:50:52,000 این خوب است بیش از حد. 718 00:50:52,000 --> 00:51:01,000 اما شارلوت کاملا درست است که ما می خواهیم به اندازه - 1. 719 00:51:01,000 --> 00:51:03,000 در این نقطه 720 00:51:03,000 --> 00:51:05,000 [دانشجو] چگونه است که شما می توانید اندازه بزرگ استفاده کنید؟ 721 00:51:05,000 --> 00:51:07,000 چگونه است که ما می توانیم اندازه بزرگ استفاده کنید؟ 722 00:51:07,000 --> 00:51:13,000 به نظر می رسد که این # تعریف می کند در واقع، 723 00:51:13,000 --> 00:51:19,000 در زیر کاپوت، یک متن مانند پیدا کردن و جایگزین، اگر آن را حس می کند. 724 00:51:19,000 --> 00:51:24,000 هنگامی که کد شما را کامپایل، مرحله پردازش 725 00:51:24,000 --> 00:51:27,000 کامپایلر می رود از طریق فایل، 726 00:51:27,000 --> 00:51:31,000 و آن را برای به نظر می رسد که در همه جا اندازه سرمایه شما نوشته شده است، 727 00:51:31,000 --> 00:51:39,000 و آن را جایگزین آن متن را به معنای واقعی کلمه با 8، فقط می خواهم که. 728 00:51:39,000 --> 00:51:42,000 در این معنا، این است که بسیار متفاوت از یک متغیر است. 729 00:51:42,000 --> 00:51:45,000 این کار را تا هر فضا در حافظه است. 730 00:51:45,000 --> 00:51:52,000 این ترفند ساده متن جایگزین است. 731 00:51:52,000 --> 00:51:57,000 در این مورد، ما قصد داریم به استفاده از اندازه است. 732 00:51:57,000 --> 00:52:01,000 از اینجا ما نمی خواهیم به انجام برخی از مرتب کردن بر اساس تکرار، 733 00:52:01,000 --> 00:52:03,000 و ما در مسیر صحیح انجام دهند در حالی که حلقه ما هستیم. 734 00:52:03,000 --> 00:52:08,000 ما می خواهیم برای انجام کاری تا زمانی که وضعیت نگه نمی کنه، 735 00:52:08,000 --> 00:52:12,000 و به آنچه پیشتر دیدیم، دیدیم که آن وضعیت 736 00:52:12,000 --> 00:52:19,000 در واقع که ما در پایان می خواهم 737 00:52:19,000 --> 00:52:24,000 به کمتر از شروع. 738 00:52:24,000 --> 00:52:26,000 >> این توقف ما شرایط است. 739 00:52:26,000 --> 00:52:35,000 اگر این اتفاق می افتد، ما می خواهیم برای متوقف کردن و مانند آن، اعلام کرد: "هی، ما چیزی یافت نشد." 740 00:52:35,000 --> 00:52:43,000 برای بیان این، ما نمی خواهیم برای استفاده از برخی از مرتب کردن بر اساس حلقه. 741 00:52:43,000 --> 00:52:49,000 در این مورد، آن را می شود حلقه DO-در حالی که، حلقه for، حلقه است؟ 742 00:52:49,000 --> 00:52:51,000 ما باید یک حلقه DO-در حالی که در اینجا. 743 00:52:51,000 --> 00:52:53,000 آیا شما بچه ها می خواهم که روش؟ 744 00:52:53,000 --> 00:52:59,000 آیا شما فکر می کنم ما باید به روش های مختلف را امتحان کنید؟ 745 00:52:59,000 --> 00:53:01,000 کوین، هر گونه افکار؟ 746 00:53:01,000 --> 00:53:06,000 ما می توانیم یک حلقه در حالی که به خاطر ما می دانیم حداکثر 747 00:53:06,000 --> 00:53:11,000 خواهد بود بیشتر از دقیقه در هر حال شروع است. 748 00:53:11,000 --> 00:53:14,000 آره، بنابراین هیچ دهی اولیه که نیاز به اتفاق می افتد وجود دارد. 749 00:53:14,000 --> 00:53:17,000 کسانی که حلقه در حالی که زمانی که شما چیزی به مقداردهی اولیه 750 00:53:17,000 --> 00:53:21,000 قبل از آن آزمایش، در حالی که در اینجا 751 00:53:21,000 --> 00:53:26,000 ما می دانیم که ما قصد داریم برای حفظ reinitializing هر دو شروع و پایان 752 00:53:26,000 --> 00:53:28,000 در هر دور از حلقه. 753 00:53:28,000 --> 00:53:32,000 ما می دانیم که ما می خواهیم به آنها را مقداردهی اولیه، و سپس شرایط ما را بررسی کنید. 754 00:53:32,000 --> 00:53:38,000 در این مورد، من در واقع می خواهید در حالی که با یک حلقه ساده. 755 00:53:38,000 --> 00:53:44,000 به نظر می رسد که انجام دهند در حالی که حلقه نسبتا به ندرت استفاده می شود. 756 00:53:44,000 --> 00:53:49,000 بسیاری از مکان ها حتی نمی یاد می دهد در حالی که حلقه. 757 00:53:49,000 --> 00:53:53,000 آنها برای دست زدن به ورودی کاربر، بنابراین ما بسیاری از آنها تا کنون دیده ام. 758 00:53:53,000 --> 00:53:59,000 اما طبیعی و در حالی که حلقه ها بسیار شایع تر است. 759 00:53:59,000 --> 00:54:03,000 به نظر می رسد که این وضعیت به عنوان نوشته شده است 760 00:54:03,000 --> 00:54:09,000 واقعا نمی با ما بسیار خوب انجام دهید، و به همین دلیل است که؟ 761 00:54:09,000 --> 00:54:11,000 متاسفم، من نام شما را نمی دانم. 762 00:54:11,000 --> 00:54:13,000 من جری. >> متاسفم؟ 763 00:54:13,000 --> 00:54:15,000 B-O-R-U-I است. 764 00:54:15,000 --> 00:54:18,000 آه، درست است. 765 00:54:18,000 --> 00:54:23,000 من می توانم شما را در لیست من نیست. 766 00:54:23,000 --> 00:54:26,000 آه، آن را به خاطر آه، که باعث می شود حس. 767 00:54:26,000 --> 00:54:31,000 آیا ایده که چرا این حلقه در حالی که ممکن است کار به عنوان در نظر گرفته شده را داشته باشند، 768 00:54:31,000 --> 00:54:38,000 با شرایط نوشته شده است؟ 769 00:54:38,000 --> 00:54:43,000 [جری] منظورتان این است که شما می خواهید همه چیز پس از آن به؟ 770 00:54:43,000 --> 00:54:46,000 آره، به طوری که یکی است. 771 00:54:46,000 --> 00:54:49,000 ما ممکن است برای قرار دادن تمام این مسائل را به حلقه در حالی که، که کاملا درست است. 772 00:54:49,000 --> 00:54:55,000 چیز دیگری که کمی مشکل تر است، هر چند، این است که این وضعیت کار نمی کند. 773 00:54:55,000 --> 00:54:57,000 [دانشجو] شما باید به آن تلنگر. 774 00:54:57,000 --> 00:55:04,000 راست است، بنابراین این وضعیت هرگز نمی شود درست است در ابتدا ما در مورد آن صحبت کردیم. 775 00:55:04,000 --> 00:55:08,000 ما می خواهیم برای انجام کاری تا پایان <شروع، 776 00:55:08,000 --> 00:55:13,000 اما ما می خواهیم به انجام کاری در حالی که 777 00:55:13,000 --> 00:55:21,000 آغاز پایان ≤. 778 00:55:21,000 --> 00:55:24,000 >> که واژگونی از منطق وجود دارد وجود دارد. 779 00:55:24,000 --> 00:55:27,000 من گناه کسانی که اشتباهات در همه زمان ها است. 780 00:55:27,000 --> 00:55:31,000 [دانشجو] چرا باید به کمتر از یا مساوی؟ 781 00:55:31,000 --> 00:55:33,000 از آنجا که شما این مورد که ما رو به یاد داشته باشید 782 00:55:33,000 --> 00:55:36,000 که در آن تنها یکی از عناصر وجود دارد، و ما به پایین، 783 00:55:36,000 --> 00:55:43,000 و ما فقط در 15 در آرایه ما به دنبال؟ 784 00:55:43,000 --> 00:55:47,000 و آغاز و پایان ما همین عنصر بود. 785 00:55:47,000 --> 00:55:50,000 ما می خواهیم تا مطمئن شوید که ما رسیدگی به این مورد. 786 00:55:50,000 --> 00:55:54,000 اگر ما راست کمتر، 787 00:55:54,000 --> 00:55:58,000 ما تنها قادر به دریافت یک آرایه 2 عنصر باشد. 788 00:55:58,000 --> 00:56:06,000 هنگامی که ما رو به پایین است که آخرین عنصر، در صورتی که عنصر ما بودند، ما می خواهم آن را پیدا کنید هرگز. 789 00:56:06,000 --> 00:56:10,000 در حال حاضر در اینجا، ما می توانید انجام دهید دقیقا مانند شما گفتند. 790 00:56:10,000 --> 00:56:15,000 ما می توانیم شروع به plopping مسائل حق را به وسط حلقه در حالی که ما. 791 00:56:15,000 --> 00:56:20,000 ما می توانیم با صدای تلپ در نقطه میانی ما. 792 00:56:20,000 --> 00:56:24,000 ما می توانیم از این اظهارات، 793 00:56:24,000 --> 00:56:30,000 کشیدن آنها را از این حلقه DO-در حالی که، 794 00:56:30,000 --> 00:56:34,000 با صدای تلپ آنها را در 795 00:56:34,000 --> 00:56:39,000 تمیز کردن چیز کمی، 796 00:56:39,000 --> 00:56:48,000 و من میام جلو و صرفه جویی در این نسخه. 797 00:56:48,000 --> 00:56:53,000 و در این مرحله، ما در حال گرفتن بسیار نزدیک است. 798 00:56:53,000 --> 00:56:55,000 سام. 799 00:56:55,000 --> 00:56:58,000 من فکر می کنم شما نیز باید به نقطه میانی از نوع int SIZE = - 1/2. 800 00:56:58,000 --> 00:57:01,000 آن، اندازه - 1/2 است. 801 00:57:01,000 --> 00:57:05,000 آیا هر چیز دیگری ما نیاز داریم که خط را تغییر دهید؟ 802 00:57:05,000 --> 00:57:10,000 گرفتن خوب بود. 803 00:57:10,000 --> 00:57:14,000 >> چه اندازه انجام دهید؟ آیا ما همیشه در حال تغییر اندازه؟ 804 00:57:14,000 --> 00:57:17,000 به منظور حفظ خط شبیه به این، ما باید برای تغییر اندازه. 805 00:57:17,000 --> 00:57:21,000 ما باید برای تغییر اندازه در هر زمان که ما در اطراف حلقه. 806 00:57:21,000 --> 00:57:25,000 اما به یاد داشته باشید هنگامی که ما از طریق مثال ما فقط کمی زودتر، 807 00:57:25,000 --> 00:57:30,000 و ما آغاز و در 4 808 00:57:30,000 --> 00:57:33,000 و در پایان تمام راه را در بیش از 108؟ 809 00:57:33,000 --> 00:57:35,000 چگونه از نقطه میانی محاسبه؟ 810 00:57:35,000 --> 00:57:38,000 ما با استفاده از اندازه؟ 811 00:57:38,000 --> 00:57:40,000 و یا با استفاده از شروع و پایان دادن به جای؟ 812 00:57:40,000 --> 00:57:42,000 این تفاوت بین پایان و آغاز است. 813 00:57:42,000 --> 00:57:50,000 دقیقا، و دقیقا چگونه باید که من نوشتن، شارلوت؟ 814 00:57:50,000 --> 00:57:52,000 فقط پایان - آغاز خواهد شد. 815 00:57:52,000 --> 00:57:55,000 شما نمی نیاز به انجام - 1 816 00:57:55,000 --> 00:57:58,000 به این دلیل که 1 - شده است در پایان و آغاز در حال حاضر است. 817 00:57:58,000 --> 00:58:00,000 [مقابله] بزرگ، شما کاملا درست است. 818 00:58:00,000 --> 00:58:03,000 ما لازم نیست که برای انجام 1 - چرا که - 1 شده است شامل 819 00:58:03,000 --> 00:58:08,000 و برای زمانی که مقداردهی اولیه متغیر نهایی ما است. 820 00:58:08,000 --> 00:58:11,000 >> آیا هر چیز دیگری نیاز به نحوی که این خط را حس وجود دارد؟ 821 00:58:11,000 --> 00:58:13,000 [دانشجو] به علاوه آغاز خواهد شد. >> به علاوه شروع کنیم؟ 822 00:58:13,000 --> 00:58:15,000 [دانشجو] در پایان. 823 00:58:15,000 --> 00:58:20,000 از آنجا که این فقط نیمی از طول محاسبه شده است. 824 00:58:20,000 --> 00:58:26,000 شما نیاز به اضافه کردن شروع شود. 825 00:58:26,000 --> 00:58:31,000 [مقابله] چه خواهد این کار را برای ما محاسبه؟ 826 00:58:31,000 --> 00:58:35,000 اگر ما در مورد پایان فکر می کنم در این تکرار برای اولین بار از این حلقه، 827 00:58:35,000 --> 00:58:40,000 پایان است که در شاخص موقعیت 7. 828 00:58:40,000 --> 00:58:43,000 شروع در موقعیت 0. 829 00:58:43,000 --> 00:58:47,000 به یاد داشته باشید، ما به دنبال هر دو 830 00:58:47,000 --> 00:58:52,000 جایگاه 3 یا موقعیت 4. 831 00:58:52,000 --> 00:58:56,000 اگر ما در این ریاضی نگاه کنید، فقط برای آن را کمی بیشتر ملموس است، 832 00:58:56,000 --> 00:59:02,000 قرار دادن برخی از اعداد در اینجا، ما باید 7، 0، 833 00:59:02,000 --> 00:59:10,000 بنابراین 7 - 0 و پس از آن / 2 834 00:59:10,000 --> 00:59:19,000 3 در تقسیم عدد صحیح است. 835 00:59:19,000 --> 00:59:26,000 سپس ما باید به آن اضافه کردن پشت ما آغاز خواهد شد؟ 836 00:59:26,000 --> 00:59:28,000 ما در این مورد نیست. 837 00:59:28,000 --> 00:59:31,000 در اولین تکرار بسیار خوب خواهد شد چرا که آغاز شده است 0. 838 00:59:31,000 --> 00:59:36,000 اما ما به عنوان پیشرفت، ما واقعا تنها کاری که باید 839 00:59:36,000 --> 00:59:42,000 پایان - شروع / 2. 840 00:59:42,000 --> 00:59:46,000 یک ترفند دیگر در اینجا وجود دارد، و این یعنی یکی از اولویت. 841 00:59:46,000 --> 00:59:49,000 [دانشجو] آیا پرانتز نیاز داریم؟ 842 00:59:49,000 --> 00:59:53,000 [مقابله] دقیقا، چرا که اگر ما این پرانتز قرار نیست، 843 00:59:53,000 --> 00:59:58,000 سپس این خط به جای تفسیر شود 844 00:59:58,000 --> 01:00:09,000 (پایان) - (شروع / 2)، که ما آن را قطعا نمی خواهید. 845 01:00:09,000 --> 01:00:11,000 مراقب باشید برای آن دسته از قوانین تقدم. 846 01:00:11,000 --> 01:00:15,000 [دانشجو] چرا آن را به پایان + شروع کنیم؟ 847 01:00:15,000 --> 01:00:17,000 چرا آن را به پایان + شروع کنیم؟ 848 01:00:17,000 --> 01:00:19,000 [دانشجو] چرا که نه؟ 849 01:00:19,000 --> 01:00:24,000 چرا از آن می شود +؟ 850 01:00:24,000 --> 01:00:26,000 من فکر می کنم حق با شما است. 851 01:00:26,000 --> 01:00:28,000 [دانشجو] از آنجا که آن را به طور متوسط؟ 852 01:00:28,000 --> 01:00:31,000 [مقابله] پایان + شروع، شما کاملا درست است. 853 01:00:31,000 --> 01:00:34,000 وای، و من کاملا goofed. حق با تو است. 854 01:00:34,000 --> 01:00:39,000 اگر ما انجام منفی، ما می خواهیم به شروع دوباره وارد 855 01:00:39,000 --> 01:00:43,000 در این حالت، شما در حال درست است که ما می خواهیم را به طور متوسط ​​از این دو، 856 01:00:43,000 --> 01:00:45,000 بنابراین ما نمی خواهیم به آنها اضافه کنید، به عنوان مخالف به آنها تفریق. 857 01:00:45,000 --> 01:00:49,000 [دانشجو] آن را نیز به کار اگر شما پایان - آغاز خواهد شد / 2 + شروع. 858 01:00:49,000 --> 01:00:55,000 که اگر ما به اعتقاد من. 859 01:00:55,000 --> 01:01:00,000 >> برای مثال، اگر ما در شروع شدند، 860 01:01:00,000 --> 01:01:04,000 و ما آن را منتقل اینجا 861 01:01:04,000 --> 01:01:08,000 در 15. 862 01:01:08,000 --> 01:01:12,000 در حال حاضر شروع شده است در موقعیت 2. 863 01:01:12,000 --> 01:01:15,000 پایان است که در موقعیت 7. 864 01:01:15,000 --> 01:01:21,000 اگر ما آنها را تفریق، ما 5. 865 01:01:21,000 --> 01:01:24,000 تقسیم است که به 2 2. 866 01:01:24,000 --> 01:01:27,000 و بعد 2 ما اضافه کردن به عقب، 867 01:01:27,000 --> 01:01:30,000 و این ما را به سمت 4، 868 01:01:30,000 --> 01:01:33,000 که اینجا مناسب است که نقطه میانی است. 869 01:01:33,000 --> 01:01:36,000 [دانشجو] آیا ما نیاز به مراقبت از کاغذ بسته بندی؟ 870 01:01:36,000 --> 01:01:39,000 در چه حس ما نیاز به مراقبت از پیچیدن؟ 871 01:01:39,000 --> 01:01:43,000 اگر مجموع یا تفاوت بین 872 01:01:43,000 --> 01:01:45,000 بسته که ما چگونه آن را انجام دهید یک عدد زوج است. 873 01:01:45,000 --> 01:01:49,000 سپس کامپیوتر می شود که آیا زمانی که آن را 2.5 اشتباه؛ 874 01:01:49,000 --> 01:01:52,000 می توانم شما را به سمت چپ یا به سمت راست که برای تعیین نقطه میانی حرکت می کند؟ 875 01:01:52,000 --> 01:01:54,000 فهمیدی. 876 01:01:54,000 --> 01:01:56,000 به نظر می رسد که با تقسیم عدد صحیح، 877 01:01:56,000 --> 01:01:59,000 ما هرگز این اعداد ممیز شناور است. 878 01:01:59,000 --> 01:02:01,000 ما دهدهی هرگز. 879 01:02:01,000 --> 01:02:04,000 کاملا دور ریخته میشود. 880 01:02:04,000 --> 01:02:08,000 اگر شما یک کامپیوتر تقسیم دو متغیر از نوع int، 881 01:02:08,000 --> 01:02:11,000 و یکی از 7 است، و از سوی دیگر، 2، 882 01:02:11,000 --> 01:02:13,000 شما 3.5 به عنوان یک نتیجه گرفتن نیست. 883 01:02:13,000 --> 01:02:16,000 آن را به 3 دریافت کنید. 884 01:02:16,000 --> 01:02:19,000 بقیه دور ریخته خواهد شد، پس از آن به طور موثر گرد 885 01:02:19,000 --> 01:02:24,000 نه دور بلکه یک طبقه، اگر شما بچه ها آشنا هستند با آن در ریاضی، 886 01:02:24,000 --> 01:02:27,000 که در آن شما به طور کامل دهدهی دور بیندازید، 887 01:02:27,000 --> 01:02:31,000 و تو در اصل آن را پبدا به پایین به نزدیکترین 888 01:02:31,000 --> 01:02:33,000 مجموع، به نزدیکترین عدد صحیح است. 889 01:02:33,000 --> 01:02:38,000 [دانشجو] اما پس از آن که مشکل ساز است چرا که اگر شما یک مجموعه ای از 7 عنصر 890 01:02:38,000 --> 01:02:43,000 پس از آن است که به طور خودکار طول می کشد این عنصر 3 از نقطه میانی به جای 4. 891 01:02:43,000 --> 01:02:46,000 چگونه ما می توانیم با آن مقابله؟ 892 01:02:46,000 --> 01:02:49,000 این مشکل به این دلیل اگر ما تا به حال مجموعه ای از 7 893 01:02:49,000 --> 01:02:54,000 آن را به جای 4 3 را انتخاب کنید. 894 01:02:54,000 --> 01:02:56,000 بیشتر کمی توضیح دهید؟ 895 01:02:56,000 --> 01:02:59,000 [دانشجو] زیرا اگر 7 عناصر سپس عنصر 4 896 01:02:59,000 --> 01:03:04,000 می شود از نقطه میانی، درست است؟ 897 01:03:04,000 --> 01:03:07,000 به یاد داشته باشید نظر خود را در مورد صفر بودن نمایه شده، هر چند. 898 01:03:07,000 --> 01:03:10,000 [دانشجو] آره، به طوری که در موقعیت 3. که می شود از نقطه میانی. 899 01:03:10,000 --> 01:03:12,000 آره. 900 01:03:12,000 --> 01:03:16,000 آه، درست است. من می بینم شما چیست. 901 01:03:16,000 --> 01:03:19,000 این نوع از عجیب و غریب، که ما را وادار به این مفهوم استفاده می شود 902 01:03:19,000 --> 01:03:22,000 خلاص شدن از اعشار. 903 01:03:22,000 --> 01:03:26,000 این یک نقطه بزرگ است. 904 01:03:26,000 --> 01:03:30,000 بیایید پایان این بالا. 905 01:03:30,000 --> 01:03:32,000 ما محاسبه نقطه میانی است. 906 01:03:32,000 --> 01:03:37,000 >> ما در حال آزمایش برای دیدن اگر سوزن ما را به مقدار متوسط ​​برابر است. 907 01:03:37,000 --> 01:03:41,000 ما در حال چاپ است که ما آن را در بر داشت، اما در واقع، آنچه که ما می خواهیم در این وضعیت انجام دهید؟ 908 01:03:41,000 --> 01:03:46,000 ما آن را در بر داشت، به طوری که ما می خواهیم به شما اجازه تماس گیرنده می دانیم که ما آن را در بر داشت. 909 01:03:46,000 --> 01:03:49,000 ما باید یک تابع که یک تابع بولی تایپ. 910 01:03:49,000 --> 01:03:54,000 راه ما به تماس گیرنده از عملکرد ما نشان دهد که ما آماده برای رفتن 911 01:03:54,000 --> 01:03:58,000 این است که ما می گویند، "هی، این درست است." 912 01:03:58,000 --> 01:04:00,000 چگونه که ما انجام می دهیم، کوین؟ 913 01:04:00,000 --> 01:04:02,000 nodding سر خود شما است. >> [کوین] اضافه کردن به راست است. 914 01:04:02,000 --> 01:04:06,000 [مقابله] دقیقا، بازگشت درست است. 915 01:04:06,000 --> 01:04:12,000 در حال حاضر، اگر آن برابر نیست، چگونه می توانیم در نیمه سمت چپ نگاه کنند؟ 916 01:04:12,000 --> 01:04:16,000 هر گونه ایده ها؟ 917 01:04:16,000 --> 01:04:18,000 استلا، هر گونه ایده ها؟ 918 01:04:18,000 --> 01:04:21,000 شما نیاز به تنظیم موقعیت جدیدی را برای پایان. 919 01:04:21,000 --> 01:04:23,000 آره. 920 01:04:23,000 --> 01:04:29,000 بنابراین ما باید انجام دهیم موقعیت نقطه میانی - پایان. 921 01:04:29,000 --> 01:04:33,000 بزرگ است. 922 01:04:33,000 --> 01:04:36,000 ما نیاز به تنظیم موقعیت جدیدی را برای پایان 923 01:04:36,000 --> 01:04:38,000 در نگاه به نیمه چپ. 924 01:04:38,000 --> 01:04:41,000 این چیزی بود که ما در مورد قبل از جایی که صحبت کردیم 925 01:04:41,000 --> 01:04:44,000 من رفتن به این مثال است. 926 01:04:44,000 --> 01:04:50,000 من شروع در اینجا، و پس از آن من پایان تمام راه را در اینجا. 927 01:04:50,000 --> 01:04:53,000 >> باز هم، اگر ما به دنبال 15، و نقطه میانی ما در 16، 928 01:04:53,000 --> 01:04:56,000 و ما متوجه، "اوه، 16 بیشتر است. 929 01:04:56,000 --> 01:04:59,000 ما می خواهیم به نیمه سمت چپ حرکت می کند. " 930 01:04:59,000 --> 01:05:02,000 ما پس از آن که در پایان از 15 حرکت، 931 01:05:02,000 --> 01:05:06,000 و ما که با در نظر گرفتن یک دور از نقطه میانی 932 01:05:06,000 --> 01:05:09,000 و راه که عنوان جدید پایان ما. 933 01:05:09,000 --> 01:05:12,000 به همین ترتیب، اگر ما می خواهیم به نیمه راست نگاه کنند، چگونه می ما انجام این کار؟ 934 01:05:12,000 --> 01:05:14,000 آیا شما یک ایده دارید؟ 935 01:05:14,000 --> 01:05:22,000 [دانشجو] شما فقط شروع به نقطه میانی + 1. 936 01:05:22,000 --> 01:05:24,000 [مقابله] بزرگ است. 937 01:05:24,000 --> 01:05:29,000 و در حال حاضر در این مورد است که ما هیچ چیز را پیدا کند، 938 01:05:29,000 --> 01:05:32,000 می کند که مراقبت های گرفته شده از برای ما؟ 939 01:05:32,000 --> 01:05:36,000 دانیل می کند که گرفته شده مراقبت از برای ما؟ 940 01:05:36,000 --> 01:05:38,000 [دانیال] شماره 941 01:05:38,000 --> 01:05:40,000 [مقابله] اگر ما آن را از طریق کل آرایه و ما هر چیزی را پیدا کند، 942 01:05:40,000 --> 01:05:42,000 کجا که گرفته شود مراقبت از، یا باید ما را از آن؟ 943 01:05:42,000 --> 01:05:44,000 [دانیال] در حالی که این وضعیت. 944 01:05:44,000 --> 01:05:48,000 [مقابله] آره، شرط در حالی که، دقیقا. 945 01:05:48,000 --> 01:05:51,000 مراقبت از رفتن را از طریق تمام آرایه را اگر ما هیچ چیز را پیدا کند. 946 01:05:51,000 --> 01:05:53,000 این حلقه در حالی که به پایان خواهد رسید. 947 01:05:53,000 --> 01:05:56,000 ما هرگز این وضعیت مواجه می شوند، 948 01:05:56,000 --> 01:06:03,000 و ما می توانیم بازگشت نادرست است. 949 01:06:03,000 --> 01:06:10,000 ما همچنین می توانیم از این اگر ترک در اینجا مثل این 950 01:06:10,000 --> 01:06:14,000 چرا که اگر این اگر عبارت درست است، 951 01:06:14,000 --> 01:06:16,000 و عملکرد ما باز خواهد گشت. 952 01:06:16,000 --> 01:06:21,000 و بنابراین ما اساسا به سقط جنین این تابع در این نقطه 953 01:06:21,000 --> 01:06:24,000 هنگامی که ما بازگشت درست است. 954 01:06:24,000 --> 01:06:28,000 اما چه اتفاقی می افتد با این ساختار در اینجا؟ 955 01:06:28,000 --> 01:06:34,000 این کار را به طور کامل و یا وجود دارد برخی از نقص های منطقی در آن وجود دارد؟ 956 01:06:34,000 --> 01:06:37,000 >> برخی از نقص های منطقی در آن وجود دارد وجود دارد، با راه آن راه اندازی شده است. 957 01:06:37,000 --> 01:06:40,000 چه چیزی ممکن است؟ 958 01:06:40,000 --> 01:06:43,000 [دانشجو] چرا شما نیاز به - و + 1S؟ 959 01:06:43,000 --> 01:06:47,000 که مجموعه های آرایه ما به نیمه چپ و نیمه راست. 960 01:06:47,000 --> 01:06:51,000 [دانشجو] اما چرا شما آن را انجام دهد، بدون - 1S و + 1S؟ 961 01:06:51,000 --> 01:06:53,000 [مقابله] ما می تواند از آن را برابر نقطه میانی است؟ 962 01:06:53,000 --> 01:07:04,000 آنچه که ممکن است در مورد آن مشکل است؟ 963 01:07:04,000 --> 01:07:08,000 [دانشجو] من حدس می زنم آن را ناکارآمد دلیل این که شما در حال چک کردن یک ارزش است که در حال حاضر بررسی شده است. 964 01:07:08,000 --> 01:07:11,000 [مقابله] دقیقا، به طوری که سم است کاملا درست است. 965 01:07:11,000 --> 01:07:15,000 اگر شما پایان و آغاز برابر نقطه میانی 966 01:07:15,000 --> 01:07:18,000 به جای - 1 + 1 تاملی، 967 01:07:18,000 --> 01:07:22,000 در برخی از نقطه در آینده خواهیم تا پایان بررسی از نقطه میانی دوباره. 968 01:07:22,000 --> 01:07:26,000 [دانشجو] من pset را آغاز، و پس از آن من تا به حال چیزی شبیه به آن 969 01:07:26,000 --> 01:07:30,000 جایی که من، 1 + را فراموش کرده و آن را در یک حلقه بی نهایت گیر کردم. 970 01:07:30,000 --> 01:07:34,000 راست، چون در برخی از نقطه شما هرگز برای شروع و پایان دادن به 971 01:07:34,000 --> 01:07:39,000 در واقع با هم همپوشانی دارند. 972 01:07:39,000 --> 01:07:41,000 دانلود. 973 01:07:41,000 --> 01:07:44,000 یکی دیگر از نقص منطقی وجود دارد، و آن این است که این قطعا باید باشد 974 01:07:44,000 --> 01:07:48,000 اگر دیگری. 975 01:07:48,000 --> 01:07:55,000 چرا ممکن است که خواهد بود؟ 976 01:07:55,000 --> 01:07:59,000 >> دلیل این امر این است که اگر آن دیگری نیست اگر آن را، کوین شما را ببینید؟ 977 01:07:59,000 --> 01:08:02,000 [کوین] آره، چرا که شما در حال تغییر نقطه پایان است. 978 01:08:02,000 --> 01:08:05,000 [مقابله] دقیقا. 979 01:08:05,000 --> 01:08:07,000 ما در حال تغییر است نقطه پایانی، 980 01:08:07,000 --> 01:08:12,000 و اگر آن را مانند این we'll نوشته شده فضاهای بین 981 01:08:12,000 --> 01:08:14,000 این مورد را بررسی کنید. 982 01:08:14,000 --> 01:08:18,000 این مورد، موفق، خواهد سقط جنین در خارج از تابع. 983 01:08:18,000 --> 01:08:21,000 سپس آن را در این مورد بعدی را چک کنید، 984 01:08:21,000 --> 01:08:24,000 و اگر این موفق، آن را به نقطه پایانی تنظیم، 985 01:08:24,000 --> 01:08:28,000 و سپس آن را در ادامه و این مورد را بررسی کنید. 986 01:08:28,000 --> 01:08:31,000 اما در این مرحله، ما نمی خواهیم آن را به ادامه بررسی است. 987 01:08:31,000 --> 01:08:35,000 خوشبختانه، ما را از نقطه میانی تنظیم مجدد نیست در اینجا، 988 01:08:35,000 --> 01:08:39,000 و ما می دانیم که این مورد موفق نخواهد شد. 989 01:08:39,000 --> 01:08:44,000 اما ما قطعا می خواهید برای قرار دادن دیگری در آن وجود دارد 990 01:08:44,000 --> 01:08:48,000 حتی اگر که ممکن است در این مورد 991 01:08:48,000 --> 01:08:52,000 از آنجایی که ما در حال تنظیم نقطه میانی، که با ایجاد اختلاف است؟ 992 01:08:52,000 --> 01:08:54,000 خیر، زیرا این موارد منحصر به فرد. 993 01:08:54,000 --> 01:08:58,000 باز هم، بد من است. 994 01:08:58,000 --> 01:09:01,000 کار می کنیم، من فکر می کنم، نه نیاز به این دیگری اگر. 995 01:09:01,000 --> 01:09:05,000 ما می توانیم آن را امتحان کنید و آن را اجرا کنید و ببینید که چه اتفاقی می افتد. 996 01:09:05,000 --> 01:09:08,000 ساختمان، یک خطا رخ داده است. 997 01:09:08,000 --> 01:09:12,000 این احتمالا به دلیل من این B ​​و E در اینجا در سمت چپ است. 998 01:09:12,000 --> 01:09:14,000 آیا من در بالا از آن بالا؟ 999 01:09:14,000 --> 01:09:16,000 این کار مانند آن به نظر نمی آید. 1000 01:09:16,000 --> 01:09:20,000 ما زوم کردن، ساخت، 1001 01:09:20,000 --> 01:09:24,000 آن می رود وجود دارد، بنابراین در حال حاضر اگر ما به مدت 15 جستجو، 1002 01:09:24,000 --> 01:09:28,000 بله. 1003 01:09:28,000 --> 01:09:30,000 اجازه بدهید من زوم شوید. 1004 01:09:30,000 --> 01:09:33,000 15، بله. ما می توانیم آن را دوباره اجرا کنید. 1005 01:09:33,000 --> 01:09:36,000 آپلود کد منبع، ساختمان، در حال اجرا است. 1006 01:09:36,000 --> 01:09:41,000 ما می توانیم برای چیزی شبیه به 13 جستجو، 1007 01:09:41,000 --> 01:09:45,000 و ما هر چیزی چاپ می کنید، به طوری که آن را یافته است که برای ما. 1008 01:09:45,000 --> 01:09:51,000 که بزرگ است، چرا آن را در لیست ما نیست. 1009 01:09:51,000 --> 01:09:53,000 >> ما در حال حاضر در خارج از زمان. 1010 01:09:53,000 --> 01:09:55,000 که رفتن به آن را برای این هفته. 1011 01:09:55,000 --> 01:10:00,000 با تشکر برای پیوستن به، و بعدا می بینمت. 1012 01:10:00,000 --> 01:10:02,000 >> [CS50.TV]