1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> ЗВУЧНИЦИ 1: Еј сите! 3 00:00:12,300 --> 00:00:13,890 Добредојдовте назад на секција. 4 00:00:13,890 --> 00:00:17,480 Толку мило да се види толку многу од вас и тука, и секој, кој гледа на интернет. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Значи, како и обично добредојде назад. 7 00:00:20,920 --> 00:00:24,360 Се надевам дека сите сте имале прекрасен викенд, полн со одмор, релаксација. 8 00:00:24,360 --> 00:00:26,026 Тоа беше убава вчера. 9 00:00:26,026 --> 00:00:27,525 Така, се надевам дека ќе уживаат на отворено. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Значи прво на неколку најави. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Оценување. 14 00:00:32,700 --> 00:00:37,350 Значи, повеќето од вас треба да има добивано е-пошта од мене за вашиот гребење Pset, 15 00:00:37,350 --> 00:00:39,920 како и за оценување на Pset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Значи, само неколку работи. 18 00:00:42,220 --> 00:00:45,150 Не заборавајте да користите check50 во style50. 19 00:00:45,150 --> 00:00:47,250 Овие се наменети да бидат ресурси за вас момци, 20 00:00:47,250 --> 00:00:50,660 да бидете сигурни дека сте добивање на што повеќе поени што можеш 21 00:00:50,660 --> 00:00:52,390 без непотребно ги губи. 22 00:00:52,390 --> 00:00:54,407 Така, работи како стил се многу важни. 23 00:00:54,407 --> 00:00:55,740 Ние ќе се обидеме да ги тргнеме за тоа. 24 00:00:55,740 --> 00:00:58,115 Некои од вас може да има веќе забележав дека од вашиот Pset. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 И check50 е само навистина лесен начин да бидете сигурни дека 27 00:01:01,450 --> 00:01:05,050 дека ние сме всушност се враќа она што треба да се враќа на корисникот, 28 00:01:05,050 --> 00:01:06,690 и дека сè е работи правилно. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> На вториот белешка, бидете сигурни дека вашата качувањето работи на точната папка. 31 00:01:12,040 --> 00:01:14,470 Тоа го прави мојот живот само малку потешко 32 00:01:14,470 --> 00:01:18,836 ако испраќате Pset 2 во Pset 1 бидејќи кога јас го симнете работи, 33 00:01:18,836 --> 00:01:20,085 тие не преземете правилно. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 И знам дека тоа е малку згреши во еден систем да се користи за да се, 36 00:01:24,560 --> 00:01:26,950 но само да биде супер внимателен, ако е само за мене, 37 00:01:26,950 --> 00:01:30,080 така што кога сте добивање пораки на како 02:00 и јас сум оценување. 38 00:01:30,080 --> 00:01:33,710 Ако не предизвикаат Јас треба да се погледне сите околу за вашиот Pset. 39 00:01:33,710 --> 00:01:34,440 Кул. 40 00:01:34,440 --> 00:01:37,270 >> Знам дека е рано, но јас целосно доби соблече стража 41 00:01:37,270 --> 00:01:40,800 од есеј тоа е поради овој петок, дека моите професори беа само се допаѓа, о, да. 42 00:01:40,800 --> 00:01:42,550 Запомнете, имате есеј поради во петокот. 43 00:01:42,550 --> 00:01:45,780 Така, знам никој не сака да се размислува за midterms, 44 00:01:45,780 --> 00:01:50,620 но вашиот прв квиз е на 15-ти октомври, кој Октомври почнува оваа недела. 45 00:01:50,620 --> 00:01:53,290 Па, може да биде порано отколку што се очекуваше е за сите. 46 00:01:53,290 --> 00:01:57,510 Така што вие не сте фрлени исклучи стража, кога Јас се спомене делот следната недела дека ох, 47 00:01:57,510 --> 00:02:00,560 вашиот квиз следната недела, Мислех, Би ви даде малку повеќе 48 00:02:00,560 --> 00:02:01,500 на главите нагоре сега. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Така, вашиот проблем постави, број три. 51 00:02:04,660 --> 00:02:07,070 Како луѓето ги прочитале спецификации од љубопитност? 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 ОК. 54 00:02:09,199 --> 00:02:10,229 Добивме неколку. 55 00:02:10,229 --> 00:02:12,320 Вид на долу од минатата недела, но тоа е во ред. 56 00:02:12,320 --> 00:02:13,650 Знам, дека е убава надвор. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Така Break Out. 59 00:02:16,660 --> 00:02:21,010 Дефинитивно откако ќе се направи денес ја прочитате вашата спецификации најмалку 60 00:02:21,010 --> 00:02:25,240 се обиде како симнување дистрибуција код и трчање 61 00:02:25,240 --> 00:02:27,430 како и првиот почетна нешто што тие ќе побара од вас да. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Затоа што ние сме со користење дистрибуција код и библиотека 64 00:02:32,590 --> 00:02:36,790 дека ние сме само се using-- --Он само по втор пат сме направиле ова Pset, 65 00:02:36,790 --> 00:02:38,650 луди работи може да се случи со вашиот уред, 66 00:02:38,650 --> 00:02:41,370 и сакате да се најде дека сега наспроти подоцна. 67 00:02:41,370 --> 00:02:45,570 >> Бидејќи ако тоа е во четврток навечер или тоа е Среда вечер и поради некоја причина 68 00:02:45,570 --> 00:02:48,912 вашиот уред едноставно не сакате да се кандидира со библиотека 69 00:02:48,912 --> 00:02:50,620 или со дистрибуција код, што значи дека 70 00:02:50,620 --> 00:02:52,309 дури и не може да започне да го кодирање. 71 00:02:52,309 --> 00:02:54,100 Затоа што не може да се провери да се види дали таа работи. 72 00:02:54,100 --> 00:02:55,975 Ти не ќе бидам во состојба да се види дали компајлира. 73 00:02:55,975 --> 00:03:00,500 Сакате да се грижи за оние кои во почетокот на недела, кога се уште може да ми мејл 74 00:03:00,500 --> 00:03:03,100 или еден од другите TFS, а ние може да се добие оние фиксен. 75 00:03:03,100 --> 00:03:05,410 Бидејќи тоа се прашања дека се случува да ви запре 76 00:03:05,410 --> 00:03:07,120 од какви било вистински напредок. 77 00:03:07,120 --> 00:03:10,055 Тоа не е како еден ошибка, дека можете да само вид на прескокнете над. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Ако имате проблеми со вашиот уред или дистрибуција код, 80 00:03:13,420 --> 00:03:16,211 навистина сакате да се добие дека зема пука на порано отколку подоцна. 81 00:03:16,211 --> 00:03:20,410 Па дури и ако не сте gonna всушност започне кодирање, симнете дистрибуција 82 00:03:20,410 --> 00:03:24,040 код, да се прочита спецификации, бидете сигурни дека сè што работи таму. 83 00:03:24,040 --> 00:03:25,134 ОК? 84 00:03:25,134 --> 00:03:27,675 Ако вие само може да го направи тоа, јас ветувам вашиот живот ќе биде полесно. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 И така сте веројатно нема да го направите токму сега, нели? 87 00:03:31,410 --> 00:03:32,100 ОК. 88 00:03:32,100 --> 00:03:33,950 Значи, било какви прашања има? 89 00:03:33,950 --> 00:03:35,850 Било логистичка нешта? 90 00:03:35,850 --> 00:03:36,910 Секој е добро? 91 00:03:36,910 --> 00:03:38,270 ОК. 92 00:03:38,270 --> 00:03:41,700 >> Disclaimer за оние од ти во соба и интернет. 93 00:03:41,700 --> 00:03:45,437 Одам да се обидува да се префрлиш помеѓу PowerPoint, во апаратот 94 00:03:45,437 --> 00:03:47,270 бидејќи ние се случува да се прават некои кодирање 95 00:03:47,270 --> 00:03:53,630 денес од страна на популарни побарувачка на анонимните Анкетата сугестија јас испрати минатата недела. 96 00:03:53,630 --> 00:03:55,480 Значи, ние ќе се прават некои кодирање. 97 00:03:55,480 --> 00:03:57,800 Значи, ако вие момци исто така, сакаат да оган до вашиот апарати, 98 00:03:57,800 --> 00:04:02,910 и што треба да го имаме е-маил од мене, со примерок датотека. 99 00:04:02,910 --> 00:04:04,310 Ве молиме слободно да го стори тоа. 100 00:04:04,310 --> 00:04:07,340 >> Значи, ние се случува да се зборува за GDB, што е дебагерот. 101 00:04:07,340 --> 00:04:09,970 Тоа се случува да ви помогне вид дознаам каде 102 00:04:09,970 --> 00:04:11,860 се одвиваат работите во ред во вашиот код. 103 00:04:11,860 --> 00:04:15,370 Тоа е навистина само начин за вие да ги интензивираат преку вашиот код, како што се случува, 104 00:04:15,370 --> 00:04:19,100 и да биде во можност да се печати од променливи или да видиме што е навистина се случува 105 00:04:19,100 --> 00:04:22,980 под хауба стихове вашата програма само трчање, тоа е како Разлом, 106 00:04:22,980 --> 00:04:25,030 и сте како, не знам што едноставно се случи тука. 107 00:04:25,030 --> 00:04:26,730 Јас не знам што линија не успеа во. 108 00:04:26,730 --> 00:04:29,040 Јас не знам од каде тоа не беше во ред. 109 00:04:29,040 --> 00:04:31,280 Значи, GDB се случува да ви помогне со тоа. 110 00:04:31,280 --> 00:04:35,240 Исто така, ако решите да продолжи да и земе 61, 111 00:04:35,240 --> 00:04:38,430 тоа ќе навистина, навистина да ви биде најдобар пријател, причина јас да ви кажам 112 00:04:38,430 --> 00:04:40,840 затоа што ќе одам низ таа класа. 113 00:04:40,840 --> 00:04:43,620 >> Ние се случува да се погледне во бинарна пребарување, кои, ако вие момци се сеќавам 114 00:04:43,620 --> 00:04:47,540 голема телефон книга пример спектакл од класа. 115 00:04:47,540 --> 00:04:50,620 Ќе се спроведува тоа, и одење преку тоа малку повеќе, 116 00:04:50,620 --> 00:04:54,650 а потоа ние ќе преку четири различни видови, кои се меур, 117 00:04:54,650 --> 00:04:56,285 Избор, вметнување, и се спојуваат. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Кул. 120 00:04:58,330 --> 00:05:00,390 Значи, GDB како што споменав, е дебагерот. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 И овие се вид на големи работите, големи функции или команди 123 00:05:09,370 --> 00:05:13,240 кои ги користите во рамките GDB, и јас ќе одиме вас преку демонстрација на тоа во една секунда. 124 00:05:13,240 --> 00:05:15,360 >> Па, ова не е само ќе остане апстрактен. 125 00:05:15,360 --> 00:05:18,000 Ќе се обидам и да ја направат како бетон што е можно за вас момци. 126 00:05:18,000 --> 00:05:19,870 Значи, се скрши. 127 00:05:19,870 --> 00:05:22,200 Таа или ќе биде пауза како на пример, некои број, кој 128 00:05:22,200 --> 00:05:26,900 претставува линија во вашата програма, или можете да го името функција. 129 00:05:26,900 --> 00:05:30,150 Значи, ако ви кажам скрши главната, ќе престане да на главната, 130 00:05:30,150 --> 00:05:32,400 и нека ви прошетка низ таа функција. 131 00:05:32,400 --> 00:05:36,350 >> Исто така, ако имате некои надворешни функционираат како Трампа или коцка, 132 00:05:36,350 --> 00:05:38,450 дека ние погледна минатата недела. 133 00:05:38,450 --> 00:05:41,780 Ако ви кажам наруши една од тие, секогаш кога вашата програма хитови кои, 134 00:05:41,780 --> 00:05:44,290 тоа ќе чека за да каже дека тоа што да прави. 135 00:05:44,290 --> 00:05:47,860 Пред тоа само ќе се изврши така можете всушност би можеле да се повлече во внатрешноста на функција 136 00:05:47,860 --> 00:05:49,020 и да видиме што се случува. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Значи, следниот, само прескокнува следната линија, оди над функции. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Чекор. 141 00:05:55,560 --> 00:05:56,810 Овие се сите малку апстрактен. 142 00:05:56,810 --> 00:06:00,530 Значи, јас сум само ќе да се кандидира преку нив, но ќе ги видите во употреба во секунда. 143 00:06:00,530 --> 00:06:01,810 >> Чекор во функција. 144 00:06:01,810 --> 00:06:04,170 Така како што јас го кажувам, како и со Трампа, тоа ќе 145 00:06:04,170 --> 00:06:07,110 ќе ви овозможи да всушност како да сте како физички ќе влезете внатре, 146 00:06:07,110 --> 00:06:10,990 можете да се плеткаме со овие променливи, печатење што тие се, да видиме што се случува. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Листа ќе буквално само печати надвор околните код. 149 00:06:14,830 --> 00:06:17,570 Значи, ако сте вид заборавајте каде се наоѓате во вашата програма, 150 00:06:17,570 --> 00:06:19,880 или да се прашувате она што се случува околу него, 151 00:06:19,880 --> 00:06:23,790 ова само ќе се печати сегмент на сакале пет или шест линии околу неа. 152 00:06:23,790 --> 00:06:26,080 Значи, можете да се ориентирани за тоа каде се наоѓате. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> Печати некои променлива. 155 00:06:28,650 --> 00:06:34,590 Значи, ако имаш клучот како во Цезар, дека ние ќе се погледне. 156 00:06:34,590 --> 00:06:36,220 Може да се каже за печатење Клучни во кој било момент. 157 00:06:36,220 --> 00:06:40,070 Тоа ќе ви кажам она што вредност е така дека, можеби некаде по патот, 158 00:06:40,070 --> 00:06:42,070 ви затирали вашиот клуч. 159 00:06:42,070 --> 00:06:45,495 Ти всушност може да се каже дека поради што всушност може да се забележи дека вредноста. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> Во локалните жители, само отпечатоци вашите локални променливи. 162 00:06:48,780 --> 00:06:53,120 Така, во секое време сте во рамките на еден циклус, а вие само сакате да видите како, ох. 163 00:06:53,120 --> 00:06:54,270 Што ми е јас? 164 00:06:54,270 --> 00:06:57,020 Што е ова клучните вредност дека јас се иницијализира тука? 165 00:06:57,020 --> 00:06:58,537 Која е пораката во овој момент? 166 00:06:58,537 --> 00:07:00,370 Тоа само ќе печати сите на оние кои се, така што ќе 167 00:07:00,370 --> 00:07:04,330 не мора да се индивидуално велат, печатење И. Печати порака. 168 00:07:04,330 --> 00:07:04,970 Печати клуч. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 И потоа екранот. 171 00:07:07,700 --> 00:07:10,370 Она што го прави тоа е како да чекор преку програмата, 172 00:07:10,370 --> 00:07:13,980 едноставно ќе бидете сигурни дека тоа е прикажување на некои одредени променлива 173 00:07:13,980 --> 00:07:14,780 во секоја точка. 174 00:07:14,780 --> 00:07:17,160 Така што ќе also-- --Он е вид на кратенка каде 175 00:07:17,160 --> 00:07:19,530 вие не мора да продолжувам да одам како, ох. 176 00:07:19,530 --> 00:07:23,150 Печати клуч или Печати I. Тоа само автоматски ќе го направи тоа за вас. 177 00:07:23,150 --> 00:07:25,959 >> Значи, со тоа, ние ќе да се види како тоа оди. 178 00:07:25,959 --> 00:07:28,000 Одам да се обиде и да се префрлате во текот на мојот уред. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Види дали можам да го направите тоа. 181 00:07:31,271 --> 00:07:31,770 Сите. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Ние сме само ќе да го огледалото. 184 00:07:42,370 --> 00:07:44,530 Там ништо луд на мојот лаптоп относнотова. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 ОК. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 Ова треба да биде оваа. 189 00:08:01,054 --> 00:08:01,795 Тоа е толку мал. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Ајде да видиме дали можеме да го направите тоа. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> ОК. 194 00:08:10,940 --> 00:08:15,305 Алис е очигледно борат тука само малку, 195 00:08:15,305 --> 00:08:17,995 но ние ќе го добие во Моменто. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 ОК. 198 00:08:22,020 --> 00:08:25,900 Ние сме само ќе се зголеми ова. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 ОК. 201 00:08:29,380 --> 00:08:31,679 Може секој вид види тоа? 202 00:08:31,679 --> 00:08:32,470 Можеби малку? 203 00:08:32,470 --> 00:08:33,594 Знам дека е малку мала. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Вие не може едноставно да дознаам како да се направи ова поголем. 206 00:08:37,530 --> 00:08:38,350 Ако некој знае. 207 00:08:38,350 --> 00:08:40,309 Дали некој знае како да го направи тоа поголеми? 208 00:08:40,309 --> 00:08:40,932 ОК. 209 00:08:40,932 --> 00:08:42,140 Ние си оди за да се тркалаат со него. 210 00:08:42,140 --> 00:08:45,801 Не е важно относнотова бидејќи тоа е само тоа е код кој вие момци треба 211 00:08:45,801 --> 00:08:46,300 имате. 212 00:08:46,300 --> 00:08:48,310 >> Што е уште поважно е терминалот тука. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 И ние го имаме тука Зошто е толку мал? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Поставувања. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 Ох. 219 00:09:08,420 --> 00:09:09,500 Точно Ајк. 220 00:09:09,500 --> 00:09:10,880 Како е ова? 221 00:09:10,880 --> 00:09:11,770 Од таму. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Дали е тоа подобро за сите? 224 00:09:21,810 --> 00:09:22,525 ОК ,. 225 00:09:22,525 --> 00:09:23,025 Кул. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Вие знаете кога сте во CS класа технички тешкотии 228 00:09:28,220 --> 00:09:32,971 се вид на дел од the-- Значи, ајде да се расчисти ова. 229 00:09:32,971 --> 00:09:33,470 ОК. 230 00:09:33,470 --> 00:09:38,060 Значи, токму овде, во дел, кој имавме тука. 231 00:09:38,060 --> 00:09:40,830 Цезар е извршна датотека. 232 00:09:40,830 --> 00:09:41,800 Па јас ја направив. 233 00:09:41,800 --> 00:09:46,370 Значи, една работа да се реализираат со GDB е дека тоа што работи на извршна датотека. 234 00:09:46,370 --> 00:09:48,040 Значи, вие не може да се пушта и на dotsy. 235 00:09:48,040 --> 00:09:50,532 Мора да всушност направи Осигурајте се дека вашиот код подготвува, 236 00:09:50,532 --> 00:09:51,865 и дека тоа, всушност, може да се работи. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Значи, бидете сигурни дека ако тоа не се случи состави, да го да ги собере, 239 00:09:56,186 --> 00:09:57,810 така што ќе вид на може да се поминува низ него. 240 00:09:57,810 --> 00:10:04,590 Значи, да се започне GDB, сите што го правите, Gloria тип GDB, а потоа само на 241 00:10:04,590 --> 00:10:06,250 датотеката што сакате. 242 00:10:06,250 --> 00:10:08,240 Јас секогаш misspell Цезар. 243 00:10:08,240 --> 00:10:11,730 Но вие сакате да бидете сигурни бидејќи тоа е извршна, 244 00:10:11,730 --> 00:10:14,210 точка блиц ти, така што значи си оди 245 00:10:14,210 --> 00:10:19,240 да се кандидира CSI си оди да се изврши ова фајлови или со дебагерот. 246 00:10:19,240 --> 00:10:19,910 ОК. 247 00:10:19,910 --> 00:10:22,885 Значи, вие го направите тоа, ќе го добиете овој вид на глупост. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Тоа е само сите работи во врска дебагерот. 250 00:10:25,750 --> 00:10:28,200 Вие навистина не треба да се се грижи за тоа во моментов. 251 00:10:28,200 --> 00:10:31,460 И како што гледате, имаме оваа отворен круглые скобки, БДП, во близина круглые скобки, 252 00:10:31,460 --> 00:10:34,690 и само вид на личи нашите командната линија, нели? 253 00:10:34,690 --> 00:10:37,010 >> Значи, она што ние сакаме да do-- --So, Првото нешто 254 00:10:37,010 --> 00:10:39,570 ако сакаме да се избере место да го скрши. 255 00:10:39,570 --> 00:10:42,332 Па, таму е еден ошибка во оваа Цезар програма 256 00:10:42,332 --> 00:10:44,290 дека јас се воведе, дека ние си оди за да дознаете. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Тоа Што го прави тоа е што е потребно за внесување Barfoo во сите капи, и поради некоја причина 259 00:10:56,350 --> 00:11:01,950 тоа не го менува A. Тоа само остава тоа сам, е се друго точни, 260 00:11:01,950 --> 00:11:03,980 но втората буква Останува непроменет. 261 00:11:03,980 --> 00:11:07,120 Значи, ние се случува да се обиде и дознаам зошто тоа е. 262 00:11:07,120 --> 00:11:10,440 Значи, првото нешто што обично сакате да го направите секогаш кога ќе започне на GDB 263 00:11:10,440 --> 00:11:12,010 е да дознаам каде да ја скрши. 264 00:11:12,010 --> 00:11:14,956 >> Па Цезар е прилично кратка програма. 265 00:11:14,956 --> 00:11:16,330 Ние само една функција, нели? 266 00:11:16,330 --> 00:11:18,520 Она што беше нашата функција во Цезар? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Там е само една функција, Главна нели? 269 00:11:24,350 --> 00:11:26,490 Main е функција за сите ваши програми. 270 00:11:26,490 --> 00:11:29,230 Ако не имаат Главна, би можел да да биде малку загрижени токму сега, 271 00:11:29,230 --> 00:11:31,000 но се надевам дека сите сте имале Главна таму. 272 00:11:31,000 --> 00:11:34,150 Значи, она што можеме да направиме е можеме да само се скрши Мајна, исто како што. 273 00:11:34,150 --> 00:11:35,190 Значи, што се вели, во ред. 274 00:11:35,190 --> 00:11:37,430 Ние се постави нашата точка на прекин еден таму. 275 00:11:37,430 --> 00:11:42,870 >> Значи, сега е да се запамети е Цезар зема една командната линија аргумент право 276 00:11:42,870 --> 00:11:45,150 и ние не го направиле тоа никаде сеуште. 277 00:11:45,150 --> 00:11:47,560 Значи, она што го правите е кога вие, всушност, оди да се кандидира 278 00:11:47,560 --> 00:11:51,540 програма, секоја програма што сте работи во GDB дека треба командната линија 279 00:11:51,540 --> 00:11:55,010 аргументи, си оди за да влез кога за првпат на проектот трчање. 280 00:11:55,010 --> 00:11:59,280 Значи, во овој случај, тоа го правиме Стартувај со клуч на три. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 И тоа, всушност, ќе започне. 283 00:12:02,040 --> 00:12:08,480 >> Значи, ако видите тука, имаме Ако RC не е еднакво на 2. 284 00:12:08,480 --> 00:12:12,210 Значи, ако вие момци сите имаат таа датотека дека јас испрати до 285 00:12:12,210 --> 00:12:15,100 ќе видите дека тоа е како првата линија нашата главна функција, нели? 286 00:12:15,100 --> 00:12:17,890 Тоа е проверка за да види дали имаме точниот број на аргументи. 287 00:12:17,890 --> 00:12:20,620 Значи, ако се прашувате ако RC е точна, 288 00:12:20,620 --> 00:12:23,250 можете да направите нешто исто како Печати РК. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC е две, што е она што го очекуваше, нели? 291 00:12:28,640 --> 00:12:32,010 >> Значи, можеме да одиме понатаму, и продолжи преку. 292 00:12:32,010 --> 00:12:33,200 Значи, имаме некои клучни таму. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 И ние може да испечатите нашите клучни да бидете сигурни дека тоа е точно. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Интересно. 297 00:12:39,500 --> 00:12:41,210 Не е сосема она што го очекуваше. 298 00:12:41,210 --> 00:12:44,810 Значи, една работа да се реализира с GDB, исто така, е 299 00:12:44,810 --> 00:12:49,000 дека тоа не е се додека вие всушност хит Следната, дека линијата дека сте само видов 300 00:12:49,000 --> 00:12:50,720 е, всушност, изврши. 301 00:12:50,720 --> 00:12:53,870 Па, во овој случај клуч се уште не е доделен. 302 00:12:53,870 --> 00:12:57,050 Значи, Клучни некои ѓубре вредност кои ги гледате на дното таму. 303 00:12:57,050 --> 00:13:03,680 Негативни 120-- $ --Он е една милијарда и нешто чудно работите нели? 304 00:13:03,680 --> 00:13:05,340 Тоа не е клуч, кој што очекувавме. 305 00:13:05,340 --> 00:13:10,720 Но, ако ние хит на Next, и тогаш ние се обиде и печатење клуч, тоа е три. 306 00:13:10,720 --> 00:13:11,710 >> Секој се види тоа? 307 00:13:11,710 --> 00:13:13,780 Значи, ако добие нешто дека сте како, почекајте. 308 00:13:13,780 --> 00:13:15,540 Оваа е целосно не е во ред, и јас не знам 309 00:13:15,540 --> 00:13:20,150 како ова ќе се случи, бидејќи сите сакам да направите е да доделите број, променлива, 310 00:13:20,150 --> 00:13:22,900 обидете се притискање Следно, се обиде печатење тоа повторно, и да видиме дали работи. 311 00:13:22,900 --> 00:13:27,830 Бидејќи тоа е само ќе треба да се изврши и всушност додели нешто откако ќе 312 00:13:27,830 --> 00:13:29,340 хит на Next. 313 00:13:29,340 --> 00:13:30,336 Да има смисла за секого? 314 00:13:30,336 --> 00:13:30,836 Ух нели? 315 00:13:30,836 --> 00:13:33,220 >> ЗВУЧНИЦИ 2: Кога ќе случаен избор броеви што значи тоа? 316 00:13:33,220 --> 00:13:34,790 >> ЗВУЧНИЦИ 1: Тоа е само случајна. 317 00:13:34,790 --> 00:13:35,710 Тоа е само ѓубре. 318 00:13:35,710 --> 00:13:38,320 Тоа е само нешто што вашиот компјутерски случајно ќе го доделите. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Кул. 321 00:13:40,220 --> 00:13:45,760 Значи, сега ние може да се движи преку, и така сега имаме овој обичен текст GetString. 322 00:13:45,760 --> 00:13:48,600 Значи, дозволете ми да се воведе она што ќе се случи кога ние хит Следна тука. 323 00:13:48,600 --> 00:13:51,320 Нашите GDB вид исчезнува, нели? 324 00:13:51,320 --> 00:13:55,720 Тоа е затоа што GetString сега е извршување, нели? 325 00:13:55,720 --> 00:14:01,460 Значи, кога видовме обичен текст е еднаква на GetString, отворен круглые скобки и круглые скобки, 326 00:14:01,460 --> 00:14:04,380 и ние хит Next, која има всушност извршува сега. 327 00:14:04,380 --> 00:14:06,580 Значи, тоа е на чекање за ни да го внесете нешто. 328 00:14:06,580 --> 00:14:13,560 >> Значи, ние се случува да се влезни нашата храна кои е она што е неуспехот како што ви кажав 329 00:14:13,560 --> 00:14:18,020 и дека само вели дека тоа е заврши извршување, дека затворен 330 00:14:18,020 --> 00:14:19,980 заградата значи дека е излегување надвор од таа јамка. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Значи, ние може да ја погоди Next, и сега, како што јас сум сигурни дека сте запознаени со Цезар, 333 00:14:25,420 --> 00:14:27,260 ова е, она што е оваа линија случува да се направи. 334 00:14:27,260 --> 00:14:32,030 Тоа е за Int I е еднакво на 0, N е еднаква на Strlen, обичен текст, а потоа 335 00:14:32,030 --> 00:14:33,960 I е помала n, I, плус, плус. 336 00:14:33,960 --> 00:14:35,210 Што е овој циклус се случува да направам? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Отвори вашата порака. 339 00:14:39,160 --> 00:14:39,770 Кул. 340 00:14:39,770 --> 00:14:41,330 Значи, ајде да почнете да го правите тоа. 341 00:14:41,330 --> 00:14:47,210 >> Значи, треба оваа состојба одговара, за нашите првиот? 342 00:14:47,210 --> 00:14:52,250 Ако тоа е Б, тоа е обичен текст I. Ние може да се добијат информации за нашите локални жители. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Па, I е нула, и ако шест, што ние очекуваме и нашите клучни е три. 345 00:14:57,970 --> 00:14:59,227 Сите кои имаат смисла, нели? 346 00:14:59,227 --> 00:15:01,310 Тие бројки се сите токму она што треба да биде. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Значи, потпевнувам? 349 00:15:03,870 --> 00:15:05,620 ЗВУЧНИЦИ 3: Имам случајни броеви за рудникот. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 ЗВУЧНИЦИ 1: Па, можеме да --мы check-- може да разговарате во врска со тоа во една секунда. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Но ќе треба да се добива ова. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Значи, ако имаме капитал B за првото еден, 356 00:15:20,130 --> 00:15:22,080 оваа состојба треба да го фати, нели? 357 00:15:22,080 --> 00:15:27,120 Значи, ако ние хит Следниот, ние се види дека овој Ако всушност извршува. 358 00:15:27,120 --> 00:15:29,220 Затоа што ако ти си по заедно во вашиот код, 359 00:15:29,220 --> 00:15:33,460 оваа линија тука, каде обичен текст јас се заменува со оваа аритметика, 360 00:15:33,460 --> 00:15:35,720 само извршува ако Ако состојба е точно нели? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB е само нема да ти покаже работи кои се всушност извршување. 363 00:15:40,240 --> 00:15:45,140 Затоа, ако тоа Ако состојбата не беше исполнет, тоа е само ќе да го прескокнете до следната линија. 364 00:15:45,140 --> 00:15:46,540 ОК? 365 00:15:46,540 --> 00:15:48,510 Значи, ние го имаме тоа. 366 00:15:48,510 --> 00:15:51,171 Оваа заградата значи дека е затворен надвор од таа јамка сега. 367 00:15:51,171 --> 00:15:52,420 Значи, тоа се случува да се започне одново. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Само како тоа. 370 00:15:56,280 --> 00:15:59,120 Значи, тоа може да се добие информации за нашите локални жители тука, 371 00:15:59,120 --> 00:16:02,575 и гледаме дека нашиот прв писмо е променет, нели? 372 00:16:02,575 --> 00:16:05,150 Тоа е сега е, како што треба да биде. 373 00:16:05,150 --> 00:16:07,360 Значи, можеме да продолжиме натаму. 374 00:16:07,360 --> 00:16:08,500 >> И ние имаме оваа проверка. 375 00:16:08,500 --> 00:16:09,916 И оваа проверка треба да се работи, нели? 376 00:16:09,916 --> 00:16:12,570 Тоа е A. треба да се менува три писма напред. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Но, ако забележите, ние се добие нешто различно. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Значи во овој случај тука, го улови него, и така оваа линија извршува, 381 00:16:22,860 --> 00:16:28,620 кој е изменета нашата B. Но, во овој случај тука, 382 00:16:28,620 --> 00:16:32,860 имаме дека тоа само да го прескокнат, и отиде до [? L Сифф. ?] 383 00:16:32,860 --> 00:16:34,660 Така нешто се случува таму. 384 00:16:34,660 --> 00:16:37,780 Она што е ти го кажувам е дека, знаеме дека тоа треба да се фати тука, 385 00:16:37,780 --> 00:16:39,200 но тоа не е. 386 00:16:39,200 --> 00:16:42,210 Секој може да се види она што нашите Проблемот е во тоа што линијата? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Тоа е многу минута нешто. 389 00:16:46,969 --> 00:16:48,510 И ти исто така може да се погледне во вашиот код. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Тоа е, исто така, line-- заборават што линија е во there-- но тоа е во [нечујни]. 392 00:16:54,940 --> 00:16:55,480 Да? 393 00:16:55,480 --> 00:16:58,639 >> SPEAKER 4: Се наоѓа на поголема од страница, ако го прочитате во книгата. 394 00:16:58,639 --> 00:16:59,430 ЗВУЧНИЦИ 1: Токму така. 395 00:16:59,430 --> 00:17:02,620 Значи, дебагерот не можеше да каже ти тоа, но на дебагерот 396 00:17:02,620 --> 00:17:05,880 може да ви се фаќате за линија дека знаете не функционира. 397 00:17:05,880 --> 00:17:09,319 И, понекогаш, кога особено подоцна во текот на семестарот, кога 398 00:17:09,319 --> 00:17:12,910 си имаш работа со сто, сто неколку линии на код, и вие 399 00:17:12,910 --> 00:17:16,190 не знам од каде тоа е не, ова е одличен начин да го направи тоа. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Така, ние откривме нашите ошибка. 402 00:17:18,989 --> 00:17:21,530 Можете да го поправите во датотеката, а потоа можете да го кандидира повторно, 403 00:17:21,530 --> 00:17:23,029 и сè ќе работи совршено. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 И најголемата работа е ова може да изгледа како, во ред. 406 00:17:30,590 --> 00:17:31,090 Да. 407 00:17:31,090 --> 00:17:31,370 Кул. 408 00:17:31,370 --> 00:17:32,744 Ти знаеше дека она што го барате. 409 00:17:32,744 --> 00:17:34,910 Значи, ти знаеше што да прави. 410 00:17:34,910 --> 00:17:39,021 >> GDB може да биде супер корисни, бидејќи вие може да испечатите сите овие работи што ви 411 00:17:39,021 --> 00:17:39,520 не би. 412 00:17:39,520 --> 00:17:41,160 Тоа е многу повеќе корисни од printf. 413 00:17:41,160 --> 00:17:43,440 Колкумина од вас го користите како printf изјави 414 00:17:43,440 --> 00:17:46,200 да дознаам каде ошибка е, нели? 415 00:17:46,200 --> 00:17:48,450 Значи, со ова, вие не мора да се задржи ќе се вратам, 416 00:17:48,450 --> 00:17:51,139 и се допаѓа коментирајќи во Printf, или коментирате, 417 00:17:51,139 --> 00:17:52,930 и дознаам што што треба да се печати. 418 00:17:52,930 --> 00:17:55,670 Ова всушност само ти овозможува да чекор по чекор, се печати работи 419 00:17:55,670 --> 00:18:00,000 како си оди преку, па така, можете да набљудуваат како тие промени во реално време, 420 00:18:00,000 --> 00:18:02,190 како вашата програма работи. 421 00:18:02,190 --> 00:18:04,390 >> И тоа не се малку малку се користи за добивање. 422 00:18:04,390 --> 00:18:07,850 Јас високо ќе им препорачаат само вид на тоа што се малку фрустрирани со тоа 423 00:18:07,850 --> 00:18:08,930 за сега. 424 00:18:08,930 --> 00:18:13,450 Ако потрошите еден час во текот на следната недела за учење како да се користи GDB, 425 00:18:13,450 --> 00:18:16,140 ќе се спаси толку многу време подоцна. 426 00:18:16,140 --> 00:18:18,750 И буквално. ние им кажуваме тоа да се луѓе секоја година, 427 00:18:18,750 --> 00:18:23,890 и јас се сеќавам кога отидов со класа, јас бев како, јас ќе бидам во ред. 428 00:18:23,890 --> 00:18:24,700 Не. 429 00:18:24,700 --> 00:18:27,030 PSET 6 дојде на и јас бев како, јас сум ќе научат 430 00:18:27,030 --> 00:18:29,500 како да се користи GDB, бидејќи јас не знам што се случува тука. 431 00:18:29,500 --> 00:18:32,940 >> Значи, ако имате време, така користат на помали програми 432 00:18:32,940 --> 00:18:35,697 дека си оди за да биде работи, како работат 433 00:18:35,697 --> 00:18:37,530 преку нешто како Visionare, како ова. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Или ако сакате дополнителна пракса, јас сум сигурен Би можел да излезе со кабриолет програми, 436 00:18:42,850 --> 00:18:45,300 за да можете да debug ако сакате. 437 00:18:45,300 --> 00:18:49,300 >> Но ако сте само да потрае некое време да се добие навикнеш на него, само се позанимавам со неа, 438 00:18:49,300 --> 00:18:50,550 тоа навистина ќе ви служи добро. 439 00:18:50,550 --> 00:18:52,591 И тоа е навистина еден од работи кои само 440 00:18:52,591 --> 00:18:57,340 мора да се обидат и да ја добиете вашата раце валкани со, пред навистина да го разбираат. 441 00:18:57,340 --> 00:19:02,090 Јас навистина само го разбрав еднаш Морав да debug работите со него, 442 00:19:02,090 --> 00:19:08,170 и тоа е многу поубаво да имаме идеја за како да се debug порано отколку подоцна. 443 00:19:08,170 --> 00:19:08,850 ОК. 444 00:19:08,850 --> 00:19:09,625 Кул. 445 00:19:09,625 --> 00:19:12,960 Знам дека е вид на како несреќата се разбира во GDB, 446 00:19:12,960 --> 00:19:16,400 и јас дефинитивно ќе работи на добивање на овие да изгледаат поголеми следниот пат. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Кул. 449 00:19:18,280 --> 00:19:20,390 >> Значи, ако ние се вратиме на нашите PowerPoint. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Е ова се случува да се работи? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 AWH. 454 00:19:30,210 --> 00:19:31,101 Да. 455 00:19:31,101 --> 00:19:31,600 ОК. 456 00:19:31,600 --> 00:19:35,480 Значи, ако некогаш треба било која од оние пак, има листа. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Па Бинарни Барај, кој секој се сеќава на големиот спектакл на Давид 459 00:19:40,830 --> 00:19:42,259 расцепен телефон книги на половина. 460 00:19:42,259 --> 00:19:44,050 Јас навистина не се добие телефон книги веќе, 461 00:19:44,050 --> 00:19:46,530 затоа што како, каде и да правите се добие телефон книги, овие денови? 462 00:19:46,530 --> 00:19:48,220 Јас навистина не знам. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Бинарни пребарување. 465 00:19:50,590 --> 00:19:52,464 Дали некој се сеќавам како Бинарни Барај дела? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Никого на сите? 468 00:19:55,220 --> 00:19:56,325 Да? 469 00:19:56,325 --> 00:19:58,283 ЗВУЧНИЦИ 5: Знаеш кога ќе се погледне кои половина 470 00:19:58,283 --> 00:20:01,146 тоа ќе биде кај, врз основа на тоа и да се ослободи од другата половина. 471 00:20:01,146 --> 00:20:01,896 >> ЗВУЧНИЦИ 1 Токму така. 472 00:20:01,896 --> 00:20:06,290 Значи, Бинарни Барај, тоа е вид на a-- --мы сакал да го наречам го раздели па владеј. 473 00:20:06,290 --> 00:20:09,170 Значи, она што ќе го направиме е ќе изгледа во средината, 474 00:20:09,170 --> 00:20:11,990 и ќе се види дали тоа се совпаѓа она што го барате. 475 00:20:11,990 --> 00:20:15,420 И ако тоа не е така, тогаш ќе се обидат да дознаам, тоа е ќе се остави 476 00:20:15,420 --> 00:20:16,450 половината или на десно половина. 477 00:20:16,450 --> 00:20:19,325 Значи, ова може да биде ако сте во потрага на нешто што е по азбучен ред, 478 00:20:19,325 --> 00:20:20,720 што гледате, ох. 479 00:20:20,720 --> 00:20:22,750 Дали Алисон дојде пред М? 480 00:20:22,750 --> 00:20:23,250 Да. 481 00:20:23,250 --> 00:20:25,030 Значи, ние се случува да се гледаат во првата половина. 482 00:20:25,030 --> 00:20:26,450 >> Или тоа би можело да биде како со броеви. 483 00:20:26,450 --> 00:20:28,830 Нешто што можете да споредуваат, тоа може да бидат подредени. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Можете да го користите бинарни пребарување на. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Значи, некој се сеќавам ова графика или што е ова? 488 00:20:37,455 --> 00:20:39,520 Тоа е асимптотска Сложеност. 489 00:20:39,520 --> 00:20:42,830 Па, оваа крива само опишува колку долго 490 00:20:42,830 --> 00:20:46,230 ви е потребно да се реши проблемот, како да се зголеми бројот на работи 491 00:20:46,230 --> 00:20:47,090 дека сте користење. 492 00:20:47,090 --> 00:20:51,260 >> Па, ние треба N, кој е линијски време. 493 00:20:51,260 --> 00:20:54,560 Ако N текот на две, што е малку подобро, се уште расте супер брз. 494 00:20:54,560 --> 00:20:58,360 И тогаш имаме најава, која е она што го сметаме Бинарни пребарување. 495 00:20:58,360 --> 00:21:03,630 Ако ние се забележи, како вашиот проблем добива многу и многу поголема, 496 00:21:03,630 --> 00:21:06,600 времето кое е потребно да го реши навистина не се зголеми тоа многу. 497 00:21:06,600 --> 00:21:09,010 Тоа е како да се спореди тука во почетокот. 498 00:21:09,010 --> 00:21:10,060 Вие сте како, во ред. 499 00:21:10,060 --> 00:21:13,000 Нешто тука навистина не важно која ние ги користиме, 500 00:21:13,000 --> 00:21:16,220 но ќе го добиете до еден милион, милијарди долари. 501 00:21:16,220 --> 00:21:20,010 Вие се обидувате да најдете some-- --you're се обидува да најде игла во haystack. 502 00:21:20,010 --> 00:21:21,550 >> Мислам дека сакате овој проблем. 503 00:21:21,550 --> 00:21:25,850 Сакате оваа комплексност, не линеарна, бидејќи за сите вас 504 00:21:25,850 --> 00:21:30,049 знаете вашата gonna се бараат преку секој поединец игла, нешто од сено, 505 00:21:30,049 --> 00:21:31,340 обидувајќи се да се погледне за вашиот игла. 506 00:21:31,340 --> 00:21:34,730 И тоа не е премногу забавно во моето мислење. 507 00:21:34,730 --> 00:21:35,500 Ми се допаѓа брзо. 508 00:21:35,500 --> 00:21:36,620 Ми се допаѓа ефикасни. 509 00:21:36,620 --> 00:21:40,450 И како работливост студенти вас момци се, знаеш работите попаметно, 510 00:21:40,450 --> 00:21:43,010 не потешко вид работа, како можете може да се направи на овие алгоритми. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Значи, ние се случува да одиме преку само еден брз пример. 513 00:21:47,910 --> 00:21:51,090 Мислам дека вие момци треба да имаат страна на Бинарни Барај, 514 00:21:51,090 --> 00:21:54,352 но во случај некој е малку нејасни, сакаат да го засилат, 515 00:21:54,352 --> 00:21:56,310 ние се случува да се само оди преку еден пример тука. 516 00:21:56,310 --> 00:21:59,490 Значи, ние сме во потрага за ако низата содржи седум. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Значи, првото нешто што го правиме е погледне во средината, нели? 519 00:22:06,010 --> 00:22:09,340 И, исто така, си оди за да се кодирање Бинарни Барај во само една секунда. 520 00:22:09,340 --> 00:22:11,310 Значи, тоа се случува да биде забавно. 521 00:22:11,310 --> 00:22:13,710 Значи ние се погледне во средината малку низи 3. 522 00:22:13,710 --> 00:22:15,501 Дали 3 еднакви 7? 523 00:22:15,501 --> 00:22:16,000 Не го прави тоа. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 Тоа е шест. 526 00:22:19,550 --> 00:22:21,480 Па, тоа е помалку од или поголема од седум? 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Помалку од. 529 00:22:23,960 --> 00:22:24,570 Да. 530 00:22:24,570 --> 00:22:25,170 Ница работа момци. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Се чувствувам ми се допаѓа мене да има бонбони, бидејќи јас 533 00:22:27,360 --> 00:22:29,460 сакате да го исфрли во дворовите. 534 00:22:29,460 --> 00:22:30,270 Тоа е она што јас идам да се направи следната недела. 535 00:22:30,270 --> 00:22:31,436 Тоа ќе ви го задржи момци остар. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Значи, ние фрлаат дека првата половина, нели? 538 00:22:34,690 --> 00:22:35,670 тоа беше помалку од. 539 00:22:35,670 --> 00:22:39,325 ние знаеме дека сè на тој левата страна 540 00:22:39,325 --> 00:22:41,700 се случува да биде помал од она ние сме всушност барате. 541 00:22:41,700 --> 00:22:43,491 Значи, нема потреба да обрне внимание на тоа. 542 00:22:43,491 --> 00:22:45,120 Само да заборавите за неа. 543 00:22:45,120 --> 00:22:48,720 Значи, сега ние се погледне во нашите десната страна, и ние се погледне во средината таму, 544 00:22:48,720 --> 00:22:50,510 и сега е девет. 545 00:22:50,510 --> 00:22:55,510 Значи, 9 is-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Поголема од она што ние сме во потрага по, нели? 547 00:22:57,470 --> 00:22:59,860 Значи, ние се случува да се фрли намалува се за да на десно. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Како тоа. 550 00:23:01,940 --> 00:23:03,700 Сега, сите ние си замина со е еден. 551 00:23:03,700 --> 00:23:07,760 Значи ние се провери, дали е ова едно она што ние го барате? е. 552 00:23:07,760 --> 00:23:08,970 Ние се најде она што сакавме. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Значи ние сме направиле. 555 00:23:11,690 --> 00:23:12,550 Билинейна пребарување. 556 00:23:12,550 --> 00:23:15,740 >> И ако забележите, ние имаше седум влезови таму. 557 00:23:15,740 --> 00:23:24,320 Тоа само ни го зеде како три пати, но ако правиш како милијарди долари, 558 00:23:24,320 --> 00:23:28,190 вие момци се знае колку чекори што би се земе ако имавме четири милијарди нешта? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Било нагаѓања? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Тоа е 32. 563 00:23:33,960 --> 00:23:37,110 32 чекори за да се најде нешто во четири милијарди 564 00:23:37,110 --> 00:23:39,650 елемент низа, бидејќи на власта на две деца. 565 00:23:39,650 --> 00:23:43,550 Па две е до 32, не е до четири милијарда. 566 00:23:43,550 --> 00:23:50,430 >> Така доста луд како сте се уште во рамките на како прилично мал број на чекори 567 00:23:50,430 --> 00:23:52,650 да се најде нешто во четири милијарди елементи. 568 00:23:52,650 --> 00:23:55,730 Така, на тој белешка, ние сме се случува да се код овој 569 00:23:55,730 --> 00:23:58,950 па вие момци всушност може вид на се види како тоа функционира. 570 00:23:58,950 --> 00:24:01,520 Сите права, па вие момци можат да се код. 571 00:24:01,520 --> 00:24:04,100 Одам да ви момци нека се зборува за малку. 572 00:24:04,100 --> 00:24:07,970 Да се ​​запознаат луѓето околу вас, што е она што некој сака од последниот дел. 573 00:24:07,970 --> 00:24:10,280 >> Така да се запознаат со луѓето околу вас. 574 00:24:10,280 --> 00:24:11,305 Се зборува за малку. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 И сите сакам од тебе момци во моментов е само 577 00:24:15,730 --> 00:24:17,575 обидете се да се создаде преглед на псевдокод. 578 00:24:17,575 --> 00:24:18,075 ОК? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Стој. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Сите сакам од вас момци е ти си само ќе да се пополни во ова додека случајот. 583 00:24:29,520 --> 00:24:32,170 Па јас го поставите овие горниот и долните граници во кои 584 00:24:32,170 --> 00:24:35,250 претставуваат на почетокот и крајот на нашето низа. 585 00:24:35,250 --> 00:24:40,440 И ви се случува да всушност поминете и да дознаам 586 00:24:40,440 --> 00:24:42,470 она што го правиме во рамките на ова додека јамка. 587 00:24:42,470 --> 00:24:45,810 >> Значи, ако можете да дознаам out-- имам навестување there-- она ​​што се случаите 588 00:24:45,810 --> 00:24:46,640 дека имаме тука? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Значи, ако сакате да дознаам случаи, ние ќе Псевдокод оние 591 00:24:51,560 --> 00:24:53,350 а потоа ние всушност ќе ги код. 592 00:24:53,350 --> 00:24:55,330 И тоа се случува да биде, јас мислам, се надевам дека тоа ќе 593 00:24:55,330 --> 00:24:56,788 да биде малку полесно отколку што очекувате. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Затоа што тоа не е толку многу код, всушност, што е навистина кул. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> Мм хм? 598 00:25:35,018 --> 00:25:35,893 >> СТУДЕНТСКИ: [нечујни]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 Инструктор: Да. 601 00:25:37,650 --> 00:25:38,595 Существовал нешто да се најде во средината. 602 00:25:38,595 --> 00:25:39,552 >> СТУДЕНТСКИ: Значи можеме да го користиме тоа. 603 00:25:39,552 --> 00:25:39,770 ОК. 604 00:25:39,770 --> 00:25:40,603 >> Инструктор: Совршен. 605 00:25:40,603 --> 00:25:42,950 Значи тоа е првото нешто што треба да направите. 606 00:25:42,950 --> 00:25:44,330 Па најдете средината. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Одлично. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Па имате идеја за тоа како ние би можеле да всушност се најде на средината со код? 611 00:25:55,010 --> 00:25:55,980 >> СТУДЕНТСКИ: Да. 612 00:25:55,980 --> 00:25:57,000 n над 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 Инструктор: Значи n над 2. 615 00:25:59,500 --> 00:26:05,170 Така една работа е да се запамети е дека вашиот горниот и долниот границите се промени. 616 00:26:05,170 --> 00:26:08,110 Ние ги свива дел на низата ние сме во потрага да. 617 00:26:08,110 --> 00:26:11,970 Па n над 2 ќе работи само за првото нешто што го правиме. 618 00:26:11,970 --> 00:26:17,810 Па изведува горниот и долниот дел во предвид, како би можеле да ги добиеме тие средината елемент? 619 00:26:17,810 --> 00:26:20,640 Затоа што ние сакаме средината помеѓу горниот и долниот дел, така? 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 Мм хм? 622 00:26:22,494 --> 00:26:23,369 >> СТУДЕНТСКИ: [нечујни]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> Инструктор: Значи имаме некои средината. 625 00:26:28,080 --> 00:26:32,730 И тоа ќе биде плус горниот пониски над 2. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Страшни. 628 00:26:35,690 --> 00:26:36,570 Там одиме. 629 00:26:36,570 --> 00:26:37,280 Една линија надолу. 630 00:26:37,280 --> 00:26:38,560 Вие момци се на вашиот начин. 631 00:26:38,560 --> 00:26:41,400 Па сега дека ние имаме средината, што сакаме да направите? 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 Само во целина. 634 00:26:45,900 --> 00:26:47,734 Вие не треба да го код. 635 00:26:47,734 --> 00:26:48,335 Да. 636 00:26:48,335 --> 00:26:49,210 СТУДЕНТСКИ: [нечујни]? 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 Инструктор: Значи тоа е плус затоа што ти си наоѓање на среден помеѓу двете 639 00:27:10,310 --> 00:27:10,810 од нив. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Значи, ако мислите на нив како вид на зголемување на од двете страни, 642 00:27:17,370 --> 00:27:21,640 се размислува за тоа како да се пријде средината, сакате се допаѓа. 643 00:27:21,640 --> 00:27:27,150 Па ако беа на двете страни на средината, а ние имаме како 5 и 7. 644 00:27:27,150 --> 00:27:31,440 Кога ќе им додадете заедно вас добијат 12, ќе ја подели со 2, е 6. 645 00:27:31,440 --> 00:27:33,726 >> Понекогаш тоа е тешко да се објасни зошто тоа функционира, 646 00:27:33,726 --> 00:27:35,600 но ако работите преку пример, понекогаш, 647 00:27:35,600 --> 00:27:37,962 тоа ќе ви помогне да дознаам ако тоа треба да бидат плус или минус. 648 00:27:37,962 --> 00:27:38,846 Да. 649 00:27:38,846 --> 00:27:40,830 >> СТУДЕНТСКИ: [нечујни] токму во средината 650 00:27:40,830 --> 00:27:43,950 ако тие имале случај кога има многу помал број 651 00:27:43,950 --> 00:27:45,860 и како еден голем број? 652 00:27:45,860 --> 00:27:49,750 >> Инструктор: Значи се што ви треба е на средината на низата. 653 00:27:49,750 --> 00:27:53,010 Значи, ако сте имале еден куп мали броеви а потоа еден навистина голем број 654 00:27:53,010 --> 00:27:54,799 на крајот, не е битно. 655 00:27:54,799 --> 00:27:56,840 Сè што е важно е дека тие се подредени, вие само 656 00:27:56,840 --> 00:27:59,339 сакате да се погледне во средината на низа, бидејќи ти си уште 657 00:27:59,339 --> 00:28:00,700 режење вашиот проблем на половина. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Кул. 660 00:28:03,680 --> 00:28:06,430 Па сега дека имаме средината, што ќе правиме следно? 661 00:28:06,430 --> 00:28:07,150 >> СТУДЕНТСКИ: Споредба. 662 00:28:07,150 --> 00:28:08,150 Инструктор: споредуваат. 663 00:28:08,150 --> 00:28:11,670 Така се споредуваат средината value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Кул. 666 00:28:15,160 --> 00:28:17,950 Така што гледате тука имаме оваа вредност сакаме тука. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Се сеќавам ова е низа. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Па средината се однесува на индекс. 671 00:28:26,970 --> 00:28:29,785 Значи, сакаме да се направи вредности на средината. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Не заборавајте ако сакате да се споредуваат, двојно еднакви. 674 00:28:35,650 --> 00:28:38,250 Можете да направите еден е еднакво сте само ќе го превъзложите, 675 00:28:38,250 --> 00:28:41,090 а потоа, се разбира, тоа е ќе биде вредноста што сакате. 676 00:28:41,090 --> 00:28:42,300 Па не го сторат тоа. 677 00:28:42,300 --> 00:28:44,350 >> Па ние си оди за да се види дали вредностите на средината 678 00:28:44,350 --> 00:28:46,460 е еднаква на вредноста сакаме. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Не заборавајте вашите загради. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox е да заминам. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Така што ќе правиме во овој случај? 685 00:28:56,200 --> 00:28:59,360 Ако тоа е она што сакаме да се вратат? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Ние се обидуваме да се каже. 688 00:29:02,626 --> 00:29:03,440 >> СТУДЕНТ печати ја исклучи. 689 00:29:03,440 --> 00:29:05,314 >> Инструктор: Па, ние не сакаат да се печати ја исклучи. 690 00:29:05,314 --> 00:29:08,220 Па ова е bool тука, па ние сакаат да се вратат точно или неточно. 691 00:29:08,220 --> 00:29:12,280 Ние сме велејќи, е овој број [? РРА? ?] Па ако е така, 692 00:29:12,280 --> 00:29:13,788 ние едноставно се врати вистина. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Ако можам да ги запишува вистина. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> СТУДЕНТСКИ: Зошто не би ви се врати нула? 697 00:29:20,805 --> 00:29:22,930 Инструктор: така што би можеле врати нула, ако си сакал. 698 00:29:22,930 --> 00:29:26,780 Но, во овој случај, бидејќи нашите функцијата враќа bool, 699 00:29:26,780 --> 00:29:28,962 ние треба да се вратат или вистинити или лажни. 700 00:29:28,962 --> 00:29:30,920 СТУДЕНТСКИ: Кога сте велејќи рационален израз, 701 00:29:30,920 --> 00:29:33,450 може да ви го постави еднаква на лажни? 702 00:29:33,450 --> 00:29:39,860 Како ако јас сакам да кажам, ако овој услов не е исполнет, како е горната е еднаква на лажни. 703 00:29:39,860 --> 00:29:42,332 Тоа ќе се разбере ако само стави false на другата страна? 704 00:29:42,332 --> 00:29:43,040 Инструктор: Да. 705 00:29:43,040 --> 00:29:44,820 Така всушност, ако сте некогаш прави нешто 706 00:29:44,820 --> 00:29:49,600 како е на горниот или е пониска, кој се враќа точно или неточно 707 00:29:49,600 --> 00:29:53,850 а тоа е всушност лош стил на да речеме е еднакво е еднакво точно или еднаква на 708 00:29:53,850 --> 00:29:54,840 е еднаква на лажни. 709 00:29:54,840 --> 00:30:00,210 Сакате да го користите тој резултат како себеси како вашиот чек. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Не она што сакав. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 Тоа е она што сакав. 714 00:30:09,240 --> 00:30:13,205 Значи во случај од вас бараме за нешто како да се спаси оваа во в. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Значи, ако имаме int главната (празно) и нешто како ова. 717 00:30:25,150 --> 00:30:31,922 И имаш ако е горната на некои влезни и вие сте 718 00:30:31,922 --> 00:30:33,630 прашуваат дали можете да направите нешто како ова? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Нели? 721 00:30:35,679 --> 00:30:37,470 СТУДЕНТСКИ: Се обидував да го направи тоа [нечујни]. 722 00:30:37,470 --> 00:30:38,450 Затоа што ако it's-- 723 00:30:38,450 --> 00:30:39,200 Инструктор: Токму така. 724 00:30:39,200 --> 00:30:41,197 Па сакате тоа да биде лажно, нели? 725 00:30:41,197 --> 00:30:41,780 СТУДЕНТСКИ: Да. 726 00:30:41,780 --> 00:30:45,960 Инструктор: Значи во овој случај може сакате тоа да се изврши, ако тоа не е точно. 727 00:30:45,960 --> 00:30:50,510 Така кул нешто што го правите таму е ова. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Па не заборавајте извичник точка негира работи? 730 00:30:55,650 --> 00:30:58,270 Таа вели дека [нечујни] не значи. 731 00:30:58,270 --> 00:31:03,590 Значи, ако ние се погледне само овој дел тука, ќе 732 00:31:03,590 --> 00:31:05,740 велат дека евалуира до лажно како што сакате тоа да. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Не е неточно е точно кои значи ова ќе се изврши. 735 00:31:09,880 --> 00:31:11,037 Дали тоа има смисла? 736 00:31:11,037 --> 00:31:11,620 СТУДЕНТСКИ: Да. 737 00:31:11,620 --> 00:31:12,453 Инструктор: Прекрасно. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 ОК. 740 00:31:14,300 --> 00:31:16,330 Па ние само може да се врати точно во овој случај. 741 00:31:16,330 --> 00:31:20,357 Така, сега имаме две други случаи во овој случај. 742 00:31:20,357 --> 00:31:21,565 Кои се нашите два други случаи? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Ајде да го на овој начин се направи. 745 00:31:32,900 --> 00:31:40,660 Значи, да почнеме со друг ако вредностите на средината 746 00:31:40,660 --> 00:31:43,230 е помал од вредноста сакаме. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Така и нашата вредност во средината е помалку од вредноста, дека ние сме во потрага за. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Така што врзани го правите мислам ние сакаме да се ажурираат? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Горниот или долниот? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Горниот? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Па на која страна на низа ние ќе треба да се гледа во? 757 00:32:06,470 --> 00:32:07,500 >> СТУДЕНТ помал. 758 00:32:07,500 --> 00:32:09,750 >> Инструктор: Ние одиме што треба да се гледа во левата страна. 759 00:32:09,750 --> 00:32:11,120 Па што друго ако малку вредност е помала. 760 00:32:11,120 --> 00:32:14,730 Така да твојот средна вредност тука е помалку од она што го сакаме. 761 00:32:14,730 --> 00:32:17,202 Значи, сакаме да се земе десната страна на нашите низа. 762 00:32:17,202 --> 00:32:18,910 Значи ние се случува да се ажурирање на нашите долната граница. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Па ние ќе превъзложите нашите пониски. 765 00:32:23,020 --> 00:32:25,221 И што мислите пониски треба да биде? 766 00:32:25,221 --> 00:32:26,304 СТУДЕНТ средна вредност? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 Инструктор: Значи средината value-- 769 00:32:28,820 --> 00:32:30,136 СТУДЕНТ Плус 1. 770 00:32:30,136 --> 00:32:31,010 Инструктор: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Може ли некој да ми каже зошто ние го имаме тоа плус 1? 773 00:32:34,380 --> 00:32:35,730 >> СТУДЕНТСКИ [? Нема вредност?] е повеќе еднаква на неа. 774 00:32:35,730 --> 00:32:36,120 >> Инструктор: Токму така. 775 00:32:36,120 --> 00:32:38,661 Затоа што ние веќе знаете дека нашите средната вредност не е еднаква на 776 00:32:38,661 --> 00:32:42,750 тоа и ние сакаме да го исклучат од сите наредни пребарувања. 777 00:32:42,750 --> 00:32:46,360 Ако сте заборавиле дека плус 1, овој ќе се допаѓа јамка на неодредено време. 778 00:32:46,360 --> 00:32:49,620 И само ќе бидат фатени во бесконечна јамка и тогаш ќе сегментации 779 00:32:49,620 --> 00:32:50,370 и работите одат лошо. 780 00:32:50,370 --> 00:32:54,780 Па секогаш да бидете сигурни дека не сте вклучувајќи го и вредност која вие само 781 00:32:54,780 --> 00:32:55,380 погледна. 782 00:32:55,380 --> 00:32:58,530 Па ние се грижи за тоа со плус 1. 783 00:32:58,530 --> 00:33:04,840 >> Така, сега имаме нашата последна состојба кој јас секогаш за безбедност на доброто 784 00:33:04,840 --> 00:33:12,664 можете да проверите тука, друго ако вредноста на средината е поголема од вредноста 785 00:33:12,664 --> 00:33:13,163 сакаме. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Тоа значи дека ние сакаме левата рака половина. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Така што оној што ќе се дојде до ажурирање? 790 00:33:23,260 --> 00:33:23,760 Горниот. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 И она што е ова се случува да се изедначи? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Средниот минус 1, бидејќи, се разбира, ние сакаме 795 00:33:33,690 --> 00:33:38,370 да бидете сигурни дека ние не сме гледајќи дека средната вредност повторно. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 А потоа ние го имаме. 798 00:33:45,110 --> 00:33:45,610 Тоа е тоа. 799 00:33:45,610 --> 00:33:46,820 Тоа е сите бинарни пребарување е. 800 00:33:46,820 --> 00:33:48,190 Тоа не е толку лошо, нели? 801 00:33:48,190 --> 00:33:51,590 Тоа е како 10 линии на код со белиот простор. 802 00:33:51,590 --> 00:33:57,510 Па многу моќен, многу корисно, ќе да биде користење на тоа во една од вашите подоцна psets. 803 00:33:57,510 --> 00:33:59,360 Можеби не оваа, туку подоцна. 804 00:33:59,360 --> 00:34:00,670 Па тоа се учи. 805 00:34:00,670 --> 00:34:01,510 Тоа го сакаат. 806 00:34:01,510 --> 00:34:02,980 Тоа ќе ви третираат добро. 807 00:34:02,980 --> 00:34:05,370 Така Дали некој има било прашања за бинарни пребарување? 808 00:34:05,370 --> 00:34:06,196 Да. 809 00:34:06,196 --> 00:34:09,840 >> СТУДЕНТСКИ: Има ли значение дали вашата n е дури и чудно? 810 00:34:09,840 --> 00:34:10,750 >> Инструктор: Не. 811 00:34:10,750 --> 00:34:18,150 Затоа што ние го фрли на средината како int, тоа само ќе го намалит. 812 00:34:18,150 --> 00:34:21,600 Па тоа ќе остане цел број и тоа ќе на крајот се најде решение преку сè. 813 00:34:21,600 --> 00:34:23,909 Значи, вие не мора да се грижите за тоа. 814 00:34:23,909 --> 00:34:24,580 Секој добар? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Страшни. 817 00:34:26,850 --> 00:34:27,919 Кул. 818 00:34:27,919 --> 00:34:30,836 Значи, вие момци доби тоа. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Слајдшоу. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Така како што ние се зборува за, знам Дејвид споменавме комплексноста runtimes. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Значи во најдобар случај, тоа е само еден, што ние го нарекуваме константен време. 825 00:34:50,340 --> 00:34:51,909 Може ли некој да ми каже зошто тоа може да биде? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Каков тип на сценарио кое би значел? 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 Мм-НВ. 830 00:34:58,760 --> 00:34:59,926 >> СТУДЕНТСКИ: [нечујни] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 Инструктор: Значи средината се првиот елемент кој доаѓаме до, нели? 833 00:35:03,830 --> 00:35:08,167 Значи или низа од една или што и ние сме во потрага за само 834 00:35:08,167 --> 00:35:09,750 се случува да биде мирис бучица во средината. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Па тоа е нашиот најдобар случај. 837 00:35:13,380 --> 00:35:17,540 Ќе го добиете во реални проблеми, веројатно не се случува да се постигне [нечујни] кои често. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Што е со нашите најлош случај? 840 00:35:19,750 --> 00:35:21,270 Нашите најлош случај е дневник н. 841 00:35:21,270 --> 00:35:25,360 И дека мора да се направи со целиот овластувањата на две нешто што јас разговаравме за. 842 00:35:25,360 --> 00:35:30,930 >> Па во најлош случај тоа би значело дека моравме да се исецка надолу низа 843 00:35:30,930 --> 00:35:33,270 се додека не беше елемент на еден. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Па моравме да го исецка надолу на половина онолку пати колку што ние би можел. 846 00:35:38,930 --> 00:35:41,430 Тоа е зошто тоа е најавите n, бидејќи вие само задржи се дели на два дела. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Така претпоставки, работи што треба да знаете ако сте некогаш 849 00:35:45,830 --> 00:35:48,050 случува да го користите бинарни пребарување. 850 00:35:48,050 --> 00:35:50,680 Вашата елементи мора да бидат подредени. 851 00:35:50,680 --> 00:35:53,890 Тие треба да бидат подредени, бидејќи тоа е единствениот начин на кој 852 00:35:53,890 --> 00:35:57,060 може да знае ако сте во можност да се исфрли од половината. 853 00:35:57,060 --> 00:36:00,260 >> Ако сте имале овој помешана торба на бројки и си ти што зборуваш, 854 00:36:00,260 --> 00:36:05,380 Добро, јас одам да се провери средината број и бројот Јас барам 855 00:36:05,380 --> 00:36:08,510 е помал од тоа, јас сум само ќе произволно да се исфрли од една половина. 856 00:36:08,510 --> 00:36:11,130 Вие не би знаеле дали вашиот броеви со тоа, што другата половина. 857 00:36:11,130 --> 00:36:12,655 Вашата листа треба да се подредени. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Исто така, ова може да биде оди напред малку, 860 00:36:16,560 --> 00:36:18,360 но треба да има произволен пристап. 861 00:36:18,360 --> 00:36:21,940 Што треба да биде во можност да само оди на тоа средниот елемент. 862 00:36:21,940 --> 00:36:25,110 Ако треба да напречни преку нешто 863 00:36:25,110 --> 00:36:28,630 или е потребно да дополнителни чекори да дојдеме до таа средината елемент, 864 00:36:28,630 --> 00:36:31,750 тоа не е се логирате н повеќе, бидејќи сте додавање на повеќе работа во него. 865 00:36:31,750 --> 00:36:34,800 И тоа ќе се направи малку повеќе смисла за две недели, 866 00:36:34,800 --> 00:36:37,950 но јас само вид на сакаа да предговор, вие момци даде идеја за она што е 867 00:36:37,950 --> 00:36:38,999 да дојде. 868 00:36:38,999 --> 00:36:40,790 Но тие се две важно претпоставки 869 00:36:40,790 --> 00:36:44,804 кои ви се потребни за бинарни листа. 870 00:36:44,804 --> 00:36:45,720 Бидете сигурни дека тоа е подредени. 871 00:36:45,720 --> 00:36:47,920 Тоа е голема за вие момци во моментов. 872 00:36:47,920 --> 00:36:52,170 И на тој можеме да одиме во остатокот од нашите сорти. 873 00:36:52,170 --> 00:36:56,444 Значи четири sorts-- меур, вметнување, селекција, и се логирате. 874 00:36:56,444 --> 00:36:57,485 Сите тие се вид на кул. 875 00:36:57,485 --> 00:37:02,860 Ако вие момци одлучи да ги преземе CS 124 ќе учат за сите видови на сорти. 876 00:37:02,860 --> 00:37:07,575 И ако сте XKCD фен, има е навистина кул комично 877 00:37:07,575 --> 00:37:11,530 како навистина неефективно видови, што јас Силно препорачувам случува да се погледне. 878 00:37:11,530 --> 00:37:16,170 Еден од нив е како паника вид, кој е како, о не, врати случаен низа. 879 00:37:16,170 --> 00:37:16,991 Исклучување на системот. 880 00:37:16,991 --> 00:37:17,490 Остави. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Така хакерски хумор е секогаш добра. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Па дали некој се сеќавам вид на како само општа идеја 885 00:37:25,750 --> 00:37:27,810 за тоа како меур вид работи. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Се сеќаваш ли? 888 00:37:32,155 --> 00:37:32,755 >> СТУДЕНТСКИ: Да. 889 00:37:32,755 --> 00:37:33,970 >> Инструктор: Одете за него. 890 00:37:33,970 --> 00:37:38,980 >> СТУДЕНТСКИ: Значи си оди преку и ако тоа е поголем, тогаш ќе трампа два. 891 00:37:38,980 --> 00:37:39,820 >> Инструктор: MM-хм. 892 00:37:39,820 --> 00:37:40,564 Точно. 893 00:37:40,564 --> 00:37:41,730 Така да само iterate преку. 894 00:37:41,730 --> 00:37:43,050 Да проверите два броја. 895 00:37:43,050 --> 00:37:46,510 Ако еден пред се поголеми од оној потоа, 896 00:37:46,510 --> 00:37:50,230 само да ги разменуваат, така што во на овој начин сите од поголем број 897 00:37:50,230 --> 00:37:54,990 меур нагоре кон крајот на листата и сите се пониски бројки меур надолу. 898 00:37:54,990 --> 00:37:59,355 >> Дали тој ви покаже момци кул звук ефект сортирање видео? 899 00:37:59,355 --> 00:38:00,480 Тоа е вид на кул. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Така како што Роберт само рече, алгоритам дека сте само чекор низ листата, 902 00:38:05,200 --> 00:38:07,930 Замена на соседните вредности ако тие не се во ред. 903 00:38:07,930 --> 00:38:10,975 А потоа само ги повторува додека не не прават никакви свопови. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Па не е лошо, нели? 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Па ние само имаат брз пример тука. 908 00:38:16,319 --> 00:38:18,360 Така што тоа се случува да се најде решение ги во растечки редослед. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Значи, кога ќе одиме во текот на првата време, ние се погледне преку осум 911 00:38:23,470 --> 00:38:26,880 и шест очигледно не со цел, ние ги трампа. 912 00:38:26,880 --> 00:38:27,985 >> Така се погледне на следниот. 913 00:38:27,985 --> 00:38:29,430 Осум и четири не е во ред. 914 00:38:29,430 --> 00:38:30,450 Разменуваат со нив. 915 00:38:30,450 --> 00:38:32,530 А потоа осум и две, да ги разменуваат. 916 00:38:32,530 --> 00:38:33,470 Там одиме. 917 00:38:33,470 --> 00:38:39,519 Па по својата прва помине, вие знаете дека вашиот најголем број 918 00:38:39,519 --> 00:38:41,810 ќе биде целиот пат на врвот, бидејќи тоа е само 919 00:38:41,810 --> 00:38:44,210 ќе биде постојано поголема од се друго 920 00:38:44,210 --> 00:38:46,810 и тоа е само случува да балон до сите на патот до крајот таму. 921 00:38:46,810 --> 00:38:48,226 Дали тоа има смисла за секого? 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Кул. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Па тогаш ние се погледне во нашата втора помине. 926 00:38:53,920 --> 00:38:54,980 Шест и четири, прекинувач. 927 00:38:54,980 --> 00:38:55,920 Шест и два, прекинувач. 928 00:38:55,920 --> 00:38:58,700 И сега имаме неколку работи во ред. 929 00:38:58,700 --> 00:39:02,240 Значи за секој пас дека ние направи преку целата наша листа, 930 00:39:02,240 --> 00:39:06,320 ние знаеме дека, како и дека многу броеви на крајот ќе се подредени. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Така ги трета помине, која е една swap. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 А потоа на нашата четврта помине, имаме нула слотови. 935 00:39:15,910 --> 00:39:18,570 И така знаеме дека нашите низа е подредени. 936 00:39:18,570 --> 00:39:20,900 >> А тоа е голема работа со балон вид. 937 00:39:20,900 --> 00:39:23,720 Знаеме дека кога ние имаат нула свопови, дека 938 00:39:23,720 --> 00:39:26,497 значи дека се што е во целосна ред. 939 00:39:26,497 --> 00:39:27,580 Тоа е вид на тоа како ние се провери. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Значи ние сме, исто така, се случува да се код меур вид кој, исто така, не е толку лош. 942 00:39:36,480 --> 00:39:38,120 Ниту еден од овие се толку лоши. 943 00:39:38,120 --> 00:39:40,210 Знам дека тие може да изгледа малку страшно. 944 00:39:40,210 --> 00:39:42,124 Знам кога Зедов класа, дури и кога 945 00:39:42,124 --> 00:39:44,290 беше настава класа за прв пат минатата година, 946 00:39:44,290 --> 00:39:46,165 Јас бев како, како можам да го направите ова? 947 00:39:46,165 --> 00:39:48,540 Тоа го прави смисла во теорија, но како ние всушност го направите ова? 948 00:39:48,540 --> 00:39:51,420 Кој е зошто јас исто така, сакаат да пешачат преку код со вас момци тука. 949 00:39:51,420 --> 00:39:54,915 Па имам псевдокод за вас момци тоа време. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Па само имајте го ова на ум, како ние сме за да транзиција повеќе. 952 00:39:58,970 --> 00:40:04,210 Па ние имаме некои контра дека следи на нашата размена, 953 00:40:04,210 --> 00:40:08,370 затоа што ние треба да бидете сигурни дека ние сме проверка тоа. 954 00:40:08,370 --> 00:40:11,830 И ние iterate целата низа како што скоро сторив со овој пример. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Ако елемент пред е поголема од елемент после каде сме во, 957 00:40:17,325 --> 00:40:20,760 ние ги разменуваат и ние инкремент нашите шанкот, бидејќи веднаш штом ќе се разменуваат, 958 00:40:20,760 --> 00:40:23,850 ние сакаме да ги споделите со нашите контра знам тоа. 959 00:40:23,850 --> 00:40:26,247 Било какви прашања има? 960 00:40:26,247 --> 00:40:27,580 Нешто се чини смешно овде. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 СТУДЕНТСКИ: Дали се постави контра на нула секој пат кога ќе одат преку телефонска линија? 963 00:40:32,350 --> 00:40:34,339 Не ви продолжувам да одам назад до нула секој пат? 964 00:40:34,339 --> 00:40:35,505 Инструктор: Не мора да значи. 965 00:40:35,505 --> 00:40:39,710 Па што се случува е да одиме низ овде. 966 00:40:39,710 --> 00:40:43,830 Затоа направете време, се сеќавам, ова ќе се изврши еднаш без да успее. 967 00:40:43,830 --> 00:40:46,480 Па затоа се случува да се постави counter еднаков на нула, 968 00:40:46,480 --> 00:40:48,070 после тоа се случува да iterate преку. 969 00:40:48,070 --> 00:40:50,590 Како што перебирает, тоа ќе се ажурира шанкот. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Како тоа надградби контра, кога тоа е направено, кога е постигнат на крајот на низата, 972 00:40:56,900 --> 00:41:00,830 ако нашата листа не е сортирана, контра ќе се ажурира. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Па тогаш тоа проверува состојба и тоа вели, OK, е контра поголема од нула. 975 00:41:07,150 --> 00:41:09,290 Ако е така, го направи тоа повторно. 976 00:41:09,290 --> 00:41:14,340 Сакате да ги ресетирате така што кога ќе поминат низ, counter е еднаков на нула. 977 00:41:14,340 --> 00:41:18,240 Ако одите преку сортирани низа, ништо не се менува, 978 00:41:18,240 --> 00:41:21,355 ова не успее, и вие врати подредени листа. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 Дали тоа има смисла? 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 СТУДЕНТСКИ: Тоа би можело во малку. 983 00:41:26,356 --> 00:41:27,147 Инструктор: ОК. 984 00:41:27,147 --> 00:41:28,980 Ако има било која друга прашање што доаѓа до. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Да. 987 00:41:30,680 --> 00:41:33,760 >> СТУДЕНТСКИ: Што би функција биде за Замена елементи? 988 00:41:33,760 --> 00:41:36,900 >> Инструктор: Па ние всушност може да се напише дека ако ние се случува да се во моментов. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Кул. 991 00:41:38,300 --> 00:41:42,155 Така, на тој белешка, Алисон се случува за да се вратите на апаратот. 992 00:41:42,155 --> 00:41:43,080 Тоа се случува да биде забавно. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 И ние имаме убаво меур вид нешто овде. 995 00:41:47,390 --> 00:41:50,800 Па јас веќе не велосипедизам преку низа. 996 00:41:50,800 --> 00:41:53,030 Ние имаме свопови дека се еднакви на нула. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Значи, сакаме да се разменуваат со соседните елементи ако тие се на ред. 999 00:41:58,440 --> 00:42:03,020 Па првото нешто што треба да не се iterate преку нашата низа. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Па, како мислите дека ние би можеле да iterate преку нашата низа? 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Имаме за и јас е еднаква на 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Ние сакаме јас се помалку од n минус 1 минус k. 1006 00:42:22,454 --> 00:42:23,870 И јас ќе објасни дека во една секунда. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Па ова е optimization тука, каде што, се сеќавам како што реков по секоја пас 1009 00:42:32,830 --> 00:42:36,655 преку низа ние знаете дека што и е on-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Па по еден поминат ние знаат дека ова е сортирана. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 По две минува знаеме е фактот што сите се подредени. 1014 00:42:50,060 --> 00:42:52,750 По три поминува ние знам што се подредени. 1015 00:42:52,750 --> 00:42:55,620 Па начинот на кој јас сум процесирањето преку низа тука, 1016 00:42:55,620 --> 00:43:01,090 е тоа е што си сигурен само да одиме преку она што го знаеме е несортиран. 1017 00:43:01,090 --> 00:43:01,644 ОК? 1018 00:43:01,644 --> 00:43:02,810 Тоа е само оптимизација. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Можете да го напише наивно само итерации сè, 1021 00:43:08,210 --> 00:43:09,970 тоа само ќе потрае подолго. 1022 00:43:09,970 --> 00:43:12,470 Со оваа четири јамка тоа е само еден убав оптимизација 1023 00:43:12,470 --> 00:43:18,460 затоа што знаеме дека по секоја целосна повторување преку низа тука, 1024 00:43:18,460 --> 00:43:24,050 како и секоја целосна јамка тука, знаеме дека еден повеќе од следниве елементи 1025 00:43:24,050 --> 00:43:25,760 ќе бидат подредени на крајот. 1026 00:43:25,760 --> 00:43:28,294 >> Значи ние не треба да се грижите за нив. 1027 00:43:28,294 --> 00:43:29,710 Дали тоа има смисла за секого? 1028 00:43:29,710 --> 00:43:30,950 Кул малку трик? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Па во тој случај, ако ние сме итерации, 1031 00:43:37,270 --> 00:43:50,590 знаеме дека сакате да проверите дали низа n и n плус 1 се во ред. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 ОК. 1034 00:43:53,559 --> 00:43:54,600 Значи тука е псевдокод. 1035 00:43:54,600 --> 00:43:57,540 Ние сакаме да се провери ако низа н и n плус 1 се во ред. 1036 00:43:57,540 --> 00:43:59,520 Така што би можело да имаме таму? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 Тоа се случува да биде некој условно. 1039 00:44:03,120 --> 00:44:04,220 Тоа ќе биде ако. 1040 00:44:04,220 --> 00:44:07,066 >> СТУДЕНТСКИ: Ако низа n е помалку од низата n + 1. 1041 00:44:07,066 --> 00:44:07,816 Инструктор: MM-хм. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 Па, помалку од или поголема од. 1044 00:44:10,699 --> 00:44:11,615 СТУДЕНТСКИ: Поголем од. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Тогаш ние сакаме да ги разменуваат. 1047 00:44:17,620 --> 00:44:18,570 Точно. 1048 00:44:18,570 --> 00:44:23,570 Па сега да се влезе во она што е механизам за Замена на нив? 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Па отидовме преку оваа кратко, тип на swap функција минатата недела. 1051 00:44:28,137 --> 00:44:29,595 Дали некој се сеќавам како тоа работеше? 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Па ние не може само да ги превъзложите, нели? 1054 00:44:34,950 --> 00:44:36,640 Поради тоа што еден од нив ќе се изгуби. 1055 00:44:36,640 --> 00:44:41,696 Ако ние, вели еден е еднаков на Б и после B е еднаков на A, сите одеднаш и двете од нив 1056 00:44:41,696 --> 00:44:43,150 се само еднаква на B. 1057 00:44:43,150 --> 00:44:45,720 >> Значи она што треба да направите е ние имаат привремен променлива која е 1058 00:44:45,720 --> 00:44:49,055 случува да се одржи еден наш додека ние сме во процес на Замена. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Значи она што го имаме е ќе имаме некои int температура е еднаква to-- можете да го доделите 1061 00:44:56,464 --> 00:44:59,130 за кое оној што го сакате, само бидете сигурни дека ги пратите на it-- 1062 00:44:59,130 --> 00:45:01,840 така што во овој случај, јас ќе одам да се додели на низа n + 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Така што се случува да се одржи без оглед на вредноста не е со тоа, што вториот блок 1065 00:45:07,674 --> 00:45:08,590 дека ние сме во потрага на. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> И потоа можеме да направиме е можеме да одиме напред и повторно низа н плус 1, 1068 00:45:13,240 --> 00:45:14,990 затоа што ние знаеме имаат тоа вредност се чуваат. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Ова е исто така еден од големите things-- Јас не знам дали некој од вас 1071 00:45:19,270 --> 00:45:23,780 имаше проблеми каде што ако се префрлат на две линии на код одеднаш функционираат работите. 1072 00:45:23,780 --> 00:45:25,880 Order е многу важна во CS. 1073 00:45:25,880 --> 00:45:29,450 Така бидете сигурни дека дијаграм работи надвор, ако е можно 1074 00:45:29,450 --> 00:45:31,230 како да се она што всушност се случува. 1075 00:45:31,230 --> 00:45:34,256 Па сега ние ќе се превъзложите низа н плус 1, 1076 00:45:34,256 --> 00:45:36,005 затоа што ние знаеме имаат тоа вредност се чуваат. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> И ние може да се додели дека на низата n или во овој случај низа i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Премногу варијабли. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 ОК. 1083 00:45:55,470 --> 00:46:01,500 Така, сега сме прераспореден низа з плус 1 да се изедначи она што е во низа з. 1084 00:46:01,500 --> 00:46:08,240 И сега можеме да одиме назад и доделите низа јас на што? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Некој? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> СТУДЕНТСКИ: 10. 1089 00:46:14,010 --> 00:46:14,680 >> Инструктор: 10. 1090 00:46:14,680 --> 00:46:15,180 Точно. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 И едно последно нешто. 1093 00:46:18,640 --> 00:46:21,840 Ако сме го сменил сега, она што ние треба да направам? 1094 00:46:21,840 --> 00:46:23,740 Што е едно нешто кој се случува да ни каже 1095 00:46:23,740 --> 00:46:27,542 ако некогаш го прекине оваа програма? 1096 00:46:27,542 --> 00:46:29,250 Она што ни кажува дека ние имаат подредени листа? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Ако ние не вршат никакви свопови, нели? 1099 00:46:33,750 --> 00:46:36,900 Ако свопови е еднаква на нула на крајот на оваа. 1100 00:46:36,900 --> 00:46:42,975 Значи секогаш кога ќе се изврши, swap, како што само го направи тука, ние сакаме да се ажурира свопови. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 И знам, имаше прашање рано за може да ви 1103 00:46:47,210 --> 00:46:49,689 користат нула или еден наместо на точно или неточно. 1104 00:46:49,689 --> 00:46:50,980 И тоа е она што ова го прави тука. 1105 00:46:50,980 --> 00:46:52,750 Па ова вели дека ако не свопови. 1106 00:46:52,750 --> 00:47:01,310 Значи, ако свопови е нула, кои is-- Јас секогаш добие мојата вистини и ми falses измешаат. 1107 00:47:01,310 --> 00:47:03,960 Ние сакаме ни да се оцени да точно и тоа не е. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Значи, ако тоа е нула, тогаш тоа е неточно. 1110 00:47:09,630 --> 00:47:12,560 Ако го негира со [? тресне?] станува вистина. 1111 00:47:12,560 --> 00:47:13,975 Па тогаш оваа линија извршува. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Вистини и лажни и нули и единици се луди. 1114 00:47:17,370 --> 00:47:20,690 Само ако имате бавно прошетка низ него тоа ќе го направи смисла. 1115 00:47:20,690 --> 00:47:23,320 Но тоа е она што оваа мала малку код овде прави. 1116 00:47:23,320 --> 00:47:26,490 Па ова проверки за да се види сме направиле било свопови. 1117 00:47:26,490 --> 00:47:30,054 Значи, ако тоа е ништо освен нула, тоа се случува да се лажни 1118 00:47:30,054 --> 00:47:31,970 и целата работа е оди да се изврши повторно. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Кул? 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> СТУДЕНТСКИ: Што значи пауза направам? 1123 00:47:36,000 --> 00:47:38,990 >> Инструктор: Break само ви избива на јамка. 1124 00:47:38,990 --> 00:47:41,570 Па во овој случај тоа би исто како и стави крај на програмата 1125 00:47:41,570 --> 00:47:43,828 и што би само имате подредени листа. 1126 00:47:43,828 --> 00:47:44,536 СТУДЕНТСКИ: Неверојатни. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 Инструктор: Жал ми е? 1129 00:47:49,010 --> 00:47:52,110 СТУДЕНТСКИ: Бидејќи претходно ние употребиле писмени 1 над писмена нула 1130 00:47:52,110 --> 00:47:54,170 да се претстави дека ако кои ќе работат или не. 1131 00:47:54,170 --> 00:47:54,878 >> Инструктор: Да. 1132 00:47:54,878 --> 00:47:56,410 Така може да се врати нула или 1. 1133 00:47:56,410 --> 00:47:58,950 Во овој случај, бидејќи ние не сме всушност прави ништо со функцијата, 1134 00:47:58,950 --> 00:48:00,150 ние само сакаме да се скрши. 1135 00:48:00,150 --> 00:48:02,680 Ние навистина не се грижат за тоа. 1136 00:48:02,680 --> 00:48:06,960 Кочница е исто така добар, ако Се користи за кршење 1137 00:48:06,960 --> 00:48:10,710 на четири јамки или состојби кои вие не сакате да се задржи извршување. 1138 00:48:10,710 --> 00:48:12,110 Тоа само ќе ве однесе надвор од нив. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 Тоа е малку на нијанса нешто. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Се чувствувам како да има многу рака мавтајќи, 1143 00:48:18,445 --> 00:48:19,740 како ќе дознаете за ова наскоро. 1144 00:48:19,740 --> 00:48:20,955 >> Но ќе дознаете за ова наскоро. 1145 00:48:20,955 --> 00:48:21,500 Јас ветувам. 1146 00:48:21,500 --> 00:48:22,670 1147 00:48:22,670 --> 00:48:23,170 ОК. 1148 00:48:23,170 --> 00:48:24,840 Значи не сите да балон вид? 1149 00:48:24,840 --> 00:48:25,550 Не е премногу лошо. 1150 00:48:25,550 --> 00:48:31,910 Iterate преку, swap работи со користење на температура променлива, и ние сме сите во собата таму? 1151 00:48:31,910 --> 00:48:32,960 Кул. 1152 00:48:32,960 --> 00:48:34,080 Страшни. 1153 00:48:34,080 --> 00:48:34,807 ОК. 1154 00:48:34,807 --> 00:48:35,765 Назад во PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Било какви прашања во целина за овие досега? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Кул. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Мм-НВ. 1161 00:48:43,695 --> 00:48:45,279 >> СТУДЕНТСКИ: [нечујни] int главната обично. 1162 00:48:45,279 --> 00:48:46,695 Дали треба да имате дека за ова? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> Инструктор: Па бевме само бараат само на вистински сортирање алгоритам. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Ако го имаше во рамките на како поголеми програма, 1167 00:48:56,350 --> 00:48:57,891 вие ќе треба int главната некаде. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Во зависност од каде што го користите овој алгоритам, 1170 00:49:02,880 --> 00:49:05,860 тоа ќе се утврди што е да се врати од тоа. 1171 00:49:05,860 --> 00:49:09,960 Но, за нашиот случај, ние сме строго гледајќи како го прави ова всушност 1172 00:49:09,960 --> 00:49:11,300 iterate преку низа. 1173 00:49:11,300 --> 00:49:12,570 Така што не се грижи за тоа. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Па ние се зборува за најдобар случај и најлош случај сценарија за бинарни пребарување. 1176 00:49:19,830 --> 00:49:22,470 Така, тоа е исто така важно да се направи што за секој од нашите видови. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Па што мислите дека е најлошото случај траење на меурот вид? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Вие, момци, се сеќаваш? 1181 00:49:30,700 --> 00:49:31,784 >> СТУДЕНТСКИ: N минус 1. 1182 00:49:31,784 --> 00:49:32,700 Инструктор: N минус 1. 1183 00:49:32,700 --> 00:49:35,070 Па тоа значи дека има N минус 1 споредби. 1184 00:49:35,070 --> 00:49:40,060 Па едно нешто да се реализира е дека на првиот повторување, 1185 00:49:40,060 --> 00:49:43,360 ние поминат низ, ние споредуваат овие two--, така што е 1. 1186 00:49:43,360 --> 00:49:46,685 Овие два, три, четири. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Па по едно повторување ние веќе имаат четири споредби. 1189 00:49:55,050 --> 00:49:58,230 Кога јас зборувам за траење и n. 1190 00:49:58,230 --> 00:50:04,680 N претставува број на споредби како функција од колку елементи 1191 00:50:04,680 --> 00:50:05,570 имаме. 1192 00:50:05,570 --> 00:50:06,430 ОК? 1193 00:50:06,430 --> 00:50:08,860 >> Па ние одат преку, имаме четири. 1194 00:50:08,860 --> 00:50:11,780 Следниот пат кога ќе знаат дека ние не треба да се грижи за тоа. 1195 00:50:11,780 --> 00:50:15,140 Ние споредуваат овие две, овие две, овие две, 1196 00:50:15,140 --> 00:50:20,050 и ако ние не го имаат тоа оптимизација со четири јамка дека сум го напишала, 1197 00:50:20,050 --> 00:50:22,750 ќе се споредуваат тука относнотова. 1198 00:50:22,750 --> 00:50:26,170 Така ќе треба да се ја извршите преку низа 1199 00:50:26,170 --> 00:50:34,380 и направи н споредби н време, бидејќи секој пат кога ние 1200 00:50:34,380 --> 00:50:36,670 поминува низ него ние вид едно нешто. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> И секој пат кога трчаме низ низа, правиме n споредби. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Така, нашето траење за ова е всушност n квадрат, што 1205 00:50:46,330 --> 00:50:48,400 е многу полоша во нашите логирате крајот, бидејќи тоа 1206 00:50:48,400 --> 00:50:51,965 значи ако ние имавме четири милијарда елементи, тоа е 1207 00:50:51,965 --> 00:50:55,260 ќе ни земе четири милијарди квадрат, наместо на 32. 1208 00:50:55,260 --> 00:51:01,240 Па не и најдобар траење, но за некои работи, 1209 00:51:01,240 --> 00:51:04,610 знаете, ако сте во рамките на одреден спектар на елементи 1210 00:51:04,610 --> 00:51:06,540 меур вид може да биде во ред да се користи. 1211 00:51:06,540 --> 00:51:07,530 >> ОК. 1212 00:51:07,530 --> 00:51:12,290 Па сега што е најдобар случај траење? 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 СТУДЕНТСКИ: Нулта? 1215 00:51:14,940 --> 00:51:16,420 Или 1? 1216 00:51:16,420 --> 00:51:18,140 >> Инструктор: Така 1 ќе биде еден споредба. 1217 00:51:18,140 --> 00:51:19,114 Прав. 1218 00:51:19,114 --> 00:51:20,002 >> СТУДЕНТСКИ: N минус 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> Инструктор: Па, да. 1221 00:51:22,320 --> 00:51:22,990 Па n минус 1. 1222 00:51:22,990 --> 00:51:26,510 Секогаш кога имате концепт како н минус 1, тежнееме да само да го заспивам 1223 00:51:26,510 --> 00:51:31,680 а ние само се каже н затоа што имаат да се споредуваат секој од these-- секој пар. 1224 00:51:31,680 --> 00:51:36,470 Значи тоа ќе биде n минус 1, кое ние ние само би рекол е околу н. 1225 00:51:36,470 --> 00:51:39,280 Кога си имаш работа со траење, сè е во се приближува. 1226 00:51:39,280 --> 00:51:43,860 Се додека експонент правилно, вие сте прилично добар. 1227 00:51:43,860 --> 00:51:45,700 >> Тоа е како ние се справи со неа. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 Па дека најдобар случај е n, што значи дека листата е веќе сортирани, 1230 00:51:51,780 --> 00:51:54,320 и сите ние се извршува преку и проверете дали тоа е подредени. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Кул. 1233 00:51:56,855 --> 00:51:57,355 Добре. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Така како што гледате тука, ние само треба малку повеќе графикони. 1236 00:52:01,920 --> 00:52:02,660 Па N на квадрат. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Забавно. 1239 00:52:05,120 --> 00:52:09,730 Многу полошо отколку n како што гледаме, и многу, многу полошо отколку најавите 2n. 1240 00:52:09,730 --> 00:52:12,060 И тогаш исто така се влезе најавите логови. 1241 00:52:12,060 --> 00:52:18,020 И да ве однесе 124, ќе го добиете во како најавите ѕвезда, која е како луди. 1242 00:52:18,020 --> 00:52:20,172 Значи, ако сте заинтересирани, пребарување најавите ѕвезда. 1243 00:52:20,172 --> 00:52:20,880 Тоа е вид на забава. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Па ние ја имаат оваа голема шема. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Само на главите нагоре, ова прекрасен шема да имаат 1248 00:52:28,720 --> 00:52:31,350 за вашиот среднорочна затоа што ние долго да ве прашам овие изтънява. 1249 00:52:31,350 --> 00:52:36,090 Па само главите нагоре, ја имаат оваа на вашиот среднорочна на вашиот убав измамник лист 1250 00:52:36,090 --> 00:52:36,616 таму. 1251 00:52:36,616 --> 00:52:37,990 Па ние само го погледна меур вид. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 Најлош случај, n квадрат, најдобар случај, н. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 И ние ќе да се погледне на други. 1256 00:52:44,950 --> 00:52:47,940 >> И како што можете да видите, само оној кој навистина прави добро 1257 00:52:47,940 --> 00:52:50,910 е спојување вид, кои ние ќе се влезе зошто. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Значи ние се случува да одат на Следниот here-- селекција вид. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Дали некој се сеќавам како селекција вид работел? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Одат за тоа. 1264 00:53:05,700 --> 00:53:08,210 >> СТУДЕНТСКИ: Во суштина оди преку цел и да се создаде нова листа. 1265 00:53:08,210 --> 00:53:11,001 И како што сте ставање елементи во, ги стави на вистинското место 1266 00:53:11,001 --> 00:53:11,750 во нова листа. 1267 00:53:11,750 --> 00:53:14,040 >> Инструктор: Значи тоа звуци повеќе како вметнување вид. 1268 00:53:14,040 --> 00:53:15,040 Но ти си навистина блиски. 1269 00:53:15,040 --> 00:53:15,915 Тие се многу слични. 1270 00:53:15,915 --> 00:53:17,440 Дури и јас да ги помешал понекогаш. 1271 00:53:17,440 --> 00:53:18,981 Пред овој дел јас бев како, почекајте. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 ОК. 1274 00:53:20,630 --> 00:53:24,141 Па што сакате да го направите, е избор вид, 1275 00:53:24,141 --> 00:53:25,890 начин можете да се сетите во врска со тоа и начинот на кој 1276 00:53:25,890 --> 00:53:30,140 Јас бидете сигурни дека не се обидуваат да се добие им измешани, не е тоа оди преку 1277 00:53:30,140 --> 00:53:33,280 и тоа го избира најмал број и тоа 1278 00:53:33,280 --> 00:53:36,070 става, дека на почетокот на вашата листа. 1279 00:53:36,070 --> 00:53:37,730 Тоа го свопови со тоа прво место. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Тие всушност имаат пример за мене. 1282 00:53:45,370 --> 00:53:46,540 Страшни. 1283 00:53:46,540 --> 00:53:50,130 Па само начин да се мисли на it-- избор вид, изберете најмалите вредност. 1284 00:53:50,130 --> 00:53:51,940 И ние си оди за да поминува низ еден пример 1285 00:53:51,940 --> 00:53:55,320 што мислам дека ќе помогне, бидејќи Мислам дека визуелни секогаш помагаат. 1286 00:53:55,320 --> 00:53:58,510 Па ние почнуваме со нешто кој е комплетно несортиран. 1287 00:53:58,510 --> 00:54:00,730 Црвена ќе биде несортиран, зелен ќе бидат подредени. 1288 00:54:00,730 --> 00:54:02,190 Сето тоа ќе има смисла во една секунда. 1289 00:54:02,190 --> 00:54:08,950 >> Па ние одат преку и ние iterate од почетокот до крајот. 1290 00:54:08,950 --> 00:54:12,320 И ние се каже, во ред, 2 ни најмал број. 1291 00:54:12,320 --> 00:54:15,680 Па ние сме случува да се земе 2 и ние ќе да се движи кон предниот дел на нашите низа 1292 00:54:15,680 --> 00:54:17,734 затоа што тоа е најмал број што го имаме. 1293 00:54:17,734 --> 00:54:19,150 Значи тоа е она што ова е тоа тука. 1294 00:54:19,150 --> 00:54:20,820 Тоа е само случува да се разменуваат овие две. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Така, сега имаме сортирано дел и несортиран дел. 1297 00:54:25,450 --> 00:54:27,810 И она што е добро да се запамети за избор на вид 1298 00:54:27,810 --> 00:54:30,690 е ние сме само избор на од несортиран дел. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Подредено дел можете само остави на мира. 1301 00:54:34,527 --> 00:54:35,660 Мм хм? 1302 00:54:35,660 --> 00:54:38,452 >> СТУДЕНТСКИ: Како не го знае она што е на најмалиот без споредувајќи го 1303 00:54:38,452 --> 00:54:39,868 до секој друг вредност во низа. 1304 00:54:39,868 --> 00:54:41,250 Инструктор: Тоа го прави споредете го. 1305 00:54:41,250 --> 00:54:42,041 Ние се допаѓа тоа прескокнуваат. 1306 00:54:42,041 --> 00:54:43,850 Оваа е само општа целина. 1307 00:54:43,850 --> 00:54:44,831 Да. 1308 00:54:44,831 --> 00:54:47,205 Кога ние пишуваме кодот Јас сум сигурни дека ќе бидете позадоволни. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Но ќе ги чувате оваа прва елемент како најмала. 1311 00:54:53,030 --> 00:54:56,110 Ќе се споредат и вие се каже, во ред, тоа е помал? 1312 00:54:56,110 --> 00:54:56,660 Да. 1313 00:54:56,660 --> 00:54:57,460 Го чувам. 1314 00:54:57,460 --> 00:54:58,640 Еве што е помал? 1315 00:54:58,640 --> 00:54:59,660 Не? 1316 00:54:59,660 --> 00:55:02,510 >> Ова е ваша најмалите, превъзложите да вашата вредност. 1317 00:55:02,510 --> 00:55:06,340 И ќе бидете многу посреќни кога одиме преку код. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Па ние одат преку, ние го трампа, па потоа ние се погледне на овој несортиран дел. 1320 00:55:13,970 --> 00:55:15,810 Па ние си оди за да изберете три. 1321 00:55:15,810 --> 00:55:18,890 Ние си оди за да го постави на на на крајот од нашиот Подредено дел. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 И ние сме само ќе да го задржи тоа тоа, тоа го прават, и тоа го прават. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Значи ова е нашата вид на псевдокод тука. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Ние ќе го кодот тука во секунда. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Но само нешто да одиме преку на високо ниво. 1330 00:55:37,270 --> 00:55:40,275 Си оди за да одат од i е еднаква на 0 до n минус 2. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 Тоа е друга оптимизација. 1333 00:55:43,530 --> 00:55:45,020 Не грижете се премногу за неа. 1334 00:55:45,020 --> 00:55:46,620 Па како што можете велеа. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Како Јаков велеше, како ние ги пратите на она што нашите минимум е? 1337 00:55:54,406 --> 00:55:55,030 Како да знаеме? 1338 00:55:55,030 --> 00:55:57,060 Ние треба да се споредуваат се што е во нашата листа. 1339 00:55:57,060 --> 00:55:59,600 >> Па минимум е еднаква на i. 1340 00:55:59,600 --> 00:56:03,870 Тоа е само велејќи дека во овој случај индексот на нашата минимална вредност. 1341 00:56:03,870 --> 00:56:07,660 Па после тоа се случува да iterate преку и тоа оди од j е еднаква на i плус 1. 1342 00:56:07,660 --> 00:56:11,420 Па ние веќе знаете дека тоа е нашиот прв елемент. 1343 00:56:11,420 --> 00:56:13,240 Ние не треба да го споредуваат со себе. 1344 00:56:13,240 --> 00:56:16,970 Па да почнеме тоа во споредба со следниот еден кој е зошто тоа е i плус 1 до n 1345 00:56:16,970 --> 00:56:20,110 минус 1, кое е крајот на низата таму. 1346 00:56:20,110 --> 00:56:25,090 И ние изјави дека ако низа на j е помала низа min, 1347 00:56:25,090 --> 00:56:29,200 тогаш ние превъзложите каде нашите минимални индекси е. 1348 00:56:29,200 --> 00:56:37,470 >> И ако min не е еднаква на i, како во каде што бевме назад во текот тука. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Така се допаѓа кога првпат го направи ова. 1351 00:56:41,790 --> 00:56:49,310 Во овој случај, тоа ќе започне во нула, тоа ќе заврши се две. 1352 00:56:49,310 --> 00:56:53,010 Така мин не би еднаков јас на крајот. 1353 00:56:53,010 --> 00:56:55,720 Која ни овозможува да се знае дека ние треба да ги разменуваат. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Се чувствувам како конкретен пример ќе помогне да се многу повеќе од тоа. 1356 00:57:00,470 --> 00:57:04,970 Па јас ќе се кодира ова со вас момци токму сега и мислам дека ќе биде подобро. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Sorts имаат тенденција да работат на тој начин со тоа, што тоа е често подобро само да ги види. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Значи она што сакате да направите, е ние прво сакаат најмалите 1361 00:57:17,280 --> 00:57:19,890 елемент во својата позиција во низа. 1362 00:57:19,890 --> 00:57:21,280 Токму она што Јаков го кажувам. 1363 00:57:21,280 --> 00:57:23,090 Вие треба да ги чувате дека некако. 1364 00:57:23,090 --> 00:57:25,900 Па ние си оди за да започнете перебора низа. 1365 00:57:25,900 --> 00:57:28,970 Ние се случува да се каже, тоа е нашата првиот само за да се започне со. 1366 00:57:28,970 --> 00:57:38,308 Значи ние се случува да мора int најмалиот е еднаква на низа на i. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Така што едно нешто да се забележи, секој време овој циклус извршува, 1369 00:57:45,050 --> 00:57:48,550 ние почнуваме еден чекор понатаму заедно. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Кога ќе почнеме ние гледаме на оваа. 1372 00:57:57,440 --> 00:58:00,840 Следниот пат кога ние iterate преку, ние сме со почеток во оваа 1373 00:58:00,840 --> 00:58:02,680 и тоа ни најмалите вредност доделување. 1374 00:58:02,680 --> 00:58:10,450 Така што е многу слично на балон вид каде знаеме дека по еден поминат, 1375 00:58:10,450 --> 00:58:11,700 овој последен елемент се подредени. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Со избор на вид, тоа е токму спротивното. 1378 00:58:15,120 --> 00:58:18,950 >> Во секоја помине, ние знаеме дека првиот е подредени. 1379 00:58:18,950 --> 00:58:21,360 После вториот пас, на вториот ќе бидат подредени. 1380 00:58:21,360 --> 00:58:26,470 И како што видов со слајд примери, нашите подредени дел само расте. 1381 00:58:26,470 --> 00:58:34,020 Па со поставување на нашите најмала да низи јас, сето тоа го прави 1382 00:58:34,020 --> 00:58:37,340 се свива она што ние сме во потрага на, па како 1383 00:58:37,340 --> 00:58:40,164 да се минимизира бројот на споредби што ги направи. 1384 00:58:40,164 --> 00:58:41,770 Дали тоа се направи смисла на сите? 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 Дали ме треба да се води преку тоа повторно побавно или во различни зборови? 1387 00:58:46,380 --> 00:58:47,180 Јас сум среќен да. 1388 00:58:47,180 --> 00:58:48,095 1389 00:58:48,095 --> 00:58:48,595 ОК. 1390 00:58:48,595 --> 00:58:50,060 1391 00:58:50,060 --> 00:58:55,540 >> Па ние сме чување вредност во овој момент, 1392 00:58:55,540 --> 00:58:57,840 но ние исто така сакаме да ја запази индексот. 1393 00:58:57,840 --> 00:59:01,010 Значи ние се случува да се сместат позиција на најмалиот 1394 00:59:01,010 --> 00:59:02,770 еден, што е само ќе биде и. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Па сега Јаков е задоволен. 1397 00:59:05,440 --> 00:59:06,870 Имаме и со што се чуваат. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 И сега ние треба да се погледне преку несортиран дел на низа. 1400 00:59:11,870 --> 00:59:18,170 Значи во овој случај ова ќе биде нашата несортиран. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 Ова е з. 1403 00:59:22,462 --> 00:59:25,430 1404 00:59:25,430 --> 00:59:26,210 ОК. 1405 00:59:26,210 --> 00:59:30,040 >> Значи она што се случува да го направите се случува да биде за еден циклус. 1406 00:59:30,040 --> 00:59:32,066 Секогаш кога ќе треба да се iterate преку низа, 1407 00:59:32,066 --> 00:59:33,440 вашиот ум може да оди на за телефонска линија. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Па за некои int к equals-- она ​​што мислиме 1410 00:59:38,090 --> 00:59:39,700 k се случува да изнесува да се започне со? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 Ова е она што го поставивме како наш најмалите вредност и ние сакаме да се спореди. 1413 00:59:44,766 --> 00:59:47,090 Што сакаме да го споредуваат со? 1414 00:59:47,090 --> 00:59:48,730 Тоа се случува да биде овој следната, нели? 1415 00:59:48,730 --> 00:59:53,200 Значи, сакаме k за да се иницијализира на i плус 1 за да започнете. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> И ние сакаме k во овој случај ние веќе големина чуваат до тука, 1418 01:00:02,800 --> 01:00:03,930 па ние само може да се користи големина. 1419 01:00:03,930 --> 01:00:06,240 Size да бидат со големина на низата. 1420 01:00:06,240 --> 01:00:09,620 И ние само сакаме да ажурира k од страна на еден секој пат. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Кул. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Па сега ние треба да се најде на најмалиот елемент тука. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Значи, ако ние iterate преку, ние сакам да кажам, ако низа на к 1427 01:00:31,380 --> 01:00:37,080 е помала од нашата најмалиот value-- ова е местото каде што ние сме всушност 1428 01:00:37,080 --> 01:00:42,950 следење на она што е најмалиот here-- 1429 01:00:42,950 --> 01:00:47,740 тогаш сакаме да преназначаване она што нашите најмалите вредност е. 1430 01:00:47,740 --> 01:00:50,645 >> Ова значи дека, ох, ние сме итерации тука. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Без оглед на вредноста е тука е не ни најмалите работа. 1433 01:00:53,740 --> 01:00:54,448 Ние не го сакаат тоа. 1434 01:00:54,448 --> 01:00:56,100 Ние сакаме да го превъзложите. 1435 01:00:56,100 --> 01:01:02,050 Значи, ако ние сме го прераспределување, што прават мислите дека би можеле да бидат во овој код овде? 1436 01:01:02,050 --> 01:01:04,160 Ние сакаме да преназначаване Најмалиот и позиција. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Значи она што е најмалиот сега? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 СТУДЕНТСКИ: Низа к. 1441 01:01:09,130 --> 01:01:09,963 Инструктор: Низа к. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 И она што е позиција сега? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Што е индекси на ни најмалите вредност? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 Тоа е само k. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Па низа k, k, тие се совпаѓаат. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Па сакавме да преназначаване тоа. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 А потоа по најдовме нашата најмалите, така што на крајот на овој за јамка 1454 01:01:39,950 --> 01:01:45,100 тука се најдоа она што нашите најмалите вредност е, па ние само го трампа. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Во овој случај, како што велат нашите најмалиот вредност не е од тука. 1457 01:01:50,816 --> 01:01:51,940 Ова е нашиот најмалиот вредност. 1458 01:01:51,940 --> 01:01:57,690 >> Ние само сакаме да го смениме тука, што е она што swap функција на дното 1459 01:01:57,690 --> 01:02:01,270 направив, кои ние едноставно напиша на заедно пред неколку минути. 1460 01:02:01,270 --> 01:02:02,775 Па затоа треба да изгледа познато. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 И тогаш тоа само ќе iterate преку додека не се достигне сите на патот 1463 01:02:08,030 --> 01:02:13,100 до крај, што значи дека може имаат нула елементи кои се несортиран 1464 01:02:13,100 --> 01:02:14,800 и сè друго е сортирана. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Да има смисла? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Малку поконкретно? 1469 01:02:19,280 --> 01:02:19,990 Кодот помош? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> СТУДЕНТСКИ: За големината, никогаш не навистина го дефинира или да го промените, 1472 01:02:26,410 --> 01:02:27,340 како не го знаеш? 1473 01:02:27,340 --> 01:02:32,380 >> Инструктор: Значи едно нешто да се забележите тука е int големина. 1474 01:02:32,380 --> 01:02:35,680 Па ние сме велејќи дека во овој sort-- вид е функција во овој case-- тоа е 1475 01:02:35,680 --> 01:02:40,770 селекција вид, тоа е усвоен во со функција. 1476 01:02:40,770 --> 01:02:43,460 Значи, ако тоа не е донесен во, ќе се направи нешто 1477 01:02:43,460 --> 01:02:47,840 како и со должината на низата или ќе iterate преку 1478 01:02:47,840 --> 01:02:49,390 да се најде должината. 1479 01:02:49,390 --> 01:02:52,680 Но, бидејќи тоа е донесен во, ние само може да го користи. 1480 01:02:52,680 --> 01:02:55,720 Можете само да се претпостави дека на корисникот ви даде валидна големина која 1481 01:02:55,720 --> 01:02:57,698 всушност претставува големината на низата. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Кул? 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Ако вие момци имате било какви проблеми со овие или сакате повеќе пракса кодирање видови 1486 01:03:05,870 --> 01:03:08,050 на свој, треба да одат на study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Тоа е алатка. 1489 01:03:12,670 --> 01:03:15,040 Тие имаат Проверка дека всушност можете да пишувам. 1490 01:03:15,040 --> 01:03:16,180 Тие го прават псевдокод. 1491 01:03:16,180 --> 01:03:19,310 Тие имаат повеќе видео и слајдови вклучувајќи ги и оние што се користи тука. 1492 01:03:19,310 --> 01:03:23,150 Значи, ако сте уште се чувствува малку нејасни, обидете се тоа. 1493 01:03:23,150 --> 01:03:25,670 Како и секогаш, дојде да разговара со мене, исто така. 1494 01:03:25,670 --> 01:03:26,320 Прашање? 1495 01:03:26,320 --> 01:03:28,611 >> СТУДЕНТСКИ: Дали сакаш да кажеш големина е претходно дефинирано? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 Инструктор: Да. 1498 01:03:29,900 --> 01:03:35,570 Size е претходно дефинирано горе тука во декларацијата функција. 1499 01:03:35,570 --> 01:03:39,060 Така да се претпостави дека тоа е е донесен во од страна на корисникот, како и за простота, 1500 01:03:39,060 --> 01:03:41,896 ние ќе се претпостави дека кориснички ни даде точната големина. 1501 01:03:41,896 --> 01:03:43,240 Кул. 1502 01:03:43,240 --> 01:03:44,390 Значи тоа е избор на вид. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Дечки, знам дека учите многу денес. 1505 01:03:47,640 --> 01:03:49,710 Тоа е густа податоци за секција. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Така да со тоа, ние ќе се обидеме да се оди на вметнување вид. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> ОК. 1510 01:04:02,510 --> 01:04:06,100 Па пред тоа ние треба да направите нашите траење анализа тука. 1511 01:04:06,100 --> 01:04:10,190 Па во најдобар случај, доделена бидејќи јас ви покажа 1512 01:04:10,190 --> 01:04:11,960 маса што веќе вид го даде далеку. 1513 01:04:11,960 --> 01:04:15,430 Но најдобар случај траење, она што мислиме? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Ќе бидат подредени. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 N на квадрат. 1518 01:04:22,070 --> 01:04:24,780 Некој има објаснување зошто мислите? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> СТУДЕНТСКИ: Ти си споредување through-- 1521 01:04:30,519 --> 01:04:31,268 Инструктор: Токму така. 1522 01:04:31,268 --> 01:04:32,540 Ти си споредување преку. 1523 01:04:32,540 --> 01:04:35,630 На секој повторување, иако ние сме декрементирование ова по еден, 1524 01:04:35,630 --> 01:04:38,950 ти си уште бараат преку сè да се најде најмалиот еден. 1525 01:04:38,950 --> 01:04:42,390 Па дури и ако вашиот најмалиот вредност е тука на почетокот, 1526 01:04:42,390 --> 01:04:44,710 ти си уште го споредување против се друго 1527 01:04:44,710 --> 01:04:46,550 да бидете сигурни дека тоа е најмалиот нешто. 1528 01:04:46,550 --> 01:04:49,820 Па ќе се заокружи трчање преку приближно n квадрат пати. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Добре. 1531 01:04:51,590 --> 01:04:52,785 И, што е најлош случај? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Исто така n квадрат, бидејќи си оди што треба да се прави тоа истата постапка. 1534 01:04:57,980 --> 01:05:01,670 Значи во овој случај, селекција вид има нешто 1535 01:05:01,670 --> 01:05:04,010 дека ние исто така, повик очекуваното траење. 1536 01:05:04,010 --> 01:05:07,400 Значи, во другите, ние само знам на горниот и долниот границите. 1537 01:05:07,400 --> 01:05:11,180 Зависност од тоа колку луди нашите листата е или како несортиран е тоа, 1538 01:05:11,180 --> 01:05:15,350 тие се разликуваат помеѓу n или n квадрат. 1539 01:05:15,350 --> 01:05:16,550 Ние не знаеме. 1540 01:05:16,550 --> 01:05:22,820 >> Но, бидејќи селекција вид ги има истите најлошото и најдобар случај, што ни кажува дека 1541 01:05:22,820 --> 01:05:25,880 без оглед на тоа каков тип на влез ние имаат, без разлика дали тоа е сосема 1542 01:05:25,880 --> 01:05:29,130 сортирани или целосно обратна подредени, тоа е 1543 01:05:29,130 --> 01:05:30,740 случува да се земе иста количина на време. 1544 01:05:30,740 --> 01:05:33,760 Па во тој случај, ако се се сеќавам од нашата маса, 1545 01:05:33,760 --> 01:05:38,610 тоа всушност имал вредност која овие два вида немаат, 1546 01:05:38,610 --> 01:05:40,390 кој се очекува траење. 1547 01:05:40,390 --> 01:05:43,350 Па знаеме дека секогаш кога трчаме избор вид, 1548 01:05:43,350 --> 01:05:45,380 тоа е гарантирано да се кандидира n квадрат време. 1549 01:05:45,380 --> 01:05:46,630 Существует не варијабилност таму. 1550 01:05:46,630 --> 01:05:47,630 Тоа е само очекува. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 И, повторно, ако сакате да дознаете повеќе, земете CS 124 во пролет. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Добре. 1555 01:05:56,712 --> 01:05:57,545 Ние сме виделе оваа. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Кул. 1558 01:05:59,030 --> 01:06:00,930 Така вметнување вид. 1559 01:06:00,930 --> 01:06:03,330 И јас сум веројатно нема да пожарот преку овој. 1560 01:06:03,330 --> 01:06:05,440 Јас не ќе мора вие момци го код. 1561 01:06:05,440 --> 01:06:06,580 Ние само ќе одат преку него. 1562 01:06:06,580 --> 01:06:10,500 Така вметнување вид е вид на слични на избор вид 1563 01:06:10,500 --> 01:06:14,460 со тоа, што ги имаме и двете несортированная и подредени дел на низа. 1564 01:06:14,460 --> 01:06:20,260 >> Но она што е различно е тоа што како што ние одиме преку една по една, 1565 01:06:20,260 --> 01:06:24,210 ние само се земе она број е следниот во нашата несортиран, 1566 01:06:24,210 --> 01:06:28,507 и правилно да го средиме во нашите Подредено низа. 1567 01:06:28,507 --> 01:06:30,090 Тоа ќе се направи повеќе смисла со пример. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Па сè започнува како несортиран, Исто како и со избор на вид. 1570 01:06:35,430 --> 01:06:38,740 И ние си оди за да се најде решение за ова во Растечки редослед како што биле. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Така, на нашиот прв пас ние го направи првиот вредност 1573 01:06:43,340 --> 01:06:46,700 и ние се каже, во ред, вие сте сега во листа со себе. 1574 01:06:46,700 --> 01:06:49,150 >> Затоа што ти се во листата на од страна на себе си, вие се подредени. 1575 01:06:49,150 --> 01:06:52,460 Алал да му е за да биде првиот елемент во оваа низа. 1576 01:06:52,460 --> 01:06:54,800 Сте веќе сортирани сите на свој. 1577 01:06:54,800 --> 01:06:58,900 Така, сега имаме сортирано и несортиран низа. 1578 01:06:58,900 --> 01:07:01,760 Па сега ние го направи првиот. 1579 01:07:01,760 --> 01:07:05,600 Она што се случува помеѓу тука и тука е дека ние се каже, 1580 01:07:05,600 --> 01:07:08,890 Добро, ние ќе се погледне на првата вредност на нашите несортиран низа 1581 01:07:08,890 --> 01:07:13,270 и ние си оди за да влез во својата правилната место во Подредено низа. 1582 01:07:13,270 --> 01:07:21,460 >> Значи она што го правиме е ние се 5 и ние се каже, во ред, 5 е поголем од 3, 1583 01:07:21,460 --> 01:07:24,630 па ние само го вметнете право на десно од тоа. 1584 01:07:24,630 --> 01:07:25,130 Ние сме добро. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Па потоа да одиме на нашите следниот. 1587 01:07:28,420 --> 01:07:29,720 И ние се 2. 1588 01:07:29,720 --> 01:07:34,330 Ние се каже, во ред, 2 е помалку од 3, па знаеме дека тоа 1589 01:07:34,330 --> 01:07:36,220 треба да биде во пред нашата листа сега. 1590 01:07:36,220 --> 01:07:41,800 Па она што го правиме е ние им помогнам на 3 и 5 долу и се движиме 2 во таа првиот слот. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Па ние сме само го поставите во правилната место треба да биде. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Тогаш ние се погледне во нашите следниот, и ние велиме 6. 1595 01:07:49,470 --> 01:07:53,620 OK, 6 е поголема од што е во наша Подредено низа, 1596 01:07:53,620 --> 01:07:56,000 па ние само тоа ознака на до крај. 1597 01:07:56,000 --> 01:07:56,960 А потоа ќе погледнеме во 4. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4 е помалку од 6, тоа е помалку од 5, но тоа е поголема од 3. 1600 01:08:03,020 --> 01:08:06,270 Па ние само го вметнете право во средината помеѓу 3 и 5. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Па да се направи тоа малку малку поконкретни, 1603 01:08:10,530 --> 01:08:12,280 тука е вид на идеја за она што се случило. 1604 01:08:12,280 --> 01:08:16,430 Па за секој несортиран елемент, ние се утврди каде во сортирани дел 1605 01:08:16,430 --> 01:08:17,090 е. 1606 01:08:17,090 --> 01:08:20,680 >> Па имајќи го во предвид сортирани и несортиран, 1607 01:08:20,680 --> 01:08:26,080 ние треба да напречни преку и фигура од каде што се вклопува во Подредено низа. 1608 01:08:26,080 --> 01:08:31,460 И ние го вметнете со менувањето елементи на правото го долу. 1609 01:08:31,460 --> 01:08:34,910 А потоа ние едноставно се задржи итерации, додека ние 1610 01:08:34,910 --> 01:08:39,270 имаат сосема подредени листа каде несортиран сега нула 1611 01:08:39,270 --> 01:08:41,720 и сортирани зазема интегритет на нашата листа. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Значи, повторно, да се направат работите уште поконкретни, имаме псевдокод. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Значи, во основа на i е еднаков на 0 до n минус 1, 1616 01:08:52,410 --> 01:08:54,790 тоа е само должината на нашите низа. 1617 01:08:54,790 --> 01:09:00,979 Имаме некои елемент, кој е еднаков на првата низа или првата индексите. 1618 01:09:00,979 --> 01:09:03,200 Ние во собата j еднаква на тоа. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Па така додека j е поголема од нула и низа, j минус 1 1621 01:09:09,210 --> 01:09:11,660 е поголема од елемент, така што сите тоа го прави 1622 01:09:11,660 --> 01:09:17,479 се што си сигурен дека Вашата ѕ навистина претставува 1623 01:09:17,479 --> 01:09:20,010 несортиран дел од низа. 1624 01:09:20,010 --> 01:09:30,745 >> Така, додека се уште постои нешта да се најде решение и ѕ минус еден is-- она ​​што 1625 01:09:30,745 --> 01:09:31,840 е елемент на неа? 1626 01:09:31,840 --> 01:09:34,760 Ј никогаш не бил дефиниран овде. 1627 01:09:34,760 --> 01:09:35,677 Тоа е вид на досадни. 1628 01:09:35,677 --> 01:09:36,176 ОК. 1629 01:09:36,176 --> 01:09:36,689 Относнотова. 1630 01:09:36,689 --> 01:09:39,899 Така й минус 1, ти си проверка елементот пред него. 1631 01:09:39,899 --> 01:09:46,460 Си ти што зборуваш, во ред, е елемент пред секаде каде што јас am-- нека 1632 01:09:46,460 --> 01:09:47,540 всушност се подготви ова. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Па да речеме ова е како на нашиот втор обид. 1635 01:09:56,830 --> 01:09:59,525 Па јас се случува да бидат еднакви до 1, кој е тука. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Па i ќе биде еднаков на 1. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 Оваа ќе биде 2, 4, 5, 6, 7. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Добре. 1642 01:10:16,750 --> 01:10:20,945 Така, нашето елемент во овој случај се случува да биде еднакво на 4. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 И ние имаме некои ѕ тоа е ќе биде еднаков на 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 О, й се декрементирование. 1647 01:10:30,971 --> 01:10:31,720 Тоа е она што е. 1648 01:10:31,720 --> 01:10:35,680 Па j е еднаква на i, така што оваа е изрека е дека како што се движи напред, 1649 01:10:35,680 --> 01:10:37,530 ние сме само што си сигурен дека ние не сме над 1650 01:10:37,530 --> 01:10:43,520 индексирање на овој начин, кога ние се обидуваме да вметнете работи во нашите подредени листа. 1651 01:10:43,520 --> 01:10:49,850 >> Па кога j е еднакво на 1, во овој случај и низа ѕ минус одно-- така низа ѕ минус 1 1652 01:10:49,850 --> 01:10:54,610 е 2 во оваа case--, ако тоа е поголема од елемент, 1653 01:10:54,610 --> 01:10:57,700 после сето ова се прави се менува работите надолу. 1654 01:10:57,700 --> 01:11:04,790 Значи во овој случај, низа j минус еден ќе биде нула низа, што е 2. 1655 01:11:04,790 --> 01:11:08,430 2 не е поголем од 4, така што ова не се изврши. 1656 01:11:08,430 --> 01:11:11,460 Така промената не се движи надолу. 1657 01:11:11,460 --> 01:11:18,790 Што тоа не е тука само движење на сортиран низа надолу. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Во овој случај, всушност, ние би можеле да do-- ајде да се направи овој 3. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Значи, ако сакаме да одиме преку со овој пример, ние сме сега тука. 1662 01:11:31,970 --> 01:11:32,740 Ова се подредени. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Ова е несортиран. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Кул? 1667 01:11:39,860 --> 01:11:46,620 Па i е еднакво на 2, па нашите елемент е еднакво на 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 И нашите j е еднакво на 2. 1670 01:11:52,270 --> 01:12:00,620 Значи ние се погледне преку и ние се каже, во ред, е низа ѕ минус еден 1671 01:12:00,620 --> 01:12:03,470 поголема од елемент дека ние сме во потрага по? 1672 01:12:03,470 --> 01:12:05,540 А одговорот е да, нели? 1673 01:12:05,540 --> 01:12:11,275 4 е поголемо од 3 и j е 2, така што овој код се извршува. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Па сега она што го правиме низа на 2, па токму тука, ние ги разменуваат. 1676 01:12:18,550 --> 01:12:25,620 Па ние само се каже, во ред, низа на 2 е сега се случува за да биде 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 И j се случува да е еднаква на j минус 1, кој е 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Тоа е ужасно, но вие момци го добиете идеја. 1681 01:12:37,200 --> 01:12:38,360 J е сега еднаков на 1. 1682 01:12:38,360 --> 01:12:44,360 И низа й е само ќе биде еднаква на нашата елемент, кој е 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Јас избришани нешто што не треба имаат или miswrote нешто, 1685 01:12:48,570 --> 01:12:49,910 но вие момци го добиете идеја. 1686 01:12:49,910 --> 01:12:50,640 >> Да го преместите на н. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 А потоа, ако тоа беа, што би јамка повторно и тоа ќе каже, во ред, j е 1 сега. 1689 01:12:57,960 --> 01:13:00,665 И низа j минус 1 е сега 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 Е 2 помалку од нашите елемент? 1692 01:13:03,760 --> 01:13:04,540 Не? 1693 01:13:04,540 --> 01:13:07,970 Тоа значи дека ние сме вметнува овој елемент 1694 01:13:07,970 --> 01:13:10,110 во правилната место во нашата Подредено низа. 1695 01:13:10,110 --> 01:13:14,400 Тогаш можеме да се земе тоа предвид и да се каже, Добро, ни сортирани низа е тука. 1696 01:13:14,400 --> 01:13:19,940 И тоа ќе се земе овој број 6 и да биде како, добро, е 6 помалку од оваа бројка? 1697 01:13:19,940 --> 01:13:20,480 Не? 1698 01:13:20,480 --> 01:13:21,080 Кул. 1699 01:13:21,080 --> 01:13:22,680 Ние сме во ред. 1700 01:13:22,680 --> 01:13:23,530 >> Направете го тоа повторно. 1701 01:13:23,530 --> 01:13:24,740 Ние велиме 7. 1702 01:13:24,740 --> 01:13:29,010 Е 7 помалку од крајот на нашата Подредено низа? 1703 01:13:29,010 --> 01:13:29,520 Не. 1704 01:13:29,520 --> 01:13:30,430 Значи ние сме во ред. 1705 01:13:30,430 --> 01:13:32,760 Така што ова ќе бидат подредени. 1706 01:13:32,760 --> 01:13:38,610 Во основа сето тоа го прави е тоа е велејќи преземање 1707 01:13:38,610 --> 01:13:42,060 на првиот елемент на Вашата несортиран низа, 1708 01:13:42,060 --> 01:13:46,010 дознаам каде оди во вашиот Подредено низа. 1709 01:13:46,010 --> 01:13:48,780 И тоа само се грижи на свопови да го направите тоа. 1710 01:13:48,780 --> 01:13:51,300 Ти си во основа, само Замена додека не е во право место. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Визуелна слика е тоа што сте се движат се надолу со тоа. 1713 01:13:56,990 --> 01:13:59,420 >> Па тоа е како половина меур вид стил. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Проверете студија 50. 1716 01:14:03,420 --> 01:14:06,000 Силно препорачувам обидува да кодот тоа на своја. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Ако имате било какви прашања или сакате да види примерок код за вметнување вид, 1719 01:14:12,450 --> 01:14:13,750 молам да ме известите. 1720 01:14:13,750 --> 01:14:14,500 Јас сум секогаш околу. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Така најлош случај траење и најдобар случај траење. 1723 01:14:20,200 --> 01:14:30,700 Како што можете дечко видов од табелата што веќе покажа вас, тоа е и н квадрат и n. 1724 01:14:30,700 --> 01:14:35,590 >> Толку вид да оди надвор од она што ние разговаравме за со нашите претходни видови, најлош 1725 01:14:35,590 --> 01:14:38,760 случај траење е дека ако тоа е сосема вон едиции, 1726 01:14:38,760 --> 01:14:42,530 ние треба да се споредуваат сите овие n пати. 1727 01:14:42,530 --> 01:14:47,020 Ние го правиме целина многу споредби бидејќи ако тоа е во обратен редослед, 1728 01:14:47,020 --> 01:14:50,360 ние сме случува да се каже, во ред, овој е иста, тоа е добро, 1729 01:14:50,360 --> 01:14:54,650 и овој еден ќе треба да се во споредба против првиот корисник да се помести назад. 1730 01:14:54,650 --> 01:14:56,710 И како што ние се кон опашката крајот, ние имаме 1731 01:14:56,710 --> 01:14:59,440 да се споредуваат, да ги споредиме, и споредуваат против сè. 1732 01:14:59,440 --> 01:15:03,030 >> Па тоа завршува се приближно n квадрат. 1733 01:15:03,030 --> 01:15:09,510 Ако тоа е точно тогаш вие се каже, во ред, 2, ти си добро. 1734 01:15:09,510 --> 01:15:11,330 3, ти си во споредба со 2. 1735 01:15:11,330 --> 01:15:12,310 Ти си добро. 1736 01:15:12,310 --> 01:15:14,150 4, може само да се споредуваат со опашката. 1737 01:15:14,150 --> 01:15:14,990 Ти си добро. 1738 01:15:14,990 --> 01:15:17,140 6, да се спореди со опашката, ти си во ред. 1739 01:15:17,140 --> 01:15:20,870 Значи за секои место, ако тоа е веќе сортирани, ти си едно споредба. 1740 01:15:20,870 --> 01:15:22,320 Па тоа е само н. 1741 01:15:22,320 --> 01:15:26,840 И бидејќи ние имаме најдобар случај траење на n и најлош случај траење на n 1742 01:15:26,840 --> 01:15:28,680 квадрат, ние немаме очекуваното траење. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> Тоа само зависи од хаос на нашата листа таму. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 И повторно, уште крива и другата маса. 1747 01:15:39,530 --> 01:15:41,170 Па разлики помеѓу сорти. 1748 01:15:41,170 --> 01:15:44,180 Јас сум само ќе бриз преку, јас се чувствувам како ние сме зборуваше опширно 1749 01:15:44,180 --> 01:15:46,570 за тоа како тие сите видови на се разликуваат и се поврзат заедно. 1750 01:15:46,570 --> 01:15:50,564 Па се спојат вид е последен Јас ќе ти роди момци со. 1751 01:15:50,564 --> 01:15:52,105 Ние имаме прилично шарени сликата. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Па се спојат вид е рекурзивен алгоритам. 1754 01:15:56,040 --> 01:15:59,910 Така вие се знаете што рекурзивен функција е? 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Секој сака да се каже? 1757 01:16:03,320 --> 01:16:04,739 Сакате да се обидете? 1758 01:16:04,739 --> 01:16:07,280 Така рекурзивен функција е само функција која што се нарекува. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Значи, ако вие момци се запознаени со Фибоначи секвенца, 1761 01:16:11,590 --> 01:16:15,670 тоа е смета рекурзивен затоа што ќе се земе претходните две 1762 01:16:15,670 --> 01:16:17,530 и додадете ги заедно да ја добиете вашата следниот. 1763 01:16:17,530 --> 01:16:21,440 Така рекурзивен, јас секогаш мислам на рекурзијата како што е како спирала 1764 01:16:21,440 --> 01:16:24,430 па ти си како незапирливото надолу во неа. 1765 01:16:24,430 --> 01:16:27,150 Но тоа е само функција дека се нарекува себеси. 1766 01:16:27,150 --> 01:16:32,660 >> И, всушност, навистина брзо можам може да ви покаже она што изгледа како. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Така рекурзивен тука, ако гледаме, ова е рекурзивен начин да се сумира во текот низа. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Така што сите тоа што го правиме е имаме сума функција 1771 01:16:47,880 --> 01:16:52,210 сумата што изведува големина и низа. 1772 01:16:52,210 --> 01:16:55,210 И ако забележите, големина понижавания од страна на еден секој пат. 1773 01:16:55,210 --> 01:17:00,365 И сите тоа го прави е ако x е еднаква на zero-- па ако на големината на низата 1774 01:17:00,365 --> 01:17:02,710 е еднаков на zero-- таа се враќа нула. 1775 01:17:02,710 --> 01:17:10,440 >> На друг начин го сумира ова последниот елемент на низата, 1776 01:17:10,440 --> 01:17:14,790 а потоа го претставува збир на остатокот од низа. 1777 01:17:14,790 --> 01:17:17,555 Така, тоа е само да го урива во помали и помали проблеми. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Скратам приказната, рекурзија, функција која се нарекува себеси. 1780 01:17:21,890 --> 01:17:25,740 Ако тоа е се што излезе од ова, тоа е она што рекурзивен функција е. 1781 01:17:25,740 --> 01:17:29,870 Ако се земе 51, ќе добиете многу, многу удобно со рекурзија. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Тоа е навистина кул. 1784 01:17:32,370 --> 01:17:34,660 Тоа го направи смисла на како 03:00 една ноќ надвор. 1785 01:17:34,660 --> 01:17:37,900 А јас бев како, зошто никогаш не ја користам оваа? 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Значи за спојување вид, во основа она што се случува да се направи, е тоа е 1788 01:17:42,430 --> 01:17:45,620 случува да го срушат и се кршат тоа надолу, додека тоа е само еден елементи. 1789 01:17:45,620 --> 01:17:47,570 Единствена елементи се лесни да се најде решение. 1790 01:17:47,570 --> 01:17:48,070 Ние се види тоа. 1791 01:17:48,070 --> 01:17:50,760 Ако имате еден елемент, тоа е веќе се смета подредени. 1792 01:17:50,760 --> 01:17:53,800 Па за внесување на n елементи, ако n е помал од 2, 1793 01:17:53,800 --> 01:17:58,120 само се вратат, бидејќи тоа значи дека тоа е 0 или 1 како што видовме. 1794 01:17:58,120 --> 01:18:00,050 Оние се смета сортирани елементи. 1795 01:18:00,050 --> 01:18:02,170 >> Инаку тоа се скрши на половина. 1796 01:18:02,170 --> 01:18:06,336 Сортирате првата половина, сортирање втората половина, а потоа ги спои заедно. 1797 01:18:06,336 --> 01:18:07,460 Затоа се вика спојување вид. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Па ние имаме тука ние ќе средиме овие. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Значи ние ги задржи имајќи ги до големината низа е 1. 1802 01:18:17,210 --> 01:18:20,790 Па кога тоа е 1, ние само се вратат бидејќи ова е сортирани низа, 1803 01:18:20,790 --> 01:18:23,940 и ова е сортирани низа, и тоа е Подредено низа, сите ние сме подредени. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Па потоа она што го правиме е ние започнете спојување заедно. 1806 01:18:29,420 --> 01:18:31,820 >> Па начинот на кој можете размислуваат за спојување е 1807 01:18:31,820 --> 01:18:36,240 можете само отстранување на помали бројот на секој од под низи 1808 01:18:36,240 --> 01:18:38,330 и само да го додадете на се појавија низа. 1809 01:18:38,330 --> 01:18:44,290 Па ако се погледне тука, кога имаме овие групи имаме 4, 6, и 1. 1810 01:18:44,290 --> 01:18:47,280 Кога сакаме да се спојат овие, ние се погледне во овие први две 1811 01:18:47,280 --> 01:18:50,730 и ние се каже, во ред, 1 е помал, оди на фронт. 1812 01:18:50,730 --> 01:18:54,330 4 и 6, нема ништо да се споредат него за да, само да го ознака на до крај. 1813 01:18:54,330 --> 01:18:58,020 >> Кога ние се комбинираат овие два, ние само изведува на помали една од овие две, 1814 01:18:58,020 --> 01:18:59,310 така што е 1. 1815 01:18:59,310 --> 01:19:01,690 И сега ние се помал од овие две, па 2. 1816 01:19:01,690 --> 01:19:03,330 Помал од овие две, 3. 1817 01:19:03,330 --> 01:19:06,260 Помали од овие две, 4, 5, 6. 1818 01:19:06,260 --> 01:19:08,630 Па ти си само одлепувате овие. 1819 01:19:08,630 --> 01:19:11,210 И затоа што сум е сортирани и претходно, 1820 01:19:11,210 --> 01:19:14,300 вие само треба еден споредба секое време таму. 1821 01:19:14,300 --> 01:19:19,610 Така повеќе код овде, правична застапеност. 1822 01:19:19,610 --> 01:19:24,410 Значи кога ќе почнете на средината и Ви вид левата и десната 1823 01:19:24,410 --> 01:19:26,180 и можеш само да се спојат тие. 1824 01:19:26,180 --> 01:19:30,080 >> И ние немаме код за спојат во право тука. 1825 01:19:30,080 --> 01:19:34,110 Но, повторно, ако одите на учат 50, тоа ќе биде таму. 1826 01:19:34,110 --> 01:19:36,860 На друг начин доаѓаат разговара со мене ако сте сепак збунети. 1827 01:19:36,860 --> 01:19:42,340 Толку кул работа тука е дека најдобар случај, најлош случај, и се очекува траење 1828 01:19:42,340 --> 01:19:46,250 сите се во log n, што е далеку подобро отколку што сум 1829 01:19:46,250 --> 01:19:48,000 виден за остатокот од нашите сорти. 1830 01:19:48,000 --> 01:19:51,840 Ние сме виделе N на квадрат и она што ние, всушност, 1831 01:19:51,840 --> 01:19:54,380 добиете тука е н најавите n, што е одлично. 1832 01:19:54,380 --> 01:19:55,830 >> Гледам како многу подобро тоа е. 1833 01:19:55,830 --> 01:19:56,780 Таков убав крива. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Па многу повеќе ефикасни. 1836 01:20:00,120 --> 01:20:03,510 Ако некогаш може, употреба спојат вид. 1837 01:20:03,510 --> 01:20:04,810 Тоа ќе ви заштеди време. 1838 01:20:04,810 --> 01:20:07,670 Потоа повторно, како што рековме, ако не ви оди во овој пониски регионот, 1839 01:20:07,670 --> 01:20:09,480 тоа не го направат тој многу разлика. 1840 01:20:09,480 --> 01:20:11,360 Добивате до илјадници и илјадници влезови, 1841 01:20:11,360 --> 01:20:13,318 вие дефинитивно сакате повеќе ефикасен алгоритам. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 И, повторно, нашата прекрасна маса на сите видови дека вие момци научив денес. 1844 01:20:19,400 --> 01:20:21,157 >> Па знам тоа е густа ден. 1845 01:20:21,157 --> 01:20:23,490 Ова не е секогаш се случува за да ви помогнат со вашиот PSET. 1846 01:20:23,490 --> 01:20:28,250 Но, јас само сакам да се направи одрекување тој дел не е само за psets. 1847 01:20:28,250 --> 01:20:31,240 Сите на овој материјал е фер игра за својата midterms. 1848 01:20:31,240 --> 01:20:35,430 И, исто така, ако го направите продолжи со ВС, овие се навистина важни основите 1849 01:20:35,430 --> 01:20:37,870 кои ќе треба да се знае. 1850 01:20:37,870 --> 01:20:41,700 Па некои денови ќе биде малку повеќе PSET помош, 1851 01:20:41,700 --> 01:20:44,600 но неколку недели ќе биде многу повеќе вистинската содржина 1852 01:20:44,600 --> 01:20:46,600 дека не може да се чини супер корисни за вас во моментов, 1853 01:20:46,600 --> 01:20:51,215 но јас ветувам ако продолжиш на ќе биде многу, многу корисни. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Па тоа е тоа за дел. 1856 01:20:54,250 --> 01:20:55,250 Down на жица. 1857 01:20:55,250 --> 01:20:56,570 I го направи тоа во рок од една минута. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Но таму да одите. 1860 01:20:58,970 --> 01:21:01,240 И јас ќе имаат крофни или бонбони. 1861 01:21:01,240 --> 01:21:03,464 Дали некој е алергичен на ништо, патем? 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Јајца и млеко. 1864 01:21:05,890 --> 01:21:08,120 Така крофни се не? 1865 01:21:08,120 --> 01:21:09,400 1866 01:21:09,400 --> 01:21:10,160 ОК. 1867 01:21:10,160 --> 01:21:10,770 Добре. 1868 01:21:10,770 --> 01:21:12,120 Чоколадо не? 1869 01:21:12,120 --> 01:21:12,620 Активните. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Starbursts се добри. 1872 01:21:14,670 --> 01:21:15,170 ОК. 1873 01:21:15,170 --> 01:21:17,045 Ние си оди за да имаат StarBurst следната недела потоа. 1874 01:21:17,045 --> 01:21:18,240 Тоа е она што ќе добиете. 1875 01:21:18,240 --> 01:21:19,690 Вие момци имаат голема недела. 1876 01:21:19,690 --> 01:21:20,460 Прочитајте ја спец. 1877 01:21:20,460 --> 01:21:22,130 >> Дозволете ми да знам дали имате било какви прашања. 1878 01:21:22,130 --> 01:21:25,300 Pset два степени треба да биде до вас од страна на четврток. 1879 01:21:25,300 --> 01:21:28,320 Ако имате било какви прашања за тоа како јас оценето нешто 1880 01:21:28,320 --> 01:21:32,250 или зошто оценето нешто начинот на кој јас не, пишете ми, дојди да разговара со мене. 1881 01:21:32,250 --> 01:21:34,210 Јас сум малку луд ова недела, но јас ветувам 1882 01:21:34,210 --> 01:21:36,340 Јас се уште ќе одговори во рок од 24 часа. 1883 01:21:36,340 --> 01:21:38,240 Така имаат голема недела, секого. 1884 01:21:38,240 --> 01:21:40,090 Среќно на вашиот PSET. 1885 01:21:40,090 --> 01:21:41,248