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 Дакле, већина би требало да имате стечен емаил од мене о свом Сцратцх Псет, 15 00:00:37,350 --> 00:00:39,920 као и оцењивање за Псет 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 Будите сигурни да користите цхецк50 у стиле50. 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 Неки од вас можда већ приметили да из Псет. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 И цхецк50 је само стварно једноставан начин да се уверите 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 Ако отпремите Псет 2 у Псет 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 тако да када постајеш е-пошту у као 2 сати пре подне и ја сам класирање. 38 00:01:30,080 --> 00:01:33,710 Ако не проузрокује морам да погледам широм за ваш Псет. 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 Дакле, ја знам нико не воли да размишљају о испитима, 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 Тако Бреак Оут. 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 да смо тек усинг-- --ИТ само је други пут смо урадили ово Псет, 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 или један од других ТФС, и можемо да добијемо оне фиксна. 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 Дакле, чак и ако нећеш заправо старт кодирање, преузети дистрибуцију 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 >> Одрицање за оне сте у соби и на мрежи. 93 00:03:41,700 --> 00:03:45,437 Ја ћу да покушава да пребацивање између ПоверПоинт у уређају 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 >> Дакле, идемо да разговарамо о ГДБ, што је за отклањање грешака. 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 Дакле, ГДБ ће вам помоћи у томе. 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 Дакле, као што сам поменуо ГДБ, је дебуггер. 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 да користите у ГДБ, а ја ћу ходати ти кроз демо га у секунди. 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 Тако да је алсо-- --ИТ врста пречице где 175 00:07:17,160 --> 00:07:19,530 не морате да наставимо као, ох. 176 00:07:19,530 --> 00:07:23,150 Принт кључ или Принт ја Управо аутоматски ће то учинити за вас. 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 >> Знаш кад си у ЦС техничке потешкоће цласс 228 00:09:28,220 --> 00:09:32,971 су врста део до-- Дакле, хајде да јасно ово. 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 Дакле, једна ствар да схвате са ГДБ је да ради само на извршним фајловима. 234 00:09:46,370 --> 00:09:48,040 Дакле, не можете да га покренете на ДОТСИ. 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 Дакле, да почне ГДБ, све што урадите, Глориа типа ГДБ, а онда само 241 00:10:04,590 --> 00:10:06,250 филе који желите. 242 00:10:06,250 --> 00:10:08,240 Увек мисспелл ​​Цезара. 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 покренути ЦСИ ћеш извршити Ова датотека или са дебагером. 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 >> Дакле, оно што желимо да урадиш-- --Со, Прва ствар 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 Он Шта је то што је потребно је улаз Барфоо у свим капе, а из неког разлога 259 00:10:56,350 --> 00:11:01,950 то не мења А. Управо оставља она сама, Да ли је све остало тачно, 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 Дакле, прво сте ствар обично Желим да радим кад год почнете на ГДБ 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 Главни је функција за све ваше програме. 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 Програм, сваки програм који сте руннинг ГДБ који треба командну линију 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 >> Дакле, ако сте овде, имамо Ако РЦ није једнака 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 Дакле, ако се питате ако РЦ је тачно, 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 РЦ је две, које је оно што смо очекивали, зар не? 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 Дакле, једна ствар да схвате са ГДБ такође, је 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 Али, ако ударимо Даље, а онда покушати Принт тастер, то је три. 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 хит Нект. 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 Дакле, сада можемо да пређемо преко, и тако сада имамо ову обичан текст ГетСтринг. 322 00:13:45,760 --> 00:13:48,600 Дакле, дозволите ми да представим шта ће се десити када смо ударили Нект овде. 323 00:13:48,600 --> 00:13:51,320 Наш ГДБ врста нестане, зар не? 324 00:13:51,320 --> 00:13:55,720 То је зато што ГетСтринг сада извршава, зар не? 325 00:13:55,720 --> 00:14:01,460 Дакле, када смо видели обичан текст једнако ГетСтринг, отворене паренс и паренс, 326 00:14:01,460 --> 00:14:04,380 и ми ударио Даље, то је заправо извршена одмах. 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 Дакле, можемо да удари Даље, а сада, као што сам Сигурно сте упознати са Цезара, 333 00:14:25,420 --> 00:14:27,260 Ово је, како је ова линија урадити. 334 00:14:27,260 --> 00:14:32,030 То је за инт једнако 0, н једнако Стрлен, обичан текст, а затим 335 00:14:32,030 --> 00:14:33,960 Ја је мање од Н, ја, плус, плус. 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 Ако је Б, то је обичан текст И. Ми могу добити информације о нашим локалним становништвом. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Дакле, је нула, и ако шест, који очекујемо, а наша кључна је три. 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: Па, можемо да --ве цхецк-- може разговарати о томе на тренутак. 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 Дакле, ако имамо капитал Б за наш први, 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 >> ГДБ ће само да вам покажем ствари које су заиста извршење. 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 То је О Треба промењен три слова напред. 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 која модификовани наш Б. Међутим, у овом случају овде, 382 00:16:28,620 --> 00:16:32,860 имамо да само то га прескачу, и отишао у [? Л Сифф. ?] 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 Такође је лине-- заборавити шта је линија тамо-- али је у [неразумљиво]. 392 00:16:54,940 --> 00:16:55,480 Да? 393 00:16:55,480 --> 00:16:58,639 >> СПЕАКЕР 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 >> ГДБ може бити супер корисна јер вас може одштампати све те ствари које сте 411 00:17:39,021 --> 00:17:39,520 не би. 412 00:17:39,520 --> 00:17:41,160 То је много више користи него принтф. 413 00:17:41,160 --> 00:17:43,440 Колико користите као принтф изјавама 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 и лике коментарисање у Принтф, или коментарисање напоље, 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 Ако проводите сат времена следеће недеље научите како да користите ГДБ, 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 Псет 6 дошао, а ја био Као, ја ћу научити 430 00:18:27,030 --> 00:18:29,500 Како да користите ГДБ, јер не знам шта се овде дешава. 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 кроз нешто слично Висионаре, овако. 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 за вас да дебуг ако желите. 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 Стварно га само једном разумео Морао сам да дебуг ствари са њим, 442 00:19:02,090 --> 00:19:08,170 и то је много боље да имају идеју о Како дебуг пре него касније. 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 Знам да је то нека врста Црасх Цоурсе ГДБ, 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 >> Дакле, ако се вратимо на наш ПоверПоинт. 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 Авх. 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 Дакле, бинарно претраживање, некако је од је-- --ве волим да зовем га завади па владај. 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 >> Дакле, имамо Н, што је линеарног времена. 493 00:20:51,260 --> 00:20:54,560 Ако је н преко два, што је незнатно боље, и даље расте супер брзо. 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 Ви покушавате да пронађете неке-- --иоу'ре покушава да пронађе иглу у пласту сена. 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 Знам да ти це бити у потрази кроз Сваки појединац игла, ствар сена, 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 је-- --Еверионе? 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 >> Дакле, ако можете да схватите оут-- имам наговештај тамо-- које су случајеви 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 н преко 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 Инструктор: Па н преко 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 Дакле, н преко 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 Дакле, упоредите средина валуе_вантед. 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 Дропбок треба отићи. 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 Дакле, ово је инт овде, тако да желе да се врате тачно или нетачно. 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 Али у овом случају, јер наша функција враћа боол, 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 Да ли ће разумети ако се само стави лажно на другој страни? 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 >> Дакле, ако имамо маин () и овако нешто. 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 Јер ако је-- 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 Инструктор: Дакле, Миддле валуе-- 769 00:32:28,820 --> 00:32:30,136 СТУДЕНТ: Плус 1. 770 00:32:30,136 --> 00:32:31,010 Инструктор: --плус 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 Дакле, врло моћан, веома корисно, хоћеш да га користите у једном од ваших каснијих псетс. 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 >> СТУДЕНТ: Да ли је битно да ли је ваш н чак или непаран? 810 00:34:09,840 --> 00:34:10,750 >> Инструктор: Не 811 00:34:10,750 --> 00:34:18,150 Јер смо га баци у средину као Инт, само ће га скратити. 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 Дакле, као што смо причали, знам Дејвид помиње сложености рунтимес. 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 >> СТУДЕНТ: [неразумљиво] фирст-- 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 Зато је то због тога што Лог н само настави дељењем са два. 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 Дакле, четири сортс-- балон, Инсертион, селекција, и спајање. 874 00:36:56,444 --> 00:36:57,485 Они су сви некако кул. 875 00:36:57,485 --> 00:37:02,860 Ако ви одлучите да ЦС 124, ћете научити о свим врстама врста. 876 00:37:02,860 --> 00:37:07,575 И ако си ккцд фан, тамо је стварно кул стрип о 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 >> Инструктор: Аха. 892 00:37:39,820 --> 00:37:40,564 Екацтли. 893 00:37:40,564 --> 00:37:41,730 Дакле, само поновити кроз. 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 Тако да радимо трећи пас, који је један свап. 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 И ми поновити цео низ као што смо управо урадили са овом примеру. 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 Тако да ће се поставити бројач једнак нули, 968 00:40:46,480 --> 00:40:48,070 онда ће се кроз поновити. 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 >> Дакле, онда проверава стање и она каже, у реду је бројач већа од нуле. 975 00:41:07,150 --> 00:41:09,290 Ако је, то опет. 976 00:41:09,290 --> 00:41:14,340 Желите да тако да када ресет проћи, бројач је једнака нули. 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 Дакле, прва ствар коју треба да Не се поновити кроз нашу низ. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Па како мислите да можда поновити кроз наше низ? 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 Ми желимо да се буде мање него н минус 1 минус к. 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 Дакле, ово је оптимизација овде где, се како сам рекао после сваке пасс 1009 00:42:32,830 --> 00:42:36,655 кроз низ ве Знам да је то год ајде-- 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 знамо да желите да проверите да ли Арраи н и Н плус 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 Ми желимо да проверите да ли низ н и н плус 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 >> СТУДЕНТ: Ако је низ н мање од низа Н плус 1. 1041 00:44:07,066 --> 00:44:07,816 Инструктор: Аха. 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 Тако да смо кроз овај кратко, тип своп функције прошле седмице. 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 Ако смо рекли је једнак Б, а затим Б једнак је А, све изненада обоје 1056 00:44:41,696 --> 00:44:43,150 су само једнако Б. 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 Дакле, оно што имамо је да ћемо имати неку инт Температура је једнак да-- можете доделити 1061 00:44:56,464 --> 00:44:59,130 да Који год хоћеш, само Уверите се да пратите тога-- 1062 00:44:59,130 --> 00:45:01,840 Дакле, у овом случају, ја ћу доделити га низ Н плус 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 То је такође један од великих ствари-- Не знам да ли је неко од вас 1071 00:45:19,270 --> 00:45:23,780 имао проблема где Ако пребаците два линија кода изненада ствари радио. 1072 00:45:23,780 --> 00:45:25,880 Поредак је веома важно у ЦС. 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 >> И можемо доделити то арраи н или у овом случају низ сам. 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 Дакле, кад год извршите замену, као што смо Управо јесам овде, желимо да ажурирате своп. 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 Дакле, ако Свапс нула, што сам увек је-- гет моје истине и моји фалсес помешао. 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 >> Инструктор: Бреак само разбија те из петље. 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 Поновити путем, своп ствари користећи темп променљива, а све је спремно тамо? 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 Назад на ПоверПоинт. 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 >> СТУДЕНТ: [неразумљиво] инт маин обично. 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 Ви би имати инт маин негде. 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 поновити кроз низ. 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 >> СТУДЕНТ Н минус 1. 1182 00:49:31,784 --> 00:49:32,700 Инструктор: Н минус 1. 1183 00:49:32,700 --> 00:49:35,070 Тако да значи да постоје Н минус 1 поређења. 1184 00:49:35,070 --> 00:49:40,060 Дакле, једна ствар је да схвате да је првог итерацији, 1185 00:49:40,060 --> 00:49:43,360 идемо кроз, упоредимо ови два-- тако да је 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 Када говорим о рунтиме и н. 1190 00:49:58,230 --> 00:50:04,680 Н представља број поређења као функција колико елемената 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 >> И сваки пут када покренете кроз низ, правимо н поређења. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Дакле, наша Рунтиме за ово је заправо н квадрат, која 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 >> СТУДЕНТ Н минус 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 Дакле н минус 1. 1222 00:51:22,990 --> 00:51:26,510 Кад год имате концепт као Н минус 1, склони смо да једноставно оставим 1223 00:51:26,510 --> 00:51:31,680 а ми само рећи н зато што имате то цомпаре сваки тхесе-- сваког пара. 1224 00:51:31,680 --> 00:51:36,470 Било би н минус 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 Тако да је најбољи случај Н, који значи да је листа већ сортирана, 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 Тако н квадрат. 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 Много горе него н као што видимо, и много, много горе него дневника 2н. 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 У најгорем случају, Н на квадрат, најбољем случају, н. 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 Тако да ћемо ићи у Следећи овдје-- избор врста. 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 Дакле, само начин да се размишља о То-- селекције Сорт, изаберите најмања вредност. 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 >> Дакле, идемо кроз смо поновити од почетка до краја. 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 Ти ћеш да иде од И једнако 0 за н минус 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 >> Дакле, минимално износи сам. 1340 00:55:59,600 --> 00:56:03,870 То је само кажем у овом случају индекс наше минималне вредности. 1341 00:56:03,870 --> 00:56:07,660 Онда ће то поновити кроз и иде од Ј једнак И плус 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 Тако да почнемо да га пореде са следећа један због чега је и плус 1 до Н 1345 00:56:16,970 --> 00:56:20,110 минус 1, што је крај низа тамо. 1346 00:56:20,110 --> 00:56:25,090 А рекли смо ако низ у ј је мање од Арраи мин, 1347 00:56:25,090 --> 00:56:29,200 онда пренесете где Наш минимални индекси је. 1348 00:56:29,200 --> 00:56:37,470 >> А ако мин није једнак И, као у којој смо се вратили овамо. 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 >> Шортс склони да раде на тај начин у томе то је често боље да их видим. 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 Тако да ћемо имати инт најмањи једнак низа на И. 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 Следећи пут смо поновити кроз, смо почетком у овај 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 Кад год је потребно да се поновити кроз низ, 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 Дакле, за неке инт к екуалс-- шта мислимо 1410 00:59:38,090 --> 00:59:39,700 К ће износити за почетак? 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 Зато желимо да се к инитиализед И до плус 1 да бисте започели. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> И ми желимо к у овом случају већ величина чувају овде, 1418 01:00:02,800 --> 01:00:03,930 тако да можемо да користимо величину. 1419 01:00:03,930 --> 01:00:06,240 Величина је величина низа. 1420 01:00:06,240 --> 01:00:09,620 И ми само желимо да Упдате К по један сваки пут. 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 Дакле, ако смо кроз поновити, ми Желим да кажем, ако је низ у К 1427 01:00:31,380 --> 01:00:37,080 је мање од наших најмањих валуе-- Ово је место где смо заправо 1428 01:00:37,080 --> 01:00:42,950 праћење шта је Најмањи овдје-- 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 То је само к. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Дакле низа к, к, они поклапају. 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 >> Ми само желимо да их добијем овде, која је шта је то Свап функцију на дну 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 А онда ће само поновити путем док не стигне скроз 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 >> Инструктор: Па једна ствар приметити овде је величина Инт. 1474 01:02:32,380 --> 01:02:35,680 Дакле, говоримо у овој врсти сорт-- је функција у овом цасе-- је 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 као са дужином низа или би поновити кроз 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 сами, требало би иди на студи.цс50. 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 Величина је претходно дефинисано горе Овде у декларацији функције. 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 Н квадрат. 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 >> СТУДЕНТ: си упоређивањем тхроугх-- 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 Тако да ћете завршити пролази кроз око н квадрат пута. 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 Такође, Н на квадрат јер идете да радите ту исту процедуру. 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 они варирају између Н или Н квадрат. 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 то гарантовано покренете н квадрат време. 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 И, опет, ако желите да сазнате више, узми ЦС 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 Ок, 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 >> Дакле, у основи за сам је једнако 0 до Н минус 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 Поставили смо ј једнак на то. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 И док ј је већи од нула и низ, Ј минус 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 >> Дакле, док још има ствари сортирање и ј минус један је-- шта 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 Кажеш да, у реду, је елемент пре него што где год сам ја-- немојмо 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 >> Тако да ће бити једнако 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 Дакле, ј је једнак И, па шта је ово изрека је да док се крећемо напред, 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 >> Дакле, када ј једнак 1 у овом предмету и Арраи Ј минус --виберите-- тако низ Ј минус 1 1652 01:10:49,850 --> 01:10:54,610 је 2 у овој цасе-- ако је то већа од елемента, 1653 01:10:54,610 --> 01:10:57,700 онда све ово ради помјера ствари доле. 1654 01:10:57,700 --> 01:11:04,790 Дакле, у овом случају, низ Ј минус један би арраи нула, што је 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 У овом случају, у ствари, ми могао урадиш-- Нека ово буде 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 Дакле, и је једнак 2, тако наш елемент је једнака 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 А наша ј је једнако 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 и ј је 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 И Ј ће износити ј минус 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 Ј је сада једнак 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 Ја избрисао нешто што не би требало имају или мисвроте нешто, 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 И онда би то било, то би петља опет и то би рекли, у реду, ј 1 сада. 1689 01:12:57,960 --> 01:13:00,665 И низ Ј минус 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 Као што сам већ видио момак из табеле Показали сте, то је и н квадрат и н. 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 морамо упоредити све ове н пута. 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 >> Тако да завршава као око н квадрат. 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 И зато што имамо најбољем случају рунтиме н и најгорем случају Рунтиме од н 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 И све што ради је да је к једнако зеро-- па ако величина низа 1774 01:17:00,365 --> 01:17:02,710 је једнак зеро-- враћа нула. 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 Имало је смисла у као 3 сам један излазак. 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 Дакле, на улаз н елемената, ако је н мање од 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 су све у лог Н, који је далеко бољи него што смо 1829 01:19:46,250 --> 01:19:48,000 видели остатак наших сорти. 1830 01:19:48,000 --> 01:19:51,840 Видели смо н квадрат и шта смо заправо 1831 01:19:51,840 --> 01:19:54,380 стигао је н лог н, што је одлично. 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 То не значи да иде да вам помогне са вашим псет. 1846 01:20:23,490 --> 01:20:28,250 Али ја само желим да направим одрицање тај део није само о псетс. 1847 01:20:28,250 --> 01:20:31,240 Све ово материјал је фер Игра за ваше испитима. 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 Дакле, неколико дана ће бити мало псет помоћи, 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 До жице. 1857 01:20:55,250 --> 01:20:56,570 Урадио сам то у року од једног минута. 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 Старбурстс су добри. 1872 01:21:14,670 --> 01:21:15,170 У реду. 1873 01:21:15,170 --> 01:21:17,045 Ми ћемо имати Старбурст следеће недеље тада. 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 Псет два разреда треба да буде ће вам до четвртка. 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 Срећно на псет. 1885 01:21:40,090 --> 01:21:41,248