1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> СПІКЕР 1: Прывітанне ўсім! 3 00:00:12,300 --> 00:00:13,890 Сардэчна запрашаем у профіль. 4 00:00:13,890 --> 00:00:17,480 Так рада, што так многія з вас як тут, і кожны, хто глядзіць онлайн. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Так, як звычайна Сардэчна запрашаем. 7 00:00:20,920 --> 00:00:24,360 Я спадзяюся, што вы ўсё былі выдатныя выхадныя, поўныя адпачынку, рэлаксацыі. 8 00:00:24,360 --> 00:00:26,026 Гэта было прыгожа ўчора. 9 00:00:26,026 --> 00:00:27,525 Так што, я спадзяюся, вам спадабалася на адкрытым паветры. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Такім чынам, спачатку пару аб'яваў. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Класіфікацыя. 14 00:00:32,700 --> 00:00:37,350 Так, большасць з вас павінен быў атрымаць па электроннай пошце ад мяне аб вашым драпін Pset, 15 00:00:37,350 --> 00:00:39,920 а таксама класіфікацыі для Pset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Так, толькі пара рэчаў. 18 00:00:42,220 --> 00:00:45,150 Абавязкова выкарыстоўвайце check50 ў style50. 19 00:00:45,150 --> 00:00:47,250 Яны прызначаны, каб быць Рэсурсы для вас, хлопцы, 20 00:00:47,250 --> 00:00:50,660 каб пераканацца, што вы атрымліваеце як мага больш ачкоў, як вы можаце 21 00:00:50,660 --> 00:00:52,390 без патрэбы губляць іх. 22 00:00:52,390 --> 00:00:54,407 Так, такія рэчы, як стыль вельмі важныя. 23 00:00:54,407 --> 00:00:55,740 Мы збіраемся зняць для яго. 24 00:00:55,740 --> 00:00:58,115 Некаторыя з вас, магчыма, ужо заўважыў, што ад вашага Pset. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 І check50 проста сапраўды просты спосаб, каб пераканацца, 27 00:01:01,450 --> 00:01:05,050 што мы на самай справе вяртання таго, што павінен быць вернуты карыстальніку, 28 00:01:05,050 --> 00:01:06,690 і што ўсё працуе правільна. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> На другім ноце, пераканайцеся, што ваш загрузкі рэчаў у патрэбную тэчку. 31 00:01:12,040 --> 00:01:14,470 Гэта робіць маё жыццё толькі Крыху больш складана 32 00:01:14,470 --> 00:01:18,836 калі вы загружаеце Pset 2 у Pset 1 таму што, калі я спампаваць рэчы, 33 00:01:18,836 --> 00:01:20,085 яны не спампаваць правільна. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 І я ведаю, што гэта крыху хісткі у сістэме, каб прывыкнуць да, 36 00:01:24,560 --> 00:01:26,950 але проста супер асцярожныя, калі толькі для мяне, 37 00:01:26,950 --> 00:01:30,080 так што, калі вы атрымліваеце лісты на як 2 раніцы і я градацыя. 38 00:01:30,080 --> 00:01:33,710 Калі не выклікаць у мяне ёсць, каб паглядзець усё вакол для вашага Pset. 39 00:01:33,710 --> 00:01:34,440 Прахладны. 40 00:01:34,440 --> 00:01:37,270 >> Я ведаю, што гэта рана, але я цалкам былі ўзятыя знянацку 41 00:01:37,270 --> 00:01:40,800 па эсэ, гэта з-за гэтага ў пятніцу, то мае прафесара былі проста падабаецца, о да. 42 00:01:40,800 --> 00:01:42,550 Памятаеце, у вас ёсць эсэ за пятніцу. 43 00:01:42,550 --> 00:01:45,780 Так, я ведаю, ніхто не любіць думаць аб прамежкавых выбарах, 44 00:01:45,780 --> 00:01:50,620 але ваш першы віктарына на 15 кастрычніка якія кастрычніка пачынае на гэтым тыдні. 45 00:01:50,620 --> 00:01:53,290 Так, гэта можа быць раней чым вы чакалі ўсё. 46 00:01:53,290 --> 00:01:57,510 Так што вы не кінулі знянацку, калі Я ўжо раздзел на наступным тыдні, што о, 47 00:01:57,510 --> 00:02:00,560 ваш тэст на наступным тыдні, я думаў, Я хацеў бы даць вам крыху больш 48 00:02:00,560 --> 00:02:01,500 з кіраўнікоў цяпер. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Так, устаноўлена, ваша праблема, нумар тры. 51 00:02:04,660 --> 00:02:07,070 Як людзі чыталі спец з цікаўнасці? 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 Добра. 54 00:02:09,199 --> 00:02:10,229 Мы атрымалі некалькі. 55 00:02:10,229 --> 00:02:12,320 Выгляд ўніз з мінулага тыдзень, але гэта нармальна. 56 00:02:12,320 --> 00:02:13,650 Я ведаю, што гэта было прыгожа па-за. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Так Break Out. 59 00:02:16,660 --> 00:02:21,010 Вызначана, пасля вы зрабілі сёння прачытаў вашу спецыфікацыю па меншай меры, 60 00:02:21,010 --> 00:02:25,240 паспрабуйце, як скачка Код размеркавання і працуе 61 00:02:25,240 --> 00:02:27,430 як у першы ініцыял рэч, што яны пытаюцца вас. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Так як мы выкарыстоўваем Код размеркавання і бібліятэка 64 00:02:32,590 --> 00:02:36,790 што мы толькі using-- --Яна толькі У другі раз мы зрабілі гэта Pset, 65 00:02:36,790 --> 00:02:38,650 вар'яты рэчы могуць адбыцца з Вашай машыны, 66 00:02:38,650 --> 00:02:41,370 і вы хочаце, каб знайсці, што прама цяпер у параўнанні з пазней. 67 00:02:41,370 --> 00:02:45,570 >> Таму што, калі гэта ў чацвер вечарам ці гэта У сераду ўвечары, і чаму- 68 00:02:45,570 --> 00:02:48,912 Ваш прыбор проста не хачу працаваць з бібліятэкай 69 00:02:48,912 --> 00:02:50,620 або з размеркаваннем Код, які сродкі 70 00:02:50,620 --> 00:02:52,309 Вы не можаце нават пачаць рабіць кадаваньне. 71 00:02:52,309 --> 00:02:54,100 Таму што вы не можаце праверыць каб убачыць, калі ён працуе. 72 00:02:54,100 --> 00:02:55,975 Ваш не збіраюся быць у стане каб убачыць, калі ён збірае. 73 00:02:55,975 --> 00:03:00,500 Вы хочаце, каб клапаціцца пра тых, у пачатку тыдзень, калі вы ўсё яшчэ можаце напісаць мне 74 00:03:00,500 --> 00:03:03,100 або адзін з іншых ТФ, і мы можам атрымаць тыя фіксаванай. 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 Я збіраюся спрабаваць пераключыць паміж PowerPoint ў прыборы 94 00:03:45,437 --> 00:03:47,270 таму што мы збіраемся быць рабіць некаторыя кадаваньне 95 00:03:47,270 --> 00:03:53,630 сёння па шматлікіх просьбах з ананімнага Прапанова апытанне я разаслаў на мінулым тыдні. 96 00:03:53,630 --> 00:03:55,480 Такім чынам, мы будзем рабіць некаторыя кадавання. 97 00:03:55,480 --> 00:03:57,800 Так што, калі вы, хлопцы, таксама хачу каб запусціць вашы прыборы, 98 00:03:57,800 --> 00:04:02,910 і вы павінны ёсць па электроннай пошце ад мяне, з файлам ўзору. 99 00:04:02,910 --> 00:04:04,310 Калі ласка, не саромейцеся зрабіць гэта. 100 00:04:04,310 --> 00:04:07,340 >> Так, мы збіраемся казаць пра GDB, які з'яўляецца адладчык. 101 00:04:07,340 --> 00:04:09,970 Гэта дапаможа вам выгляд высветліць, дзе 102 00:04:09,970 --> 00:04:11,860 справы ідуць не так у вашым кодзе. 103 00:04:11,860 --> 00:04:15,370 Гэта проста спосаб для вас крок па кодзе, як гэта адбываецца, 104 00:04:15,370 --> 00:04:19,100 і мець магчымасць раздрукаваць зменныя або паглядзець, што адбываецца на самай справе 105 00:04:19,100 --> 00:04:22,980 пад капот вершы праграму проста працуе, гэта як разломаў, 106 00:04:22,980 --> 00:04:25,030 і вы, як, не маючы ўяўлення, што толькі што адбылося тут. 107 00:04:25,030 --> 00:04:26,730 Я не ведаю, што лінія яго не ўдалося ў. 108 00:04:26,730 --> 00:04:29,040 Я не ведаю, дзе пайшло не так. 109 00:04:29,040 --> 00:04:31,280 Так, GDB будзе дапамагаць вам у гэтым. 110 00:04:31,280 --> 00:04:35,240 Акрамя таго, калі вы вырашыце працягнуць так, і прыняць 61, 111 00:04:35,240 --> 00:04:38,430 гэта будзе вельмі, вельмі б ваш лепшы сябар, таму што я магу вам сказаць, 112 00:04:38,430 --> 00:04:40,840 таму што я збіраюся праз гэтага класа. 113 00:04:40,840 --> 00:04:43,620 >> Мы будзем глядзець на двайковым Пошук, які, калі вы, хлопцы, памятайце 114 00:04:43,620 --> 00:04:47,540 Выдатны прыклад тэлефонная кніга Відовішча з класа. 115 00:04:47,540 --> 00:04:50,620 Мы будзем рэалізацыі, што і хадзіць праз што крыху больш, 116 00:04:50,620 --> 00:04:54,650 а затым мы збіраемся праз чатыры розныя віды, якія Bubble, 117 00:04:54,650 --> 00:04:56,285 Выбар, ўстаўкі, і аб'яднаць. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Прахладны. 120 00:04:58,330 --> 00:05:00,390 Так, GDB, як я ўжо казаў, гэта адладчык. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 І гэта свайго роду вялікі рэчы, вялікія функцыі або каманды 123 00:05:09,370 --> 00:05:13,240 што вы выкарыстоўваеце ў GDB, і буду хадзіць Вы праз дэма ёй у секунду. 124 00:05:13,240 --> 00:05:15,360 >> Такім чынам, гэта не проста збіраюся застацца рэферат. 125 00:05:15,360 --> 00:05:18,000 Я паспрабую і зрабіць яго як бетон наколькі гэта магчыма для вас, хлопцы. 126 00:05:18,000 --> 00:05:19,870 Так, зламаць. 127 00:05:19,870 --> 00:05:22,200 Гэта будзе прарыў альбо як, некаторы лік, якое 128 00:05:22,200 --> 00:05:26,900 ўяўляе сабой радок у вашай праграме, ці вы можаце назваць функцыю. 129 00:05:26,900 --> 00:05:30,150 Так што, калі вы кажаце, зламаць асноўны, ён спыніцца на галоўнай, 130 00:05:30,150 --> 00:05:32,400 і хай вы ідзяце праз гэтую функцыю. 131 00:05:32,400 --> 00:05:36,350 >> Сапраўды гэтак жа, калі ў вас ёсць нейкая знешняя функцыянаваць як своп або Cube, 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 Вы можаце сказаць, друку Key ў любы момант. 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 не павінны індывідуальна кажуць, друку I. друку паведамленне. 168 00:07:04,330 --> 00:07:04,970 Друк Key. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 А потым Дысплей. 171 00:07:07,700 --> 00:07:10,370 Тое, што гэта робіць, як вы крок у рамках праграмы, 172 00:07:10,370 --> 00:07:13,980 гэта проста каб пераканацца, што гэта адлюстраванне некаторых пэўную зменную 173 00:07:13,980 --> 00:07:14,780 у кожнай кропцы. 174 00:07:14,780 --> 00:07:17,160 Так што вы also-- --Яна гэта выгляд цэтліка дзе 175 00:07:17,160 --> 00:07:19,530 Вы не павінны працягваць ісці, як, ай. 176 00:07:19,530 --> 00:07:23,150 Друк Key або друку I. Гэта проста аўтаматычна зробіць гэта за вас. 177 00:07:23,150 --> 00:07:25,959 >> Так, з тым, што мы збіраемся каб бачыць, як гэта ідзе. 178 00:07:25,959 --> 00:07:28,000 Я збіраюся паспрабаваць і перамыкач у мой прыбор. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Глядзіце, калі я магу зрабіць гэта. 181 00:07:31,271 --> 00:07:31,770 Ўсё. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Мы проста збіраемся, каб адлюстраваць яго. 184 00:07:42,370 --> 00:07:44,530 Там няма нічога, з розуму на маім ноўтбуку ў любым выпадку. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 Добра. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 Гэта павінен быць гэты. 189 00:08:01,054 --> 00:08:01,795 Гэта настолькі малюсенькія. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Давайце паглядзім, калі мы можам зрабіць гэта. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> Добра. 194 00:08:10,940 --> 00:08:15,305 Аліса, відавочна, змагаецца тут ледзь-ледзь, 195 00:08:15,305 --> 00:08:17,995 але мы атрымаем яе ў Momento. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 Добра. 198 00:08:22,020 --> 00:08:25,900 Мы проста збіраемся павялічыць гэта. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 Добра. 201 00:08:29,380 --> 00:08:31,679 Можа ўсё быццам бачылі? 202 00:08:31,679 --> 00:08:32,470 Можа быць, трохі? 203 00:08:32,470 --> 00:08:33,594 Я ведаю, гэта крыху малая. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Вы не можаце дастаткова высветліць як зрабіць гэта больш. 206 00:08:37,530 --> 00:08:38,350 Калі хто-небудзь ведае. 207 00:08:38,350 --> 00:08:40,309 Хто-небудзь ведае, як зрабіць яго больш? 208 00:08:40,309 --> 00:08:40,932 Добра. 209 00:08:40,932 --> 00:08:42,140 Мы збіраемся звярнуць з яго. 210 00:08:42,140 --> 00:08:45,801 Не мае значэння, у любым выпадку, таму што гэта проста што код, які вы, хлопцы, павінны 211 00:08:45,801 --> 00:08:46,300 ёсць. 212 00:08:46,300 --> 00:08:48,310 >> Што больш важна, з'яўляецца тэрмінал тут. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 І тут мы маем Чаму так мала? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Налады. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 О. 219 00:09:08,420 --> 00:09:09,500 Праўда Айк. 220 00:09:09,500 --> 00:09:10,880 Як гэта? 221 00:09:10,880 --> 00:09:11,770 З там. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Так лепш для ўсіх? 224 00:09:21,810 --> 00:09:22,525 Добра,. 225 00:09:22,525 --> 00:09:23,025 Прахладны. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Вы ведаеце, калі вы знаходзіцеся ў CS тэхнічныя цяжкасці класа 228 00:09:28,220 --> 00:09:32,971 з'яўляюцца свайго роду часткай the-- Так, давайце растлумачым гэта. 229 00:09:32,971 --> 00:09:33,470 Добра. 230 00:09:33,470 --> 00:09:38,060 Так, прама тут, у раздзеле, якія мы мелі тут. 231 00:09:38,060 --> 00:09:40,830 Цэзар ўяўляе сабой выкананы файл. 232 00:09:40,830 --> 00:09:41,800 Так што я зрабіў гэта. 233 00:09:41,800 --> 00:09:46,370 Так, адна рэч, каб зразумець, з GDB з'яўляецца што ён працуе толькі на выкананых файлах. 234 00:09:46,370 --> 00:09:48,040 Такім чынам, вы не можаце запусціць яго на dotsy. 235 00:09:48,040 --> 00:09:50,532 Вы павінны рэальна зрабіць Пераканайцеся, што ваш код кампілюецца, 236 00:09:50,532 --> 00:09:51,865 і што ён на самай справе можа працаваць. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Такім чынам, пераканайцеся, што калі гэта не так кампіляцыі, атрымаць яго для кампіляцыі, 239 00:09:56,186 --> 00:09:57,810 так што вы можаце роду праходзяць праз яго. 240 00:09:57,810 --> 00:10:04,590 Такім чынам, для пачатку GDB, усё, што вам рабіць, Глорыя тыпу GDB, а затым проста 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 запусціць CSI вы збіраецеся выканаць гэта файлы альбо з дапамогай адладчыка. 246 00:10:19,240 --> 00:10:19,910 Добра. 247 00:10:19,910 --> 00:10:22,885 Так, вы што, вы атрымліваеце гэты від тарабаршчыну. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Гэта проста ўсе рэчы аб адладчыка. 250 00:10:25,750 --> 00:10:28,200 Вы сапраўды не трэба турбавацца пра гэта прама цяпер. 251 00:10:28,200 --> 00:10:31,460 І, як вы бачыце, у нас ёсць гэта адкрытыя круглыя ​​дужкі, ВУП, блізкія круглыя ​​дужкі, 252 00:10:31,460 --> 00:10:34,690 і толькі збольшага падобны наша камандны радок, ці не так? 253 00:10:34,690 --> 00:10:37,010 >> Такім чынам, што ж мы хочам do-- --So, Першае, што 254 00:10:37,010 --> 00:10:39,570 гэта мы хочам выбраць месца, каб разбіць яго. 255 00:10:39,570 --> 00:10:42,332 Так, ёсць адна памылка У гэтай праграме Цэзар 256 00:10:42,332 --> 00:10:44,290 што я ўяўляю, што мы збіраемся высветліць. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Гэта Што яна робіць, гэта ён прымае на ўваход Barfoo загалоўнымі літарамі, і чаму- 259 00:10:56,350 --> 00:11:01,950 гэта не мяняе А. Гэта проста пакідае толькі яна, усё астатняе правільна, 260 00:11:01,950 --> 00:11:03,980 але другая літара Застаецца нязменным. 261 00:11:03,980 --> 00:11:07,120 Так, мы збіраемся, каб паспрабаваць высветліць, чаму гэта. 262 00:11:07,120 --> 00:11:10,440 Так, першае, што вы, як правіла, хачу зрабіць, калі вы пачынаеце на GDB 263 00:11:10,440 --> 00:11:12,010 з'яўляецца высветліць, дзе разбіць яго. 264 00:11:12,010 --> 00:11:14,956 >> Так Цэзар з'яўляецца даволі кароткая праграма. 265 00:11:14,956 --> 00:11:16,330 Мы проста павінны адну функцыю, ці не так? 266 00:11:16,330 --> 00:11:18,520 Што наша функцыя ў Цэзара? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Там толькі адна функцыя, Галоўнае правільна? 269 00:11:24,350 --> 00:11:26,490 Галоўная функцыя для ўсіх вашых праграм. 270 00:11:26,490 --> 00:11:29,230 Калі ў вас не было Main, я мог бы быць трохі хваляваўся зараз, 271 00:11:29,230 --> 00:11:31,000 але я спадзяюся, што вы ўсё былі Main там. 272 00:11:31,000 --> 00:11:34,150 Такім чынам, што мы можам зрабіць, гэта мы можам проста разарваць Main, як і што. 273 00:11:34,150 --> 00:11:35,190 Так, ён кажа, ОК. 274 00:11:35,190 --> 00:11:37,430 Мы ставім нашу супыну адзін ёсць. 275 00:11:37,430 --> 00:11:42,870 >> Так, у цяперашні час памятаць, Цэзар займае адно камандным радку аргументаў права 276 00:11:42,870 --> 00:11:45,150 і мы не зрабілі, што яшчэ нідзе. 277 00:11:45,150 --> 00:11:47,560 Такім чынам, што ж вы робіце, калі Вы на самой справе ісці працаваць 278 00:11:47,560 --> 00:11:51,540 праграма, любая праграма, што ты працуе ў GDB, які мае патрэбу каманднага радка 279 00:11:51,540 --> 00:11:55,010 Аргументы, што вы збіраецеся ўваход пры першым запуску яе запуску. 280 00:11:55,010 --> 00:11:59,280 Так, у дадзеным выпадку, мы робім Запуск з ключом у тры разы. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 І гэта будзе на самой справе пачаць. 283 00:12:02,040 --> 00:12:08,480 >> Так што, калі вы бачыце тут, у нас ёсць Калі RC не роўна 2. 284 00:12:08,480 --> 00:12:12,210 Так што, калі вы, хлопцы, ва ўсіх ёсць што файл, які я разаслаў да 285 00:12:12,210 --> 00:12:15,100 Вы ўбачыце, што гэта як Першая лінія наша галоўная функцыя, ці не так? 286 00:12:15,100 --> 00:12:17,890 Гэта праверка таго, калі ў нас ёсць правільнае колькасць аргументаў. 287 00:12:17,890 --> 00:12:20,620 Так што, калі вам цікава, калі RC правільна, 288 00:12:20,620 --> 00:12:23,250 Вы можаце зрабіць што-то так жа, як для друку RC. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC роўны двум, які што мы чакалі, ці не так? 291 00:12:28,640 --> 00:12:32,010 >> Так, мы можам ісці далей, і працягваць да канца. 292 00:12:32,010 --> 00:12:33,200 Так, у нас ёсць некаторыя клавішы там. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 І мы можам раздрукаваць наш ключ каб пераканацца, што гэта правільна. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Цікава. 297 00:12:39,500 --> 00:12:41,210 Не зусім тое, што мы чакалі. 298 00:12:41,210 --> 00:12:44,810 Так, адна рэч, каб зразумець, з GDB таксама, з'яўляецца 299 00:12:44,810 --> 00:12:49,000 што гэта не пакуль вы не патрапілі Далей, што лінія, што вы толькі што бачылі 300 00:12:49,000 --> 00:12:50,720 на самай справе выкананы. 301 00:12:50,720 --> 00:12:53,870 Так, у гэтым выпадку ключ ня быў прызначаны яшчэ. 302 00:12:53,870 --> 00:12:57,050 Так, Key некаторы значэнне смецця што вы бачыце на дне там. 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 Такім чынам, цяпер мы можам рухацца праз, і так Цяпер у нас ёсць гэты просты тэкставы GetString. 322 00:13:45,760 --> 00:13:48,600 Такім чынам, дазвольце мне проста ўвесці што адбудзецца, калі мы трапілі Далей тут. 323 00:13:48,600 --> 00:13:51,320 Наша GDB выгляд знікае, ці не так? 324 00:13:51,320 --> 00:13:55,720 Гэта таму, што GetString Цяпер выкананне, ці не так? 325 00:13:55,720 --> 00:14:01,460 Так, калі мы ўбачылі звычайны тэкст роўны GetString, адкрытыя круглыя ​​дужкі і круглыя ​​дужкі, 326 00:14:01,460 --> 00:14:04,380 і мы трапілі Далей, што мае фактычна выканана цяпер. 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 Гэта для Int я роўная 0, N роўны STRLEN, просты тэкст, а затым 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 Калі гэта B, гэта звычайны тэкст І. Мы можна атрымаць інфармацыю аб нашых мясцовых жыхароў. 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: Ну, мы можам check-- --Мы можа пагаварыць пра тое, што ў адну секунду. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Але вы павінны атрымліваць гэта. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Так што, калі ў нас ёсць капітал У нашай першай, 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 выконваецца толькі ў If ўмова правільнага права? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB толькі збіраюся паказаць вам, рэчы, якія на самай справе выканаўцы. 363 00:15:40,240 --> 00:15:45,140 Так што калі гэта ўмова Калі не было выканана, гэта проста хачу, каб перайсці да наступнай радку. 364 00:15:45,140 --> 00:15:46,540 Добра? 365 00:15:46,540 --> 00:15:48,510 Так, у нас ёсць што. 366 00:15:48,510 --> 00:15:51,171 Гэты кранштэйн азначае, што гэта зачынены з гэтай завесы цяпер. 367 00:15:51,171 --> 00:15:52,420 Так, ён збіраецца пачаць зноў. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Гэтак жа, як, што. 370 00:15:56,280 --> 00:15:59,120 Так, што мы можам атрымаць інфармацыю аб нашых мясцовых жыхароў тут, 371 00:15:59,120 --> 00:16:02,575 і мы бачым, што наша першая Ліст змянілася, ці не так? 372 00:16:02,575 --> 00:16:05,150 Гэта цяпер E, як і павінна быць. 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 якія зменены наш B. Але, у гэтым выпадку тут, 382 00:16:28,620 --> 00:16:32,860 у нас ёсць, што ён проста прапусціў яго, і пайшоў у [? L Сифф. ?] 383 00:16:32,860 --> 00:16:34,660 Так што-то там адбываецца. 384 00:16:34,660 --> 00:16:37,780 Тое, што гэта кажа вам, што, мы ведаем, што ён павінен злавіць тут, 385 00:16:37,780 --> 00:16:39,200 але гэта не так. 386 00:16:39,200 --> 00:16:42,210 Можа хто-небудзь паглядзець, што наш Праблема ў тым, у гэтым радку? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Гэта вельмі хвілін, што. 389 00:16:46,969 --> 00:16:48,510 І вы таксама можаце паглядзець на кодзе. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Ён таксама line-- забыць тое, што лінія гэта у there-- але гэта ў [неразборліва]. 392 00:16:54,940 --> 00:16:55,480 Так? 393 00:16:55,480 --> 00:16:58,639 >> СПІКЕР 4: Гэта на больш чым старонку, калі вы чытаеце гэта ў кнізе. 394 00:16:58,639 --> 00:16:59,430 СПІКЕР 1: Дакладна. 395 00:16:59,430 --> 00:17:02,620 Так, адладчык не мог сказаць, Вы што, але адладчык 396 00:17:02,620 --> 00:17:05,880 можа вам ўніз да лініі што вы ведаеце, не функцыянуе. 397 00:17:05,880 --> 00:17:09,319 І часам, калі асабліва пазней у семестр, калі 398 00:17:09,319 --> 00:17:12,910 Вы маеце справу з сотняй, з сто некалькі радкоў кода, і вы 399 00:17:12,910 --> 00:17:16,190 не ведаю, дзе гэта не ўдаецца, гэта выдатны спосаб зрабіць гэта. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Так, мы знайшлі наш памылка. 402 00:17:18,989 --> 00:17:21,530 Вы можаце гэта выправіць у файле, а затым вы можаце запусціць яго зноў, 403 00:17:21,530 --> 00:17:23,029 і ўсё будзе працаваць выдатна. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 І, самае важнае, гэта гэта можа здацца, ОК. 406 00:17:30,590 --> 00:17:31,090 Так. 407 00:17:31,090 --> 00:17:31,370 Прахладны. 408 00:17:31,370 --> 00:17:32,744 Вы ведалі, што вы шукаеце. 409 00:17:32,744 --> 00:17:34,910 Такім чынам, вы ведалі, што рабіць. 410 00:17:34,910 --> 00:17:39,021 >> GDB можа быць супер карысна, таму што вас можна раздрукаваць ўсе гэтыя рэчы, якія вы 411 00:17:39,021 --> 00:17:39,520 не будзе. 412 00:17:39,520 --> 00:17:41,160 Гэта значна больш карысна, чым PRINTF. 413 00:17:41,160 --> 00:17:43,440 Як многія з вас выкарыстоўваць як PRINTF справаздачнасці 414 00:17:43,440 --> 00:17:46,200 каб высветліць, дзе памылка была, ці не так? 415 00:17:46,200 --> 00:17:48,450 Так, з гэтым, вы не павінны працягваць вяртацца, 416 00:17:48,450 --> 00:17:51,139 і падабаецца каментуючы ў PRINTF або каментавання, 417 00:17:51,139 --> 00:17:52,930 і высветліць, што Вы павінны быць друку. 418 00:17:52,930 --> 00:17:55,670 Гэта на самай справе проста дазваляе пакрокава, раздрукаваць рэчы 419 00:17:55,670 --> 00:18:00,000 як вы праходзіце, так, вы можаце назіраць, як яны мяняюцца ў рэжыме рэальнага часу, 420 00:18:00,000 --> 00:18:02,190 як вашай праграме працуе. 421 00:18:02,190 --> 00:18:04,390 >> І для гэтага трэба крыху Трохі прывыкнуць. 422 00:18:04,390 --> 00:18:07,850 Я вельмі рэкамендую проста выгляд быць трохі расчараваныя з ім 423 00:18:07,850 --> 00:18:08,930 прама цяпер. 424 00:18:08,930 --> 00:18:13,450 Калі вы праводзіце гадзіну на працягу на наступным тыдні навучання, як выкарыстоўваць GDB, 425 00:18:13,450 --> 00:18:16,140 Вы пазбавіце сябе так шмат часу ў далейшым. 426 00:18:16,140 --> 00:18:18,750 І літаральна. мы кажам гэта людзям кожны год, 427 00:18:18,750 --> 00:18:23,890 і я памятаю, калі я ўзяў клас, я быў бы, мне будзе добра. 428 00:18:23,890 --> 00:18:24,700 Няма. 429 00:18:24,700 --> 00:18:27,030 Pset 6 загарэліся і я быў як, я збіраюся вучыцца 430 00:18:27,030 --> 00:18:29,500 як выкарыстоўваць GDB, таму што я не ведаю, што тут адбываецца. 431 00:18:29,500 --> 00:18:32,940 >> Так што, калі вы не спяшайцеся, так выкарыстоўваць яго на больш дробныя праграм 432 00:18:32,940 --> 00:18:35,697 што вы збіраецеся быць працаваць, як працуе 433 00:18:35,697 --> 00:18:37,530 праз што-то накшталт Visionare, як гэта. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Ці, калі вы хочаце дадатковую практыку, я ўпэўнены, што Я мог прыдумаць багі праграм, 436 00:18:42,850 --> 00:18:45,300 для адладжваць, калі вы хочаце. 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 Я ведаю, што гэта накшталт як паскораны курс GDB, 446 00:19:12,960 --> 00:19:16,400 і я, безумоўна, працаваць на атрыманне гэта глядзець больш у наступны раз. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Прахладны. 449 00:19:18,280 --> 00:19:20,390 >> Так што, калі мы вернемся да нашага PowerPoint. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Ці будзе гэта працаваць? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 АДД. 454 00:19:30,210 --> 00:19:31,101 Так. 455 00:19:31,101 --> 00:19:31,600 Добра. 456 00:19:31,600 --> 00:19:35,480 Так што, калі вы калі-небудзь спатрэбіцца любы з тыя, зноў жа, ёсць спіс. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Так Двайковы пошук, які ўсё памятае вялікую відовішча Давіда 459 00:19:40,830 --> 00:19:42,259 раздзіраючы тэлефонныя кнігі ў палове. 460 00:19:42,259 --> 00:19:44,050 Я сапраўды не атрымаць тэлефонныя кнігі больш, 461 00:19:44,050 --> 00:19:46,530 таму як дзе ты атрымаць тэлефонныя кнігі ў гэтыя дні? 462 00:19:46,530 --> 00:19:48,220 Я сапраўды не ведаю. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Двайковы пошук. 465 00:19:50,590 --> 00:19:52,464 Ці памятае хто- Як бінарны пошук працы? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Любы наогул? 468 00:19:55,220 --> 00:19:56,325 Так? 469 00:19:56,325 --> 00:19:58,283 СПІКЕР 5: Вы ведаеце, калі Вы глядзіце на якіх палова 470 00:19:58,283 --> 00:20:01,146 гэта было б у, Зыходзячы з гэтага, і пазбавіцца ад другой паловы. 471 00:20:01,146 --> 00:20:01,896 >> СПІКЕР 1 Роўна. 472 00:20:01,896 --> 00:20:06,290 Так, бінарны пошук, гэта збольшага a-- --мы падабаецца называць гэта падзяляй і ўладар. 473 00:20:06,290 --> 00:20:09,170 Такім чынам, што ж вы будзеце рабіць гэта Вы будзеце выглядаць у сярэдзіне, 474 00:20:09,170 --> 00:20:11,990 і вы ўбачыце, калі ён адпавядае тое, што вы шукаеце. 475 00:20:11,990 --> 00:20:15,420 А калі гэта не так, то вы спрабуеце высветліць, ён збіраецца пакінуць 476 00:20:15,420 --> 00:20:16,450 палова ці правая палова. 477 00:20:16,450 --> 00:20:19,325 Так, гэта можа быць, калі вы шукаеце на што-тое, што гэта алфавітны, 478 00:20:19,325 --> 00:20:20,720 Вы бачыце, а. 479 00:20:20,720 --> 00:20:22,750 Прыходзіць Ці Элісан да М? 480 00:20:22,750 --> 00:20:23,250 Так. 481 00:20:23,250 --> 00:20:25,030 Так, мы збіраемся паглядзіце на першую палову. 482 00:20:25,030 --> 00:20:26,450 >> Ці гэта можа быць як з лікамі. 483 00:20:26,450 --> 00:20:28,830 Усё, што вы можаце параўнаць, гэта могуць быць адсартаваныя. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Вы можаце выкарыстоўваць бінарны пошук на. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Так, хто-небудзь памятае гэта Графік ці што гэта такое? 488 00:20:37,455 --> 00:20:39,520 Гэта асімптатычнай складанасці. 489 00:20:39,520 --> 00:20:42,830 Такім чынам, гэты графік толькі апісвае, як доўга ён 490 00:20:42,830 --> 00:20:46,230 прымае вас, каб вырашыць праблему, як Вы павялічыць колькасць рэчаў 491 00:20:46,230 --> 00:20:47,090 што вы выкарыстоўваеце. 492 00:20:47,090 --> 00:20:51,260 >> Так, у нас ёсць N, які з'яўляецца лінейнае час. 493 00:20:51,260 --> 00:20:54,560 Калі N за два, што крыху лепш, яшчэ расце вельмі хутка. 494 00:20:54,560 --> 00:20:58,360 А потым мы Увайдзіце, які з'яўляецца што мы лічым бінарны пошук. 495 00:20:58,360 --> 00:21:03,630 Калі мы заўважаем, як вашай праблемы становіцца нашмат і нашмат больш, 496 00:21:03,630 --> 00:21:06,600 Час, якое патрабуецца вам яе вырашыць на самай справе не павялічыць, што шмат. 497 00:21:06,600 --> 00:21:09,010 Гэта як супастаўныя Тут у пачатку. 498 00:21:09,010 --> 00:21:10,060 Ты як, у парадку. 499 00:21:10,060 --> 00:21:13,000 Нічога тут не сапраўды ад таго, які мы выкарыстоўваем, 500 00:21:13,000 --> 00:21:16,220 але вы выйсці на мільён, мільярд. 501 00:21:16,220 --> 00:21:20,010 Вы спрабуеце знайсці some-- --you're спрабуючы знайсці іголку ў стозе сена. 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 is-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Больш, чым тое, што мы шукаю, ці не так? 547 00:22:57,470 --> 00:22:59,860 Так, мы збіраемся кінуць ад усё направа. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Вось так. 550 00:23:01,940 --> 00:23:03,700 Цяпер, усё, што мы засталіся з адным. 551 00:23:03,700 --> 00:23:07,760 Так мы правяраем, гэта адзін, што мы шукаем? гэта. 552 00:23:07,760 --> 00:23:08,970 Мы знайшлі, што мы хацелі. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Такім чынам, мы зрабілі. 555 00:23:11,690 --> 00:23:12,550 Білінейны Пошук. 556 00:23:12,550 --> 00:23:15,740 >> І калі вы заўважылі, мы было сем уваходаў там. 557 00:23:15,740 --> 00:23:24,320 Гэта толькі нам, як тры разы, але калі вы робіце, як мільярд, 558 00:23:24,320 --> 00:23:28,190 Вы, хлопцы, ведаеце, колькі крокаў было б прыняць, калі ў нас было чатыры мільярды рэчы? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Любыя здагадкі? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Гэта 32. 563 00:23:33,960 --> 00:23:37,110 32 крокаў, каб знайсці што-то у чатыры мільярды 564 00:23:37,110 --> 00:23:39,650 элемент масіва з ступеняў двойкі. 565 00:23:39,650 --> 00:23:43,550 Так два гэта 32, гэта да чатырох мільярдаў. 566 00:23:43,550 --> 00:23:50,430 >> Так даволі вар'ятам, як вы ўсё яшчэ ў як досыць невялікага ліку крокаў 567 00:23:50,430 --> 00:23:52,650 знайсці што-то ў чатыры мільярды элементаў. 568 00:23:52,650 --> 00:23:55,730 Так на гэтай ноце, мы збіраюся кадзіраваць гэта 569 00:23:55,730 --> 00:23:58,950 так вы, хлопцы, можа на самай справе выгляд паглядзець, як гэта працуе. 570 00:23:58,950 --> 00:24:01,520 Добра, так што вы, хлопцы, можаце закадаваць. 571 00:24:01,520 --> 00:24:04,100 Я збіраюся дазволіць вам, хлопцы гаварыць на трохі. 572 00:24:04,100 --> 00:24:07,970 Пазнаёмцеся з людзьмі вакол вас, што з'яўляецца што хто-то хацеў ад апошняй секцыі. 573 00:24:07,970 --> 00:24:10,280 >> Так што ведаць людзей вакол вас. 574 00:24:10,280 --> 00:24:11,305 Пагаворыце для няшмат. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 І ўсё, што я хачу ад вас Хлопцы зараз проста 577 00:24:15,730 --> 00:24:17,575 паспрабаваць стварыць накід псевдокоде. 578 00:24:17,575 --> 00:24:18,075 Добра? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Вау. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Усё, што я хачу ад вас, хлопцы гэта ты проста хачу, каб запоўніць гэта пакуль выпадку. 583 00:24:29,520 --> 00:24:32,170 Так я паставіў гэтыя верхняя і ніжняя межы якой 584 00:24:32,170 --> 00:24:35,250 ўяўляюць сабой пачатак і канец нашага масіва. 585 00:24:35,250 --> 00:24:40,440 І вы збіраецеся на самай справе цыкл па і высветліць 586 00:24:40,440 --> 00:24:42,470 што мы робім у гэтым час цыклу. 587 00:24:42,470 --> 00:24:45,810 >> Так што калі вы можаце высветліць out-- мяне ёсць намёк there-- якія справы 588 00:24:45,810 --> 00:24:46,640 што мы маем тут? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Так што, калі вы хочаце, каб высветліць, выпадкі, мы будзем псевдокод тых 591 00:24:51,560 --> 00:24:53,350 і тады мы будзем сапраўды закадаваць іх. 592 00:24:53,350 --> 00:24:55,330 І гэта будзе, я думаю, мы спадзяемся, гэта будзе 593 00:24:55,330 --> 00:24:56,788 быць крыху лягчэй, чым вы чакаеце. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Таму што гэта не так ужо шмат кода, на самай справе, што гэта сапраўды крута. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> Мм-хм? 598 00:25:35,018 --> 00:25:35,893 >> СТУДЕНТ: [неразборліва]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 Выкладчыкі: Так. 601 00:25:37,650 --> 00:25:38,595 Існаваў што-то знайсці ў сярэдзіне. 602 00:25:38,595 --> 00:25:39,552 >> СТУДЕНТ: Такім чынам, мы можам выкарыстоўваць яго. 603 00:25:39,552 --> 00:25:39,770 Добра. 604 00:25:39,770 --> 00:25:40,603 >> Выкладчыкі: Выдатна. 605 00:25:40,603 --> 00:25:42,950 Так што першае, што нам трэба зрабіць. 606 00:25:42,950 --> 00:25:44,330 Так знайсці сярэдзіну. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Вялікая. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Так што ў вас ёсць уяўленне аб тым, як мы маглі б на самой справе знайсці сярэдзіну з кодам? 611 00:25:55,010 --> 00:25:55,980 >> СТУДЕНТ: Так. 612 00:25:55,980 --> 00:25:57,000 п над 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 Так параўноўваць сярэдні для value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Прахладны. 666 00:28:15,160 --> 00:28:17,950 Такім чынам, вы бачыце тут у нас ёсць гэта значэнне мы хочам тут. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Памятаеце, што гэта масіў. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Так сярэдні ставіцца да індэксу. 671 00:28:26,970 --> 00:28:29,785 Такім чынам, мы хочам зрабіць значэння сярэдзіне. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Не забывайце, калі вы хочаце параўнаць, двайныя роўных. 674 00:28:35,650 --> 00:28:38,250 Вы робіце адзін складае вы проста хачу, каб перапрызначыць яго, 675 00:28:38,250 --> 00:28:41,090 а затым, вядома, гэта будзе значэнне, якое вы хочаце. 676 00:28:41,090 --> 00:28:42,300 Так што не рабіце гэтага. 677 00:28:42,300 --> 00:28:44,350 >> Такім чынам, мы збіраемся, каб убачыць, калі значэння ў сярэдзіне 678 00:28:44,350 --> 00:28:46,460 роўная кошту мы хочам. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Не забывайце свае брекеты. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox павінен сысці. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Дык што ж нам рабіць у гэтым выпадку? 685 00:28:56,200 --> 00:28:59,360 Калі гэта тое, што мы хочам вярнуцца? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Мы спрабуем сказаць. 688 00:29:02,626 --> 00:29:03,440 >> СТУДЕНТ: Раздрукуйце. 689 00:29:03,440 --> 00:29:05,314 >> Выкладчыкі: Ну, мы не хачу, каб раздрукаваць. 690 00:29:05,314 --> 00:29:08,220 Так што гэта Ьоо тут, таму мы хачу вярнуцца сапраўдным або ілжывым. 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 >> Так што, калі ў нас ёсць Int асноўны (пустэчу) і нешта накшталт гэтага. 717 00:30:25,150 --> 00:30:31,922 І ў вас ёсць, калі ёсць верхняя які прыход і ты 718 00:30:31,922 --> 00:30:33,630 з просьбай, калі вы можаце зрабіць нешта накшталт гэтага? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Ці не так? 721 00:30:35,679 --> 00:30:37,470 СТУДЕНТ: я спрабаваў зрабіць гэта [неразборліва]. 722 00:30:37,470 --> 00:30:38,450 Таму што, калі it's-- 723 00:30:38,450 --> 00:30:39,200 Выкладчыкі: справа. 724 00:30:39,200 --> 00:30:41,197 Такім чынам, вы хочаце, каб гэта было ілжывым, ці не так? 725 00:30:41,197 --> 00:30:41,780 СТУДЕНТ: Так. 726 00:30:41,780 --> 00:30:45,960 Выкладчыкі: Так што ў гэтым выпадку вы хачу, каб гэта зрабіць, калі гэта не так. 727 00:30:45,960 --> 00:30:50,510 Так выдатна, што ў вас там такое. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Так што памятаеце ўсклік Кропка адмаўляе рэчы? 730 00:30:55,650 --> 00:30:58,270 Гэта кажа [неразборліва] азначае не. 731 00:30:58,270 --> 00:31:03,590 Так што, калі мы паглядзім на толькі што гэтая частка тут, вы б 732 00:31:03,590 --> 00:31:05,740 сказаць, што мае значэнне хлусня, як вы хочаце, каб ён. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Ня ілжывае праўдзіва, якія значыць гэта выканаць. 735 00:31:09,880 --> 00:31:11,037 Ці мае гэта сэнс? 736 00:31:11,037 --> 00:31:11,620 СТУДЕНТ: Так. 737 00:31:11,620 --> 00:31:12,453 Выкладчыкі: Awesome. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 Добра. 740 00:31:14,300 --> 00:31:16,330 Такім чынам, мы маглі б проста вярнуцца праўда ў гэтым выпадку. 741 00:31:16,330 --> 00:31:20,357 Так што цяпер у нас ёсць два іншых выпадкаў у гэтым выпадку. 742 00:31:20,357 --> 00:31:21,565 Якія нашы два іншых выпадку? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Давайце проста рабіць гэта такім чынам. 745 00:31:32,900 --> 00:31:40,660 Такім чынам, давайце пачнем з яшчэ калі значэння ў сярэдзіне 746 00:31:40,660 --> 00:31:43,230 менш, чым значэнне мы хочам. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Такім чынам, наша каштоўнасць у сярэдзіне менш чым значэнне, што мы шукаем. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Такім чынам, якія мяжы зрабіць вас думаю, што мы хочам, каб абнавіць? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Верхні ці ніжні? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Верхні? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Так на чыім баку масіва мы збіраемся быць гледзячы на? 757 00:32:06,470 --> 00:32:07,500 >> СТУДЕНТ: Ніжні. 758 00:32:07,500 --> 00:32:09,750 >> Выкладчыкі: Мы будзем каб глядзець на левай. 759 00:32:09,750 --> 00:32:11,120 Так яшчэ, калі мала значэнне менш. 760 00:32:11,120 --> 00:32:14,730 Так вашым сярэдняга значэння тут менш, чым тое, што мы хочам. 761 00:32:14,730 --> 00:32:17,202 Таму мы хочам, каб узяць Правая бок масіве. 762 00:32:17,202 --> 00:32:18,910 Такім чынам, мы збіраемся абнавіць наш ніжняя мяжа. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Такім чынам, мы будзем перапрызначацца нашага ніжэй. 765 00:32:23,020 --> 00:32:25,221 І што вы думаеце ніжэй павінна быць? 766 00:32:25,221 --> 00:32:26,304 СТУДЕНТ: сярэдняе значэнне? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 Выкладчыкі: Так сярэдні value-- 769 00:32:28,820 --> 00:32:30,136 СТУДЕНТ: Плюс 1. 770 00:32:30,136 --> 00:32:31,010 Выкладчыкі: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Можа хто-небудзь сказаць мне, чаму у нас ёсць, што плюс 1? 773 00:32:34,380 --> 00:32:35,730 >> СТУДЕНТ: [? Няма значэння?] Больш роўная ёй. 774 00:32:35,730 --> 00:32:36,120 >> Выкладчыкі: справа. 775 00:32:36,120 --> 00:32:38,661 Таму што мы ўжо ведаем, што наша сярэдняе значэнне не роўна 776 00:32:38,661 --> 00:32:42,750 гэта, і мы хочам, каб выключыць яго ад ўсіх наступных пошукаў. 777 00:32:42,750 --> 00:32:46,360 Калі вы забыліся, што плюс 1, гэта спадабаецца цыкл бясконца. 778 00:32:46,360 --> 00:32:49,620 І вы проста патрапіць у бясконцы цыкл, а затым вы будзеце сегментацыі 779 00:32:49,620 --> 00:32:50,370 і справы ідуць дрэнна. 780 00:32:50,370 --> 00:32:54,780 Так заўсёды пераканайцеся, што вы не у тым ліку значэнне, што вы толькі што 781 00:32:54,780 --> 00:32:55,380 паглядзеў на. 782 00:32:55,380 --> 00:32:58,530 Такім чынам, мы клапоцімся аб тым, што з плюсам 1. 783 00:32:58,530 --> 00:33:04,840 >> Так што цяпер у нас ёсць апошняя ўмова якія я заўсёды дзеля бяспекі 784 00:33:04,840 --> 00:33:12,664 Вы можаце праверыць тут, інакш, калі значэнне ў сярэдні больш, чым значэнне 785 00:33:12,664 --> 00:33:13,163 мы хочам. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Гэта азначае, што мы хочам левая рука напалову. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Дык які з іх мы збіраемся абнавіць? 790 00:33:23,260 --> 00:33:23,760 Верхні. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 І што гэта за адзін збіраўся раўняцца? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Сярэдні мінус 1, таму што, Вядома, мы хочам, 795 00:33:33,690 --> 00:33:38,370 каб пераканацца, што мы не гледзячы на ​​гэтага сярэдняга значэння зноў. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 А то ў нас яго. 798 00:33:45,110 --> 00:33:45,610 Гэта так. 799 00:33:45,610 --> 00:33:46,820 Вось і ўсё, бінарны пошук. 800 00:33:46,820 --> 00:33:48,190 Гэта не так ужо дрэнна, ці не так? 801 00:33:48,190 --> 00:33:51,590 Гэта як 10 радкоў Код з прабеламі. 802 00:33:51,590 --> 00:33:57,510 Так, вельмі магутны, вельмі карысна, вы будзеце быць з выкарыстаннем яго ў адным з вашых наступных psets. 803 00:33:57,510 --> 00:33:59,360 Можа быць, гэта не адзін, але пазней. 804 00:33:59,360 --> 00:34:00,670 Так вывучаць яго. 805 00:34:00,670 --> 00:34:01,510 Люблю гэта. 806 00:34:01,510 --> 00:34:02,980 Гэта будзе ставіцца да вас добра. 807 00:34:02,980 --> 00:34:05,370 Дык хто-небудзь ёсць якія-небудзь пытанні па бінарнага пошуку? 808 00:34:05,370 --> 00:34:06,196 Так. 809 00:34:06,196 --> 00:34:09,840 >> СТУДЕНТ: гэта мае значэнне ці Ці ваш н цотных або няцотных? 810 00:34:09,840 --> 00:34:10,750 >> Выкладчыкі: Не. 811 00:34:10,750 --> 00:34:18,150 Таму што мы кінулі яго ў сярэдзіну, як INT, гэта будзе проста абрэзаць яго. 812 00:34:18,150 --> 00:34:21,600 Так ён будзе заставацца цэлае, і гэта будзе у рэшце рэшт разабрацца ў ўсім. 813 00:34:21,600 --> 00:34:23,909 Такім чынам, вы не павінны турбавацца пра гэта. 814 00:34:23,909 --> 00:34:24,580 Усё добра? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Дзіўны. 817 00:34:26,850 --> 00:34:27,919 Прахладны. 818 00:34:27,919 --> 00:34:30,836 Так, вы, хлопцы, атрымаў гэта. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Слайд-шоў. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Так як мы кажам пра, я ведаю, Дэвід узгадаў цяжкасці аўтаномнай працы. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Такім чынам, у лепшым выпадку, гэта проста адзін, які мы называем пастаяннае час. 825 00:34:50,340 --> 00:34:51,909 Можа хто-небудзь сказаць мне, чаму гэта можа быць? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Які тып сцэнара будзе, што цягне за сабой? 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 Мм-хм. 830 00:34:58,760 --> 00:34:59,926 >> СТУДЕНТ: [неразборліва] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 Выкладчыкі: Так сярэдні з'яўляючыся Першы элемент, які мы падыходзім да, ці не так? 833 00:35:03,830 --> 00:35:08,167 Так што альбо масіў з аднаго або усё, што мы шукаем толькі 834 00:35:08,167 --> 00:35:09,750 здараецца, прама па сярэдзіне. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Так што гэта наш лепшы выпадак. 837 00:35:13,380 --> 00:35:17,540 Вы атрымліваеце ў рэальных праблем, верагодна, не збіраецца дасягнуць [неразборліва], што часта. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 А як наконт нашай горшым выпадку? 840 00:35:19,750 --> 00:35:21,270 Наш горшы выпадак часопіса н. 841 00:35:21,270 --> 00:35:25,360 І што павінен рабіць з усім Паўнамоцтвы два рэчы, якія я казаў пра. 842 00:35:25,360 --> 00:35:30,930 >> Такім чынам, у горшым выпадку гэта будзе азначаць, што мы павінны былі нарэзаць масіў ўніз 843 00:35:30,930 --> 00:35:33,270 пакуль ён не быў элементам адзін. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Так што нам прыйшлося калоць яго напалову столькі разоў, колькі мы магчыма маглі. 846 00:35:38,930 --> 00:35:41,430 Вось чаму гэта часопіс н таму Вы проста падзяляць на два. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Так здагадкі, рэчы, якія вы трэба ведаць, калі вы калі-небудзь 849 00:35:45,830 --> 00:35:48,050 збіраецеся выкарыстоўваць бінарны пошук. 850 00:35:48,050 --> 00:35:50,680 Вашы элементы павінны быць адсартаваныя. 851 00:35:50,680 --> 00:35:53,890 Яны павінны быць адсартаваныя, таму што гэта адзіны спосаб 852 00:35:53,890 --> 00:35:57,060 можа ведаць, калі вы зможаце выкінуць палову з яго. 853 00:35:57,060 --> 00:36:00,260 >> Калі ў вас гэта перамяшаныя мяшок лікаў і вы кажаце, 854 00:36:00,260 --> 00:36:05,380 ОК, я збіраюся праверыць сярэдзіну Колькасць і лік Я шукаю 855 00:36:05,380 --> 00:36:08,510 менш, чым, я проста хачу, адвольна выкінуць палову. 856 00:36:08,510 --> 00:36:11,130 Вы не ведаеце, калі ваша Лічбы ў гэтай іншай палове. 857 00:36:11,130 --> 00:36:12,655 Ваш спіс павінен быць адсартаваны. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Акрамя таго, гэта можа быць ісці наперад трохі, 860 00:36:16,560 --> 00:36:18,360 але вы павінны мець адвольны доступ. 861 00:36:18,360 --> 00:36:21,940 Вы павінны быць у стане проста перайсці на гэтую сярэдняга элемента. 862 00:36:21,940 --> 00:36:25,110 Калі ў вас ёсць, каб прайсці праз што-то 863 00:36:25,110 --> 00:36:28,630 ці гэта зойме ў вас дадатковыя крокі каб дабрацца да гэтага сярэдняга элемента, 864 00:36:28,630 --> 00:36:31,750 гэта не ўвайсці н больш, таму што Вы дадаеце больш працы ў ім. 865 00:36:31,750 --> 00:36:34,800 І гэта зробіць крыху больш сэнсу ў два тыдні, 866 00:36:34,800 --> 00:36:37,950 але я толькі збольшага хацеў бы папярэдзіць, даць вам, хлопцы ўяўленне пра тое, што 867 00:36:37,950 --> 00:36:38,999 прыйсці. 868 00:36:38,999 --> 00:36:40,790 Але тыя два важныя дапушчэння 869 00:36:40,790 --> 00:36:44,804 што вам трэба для бінарнага спісу. 870 00:36:44,804 --> 00:36:45,720 Пераканайцеся, што ён адсартаваны. 871 00:36:45,720 --> 00:36:47,920 Гэта вялікі для Вы, хлопцы, прама цяпер. 872 00:36:47,920 --> 00:36:52,170 І на што мы можам пайсці ў Астатнія нашы гатункаў. 873 00:36:52,170 --> 00:36:56,444 Так чатыры sorts-- бурбалка, устаўка, выбар, і зліццё. 874 00:36:56,444 --> 00:36:57,485 Яны ўсе крута. 875 00:36:57,485 --> 00:37:02,860 Калі вы, хлопцы, вырашылі ўзяць CS 124, Вы даведаецеся аб разнастайных гатункаў. 876 00:37:02,860 --> 00:37:07,575 І калі вы прыхільнік XKCD, ёсць гэта сапраўды выдатна комікс пра 877 00:37:07,575 --> 00:37:11,530 як сапраўды неэфектыўных відаў, якія я вельмі рэкамендую вам ісці глядзець. 878 00:37:11,530 --> 00:37:16,170 Адным з іх з'яўляецца, як панічнае роду, якія як, ой не, вярнуць масіў выпадковых. 879 00:37:16,170 --> 00:37:16,991 Shutdown сістэма. 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 мы абмяняць іх і мы павялічваем OUR Лічыльнік таму што як толькі мы памяняць, 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 праз масіў мы ведаю, што ўсё, што гэта on-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Такім чынам, пасля аднаго праходу мы ведаю, што гэта сартуецца. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 Пасля двух праходаў мы ведаем што ўсё гэта сартуецца. 1014 00:42:50,060 --> 00:42:52,750 Пасля трох праходаў мы ведаю, што гэта сартуюцца. 1015 00:42:52,750 --> 00:42:55,620 Так Дарэчы я ітэрацыі праз масіў тут, 1016 00:42:55,620 --> 00:43:01,090 будзе гэта рабіць абавязкова ісці толькі праз тое, што мы ведаем, гэта малокомплектных. 1017 00:43:01,090 --> 00:43:01,644 Добра? 1018 00:43:01,644 --> 00:43:02,810 Вось толькі аптымізацыя. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Вы маглі б напісаць яго наіўна проста перабору за ўсё, 1021 00:43:08,210 --> 00:43:09,970 гэта было б проста заняць больш часу. 1022 00:43:09,970 --> 00:43:12,470 З гэтага чатыры цыклу гэта проста добры аптымізацыя 1023 00:43:12,470 --> 00:43:18,460 таму што мы ведаем, што пасля таго, як кожны поўны ітэрацыі па масіве тут, 1024 00:43:18,460 --> 00:43:24,050 як кожны поўны завесы тут, мы ведаем, што больш з гэтых элементаў аднаго 1025 00:43:24,050 --> 00:43:25,760 будуць размеркаваны ў канцы. 1026 00:43:25,760 --> 00:43:28,294 >> Такім чынам, мы не павінны турбавацца пра іх. 1027 00:43:28,294 --> 00:43:29,710 Ці значыць гэта, мае сэнс для ўсіх? 1028 00:43:29,710 --> 00:43:30,950 Гэта выдатна маленькая хітрасць? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Такім чынам, у гэтым выпадку, калі мы ітэрацыі, 1031 00:43:37,270 --> 00:43:50,590 мы ведаем, што мы хочам, каб праверыць, Масіў п і п + 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 Калі мы сказалі, роўная Б, а той роўная A, усе раптам абодва 1056 00:44:41,696 --> 00:44:43,150 проста роўная B. 1057 00:44:43,150 --> 00:44:45,720 >> Такім чынам, што мы павінны зрабіць, гэта мы ёсць часовую зменную вось 1058 00:44:45,720 --> 00:44:49,055 збіраецца правесці адзін з нашых-то час мы знаходзімся ў працэсе перапампоўкі. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Так што ў нас ёсць, мы будзем мець некаторы Int Тэмпература роўная to-- можна прызначыць 1061 00:44:56,464 --> 00:44:59,130 у залежнасці ад таго, што вы хочаце, проста пераканайцеся, што вы адсочваць it-- 1062 00:44:59,130 --> 00:45:01,840 таму ў дадзеным выпадку, я збіраюся прызначыць яго на масіве н плюс 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Так што адбываецца, каб змясціць усе Значэнне ў гэтым другім блоку 1065 00:45:07,674 --> 00:45:08,590 што мы глядзім на. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> І тады мы можам зрабіць, гэта мы можам пайсці наперад, а таксама перапрызначацца масіў н плюс 1, 1068 00:45:13,240 --> 00:45:14,990 таму што мы ведаем, што ёсць гэта значэнне захоўваецца. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Гэта таксама з'яўляецца адным з вялікай things-- Я не ведаю, калі хто з вас 1071 00:45:19,270 --> 00:45:23,780 былі праблемы, калі пры пераключэнні два радкоў кода раптам усё працавала. 1072 00:45:23,780 --> 00:45:25,880 Замовіць вельмі важна ў CS. 1073 00:45:25,880 --> 00:45:29,450 Таму пераканайцеся, што вы дыяграме рэчы, калі гэта магчыма 1074 00:45:29,450 --> 00:45:31,230 адносна таго, што адбываецца на самай справе. 1075 00:45:31,230 --> 00:45:34,256 Так што цяпер мы збіраемся перапрызначыць масіва п плюс 1, 1076 00:45:34,256 --> 00:45:36,005 таму што мы ведаем, што ёсць гэта значэнне захоўваецца. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> І мы можам прызначыць, што ў масіве н а ў дадзеным выпадку масіў я. 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 роўным, што знаходзіцца ў масіве I. 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 Так што, калі свопы роўная нулю, што is-- я заўсёды атрымаць мае ісціны і мае falses пераблыталі. 1107 00:47:01,310 --> 00:47:03,960 Мы хочам, каб нам ацаніць каб дакладна і гэта не так. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Так што, калі гэта нуль, то гэта хлусня. 1110 00:47:09,630 --> 00:47:12,560 Калі вы адмаўляць яго [? бац?] становіцца праўдай. 1111 00:47:12,560 --> 00:47:13,975 Такім чынам гэтая лінія выконвае. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Ісціны і хлусня, і нулі і адзінкі атрымаць з розуму. 1114 00:47:17,370 --> 00:47:20,690 Проста, калі вы павольна хадзіць праз яго будзе мець сэнс. 1115 00:47:20,690 --> 00:47:23,320 Але вось што гэта крыху кавалак кода тут робіць. 1116 00:47:23,320 --> 00:47:26,490 Такім чынам, гэта правярае, мы зрабілі ніякіх свопов. 1117 00:47:26,490 --> 00:47:30,054 Так што, калі гэта што-небудзь, акрамя нуля, гэта будзе хлусня 1118 00:47:30,054 --> 00:47:31,970 і ўсё гэта з'яўляецца збіраецца выканаць зноў. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Прахладны? 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> СТУДЕНТ: Што перапынак зрабіць? 1123 00:47:36,000 --> 00:47:38,990 >> Выкладчыкі: Перапынак проста ламае цябе з пятлі. 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 Вярнуцца да PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Любыя пытанні ў цэлым аб іх да гэтага часу? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Прахладны. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Мм-хм. 1161 00:48:43,695 --> 00:48:45,279 >> СТУДЕНТ: [неразборліва] Int асноўны звычайна. 1162 00:48:45,279 --> 00:48:46,695 Вы павінны мець, што для гэтага? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> Выкладчыкі: Такім чынам, мы проста шукалі проста па фактычнай алгарытму сартавання. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Калі вы мелі яго на працягу як вялікай праграмы, 1167 00:48:56,350 --> 00:48:57,891 Вы б мець Int асноўны недзе. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 У залежнасці ад таго, дзе вы выкарыстаць гэты алгарытм, 1170 00:49:02,880 --> 00:49:05,860 было б вызначыць, што вяртаецца да яе. 1171 00:49:05,860 --> 00:49:09,960 Але для нашага выпадку, мы строга гледзячы на ​​тое, як гэта робіць на самай справе 1172 00:49:09,960 --> 00:49:11,300 перабору масіва. 1173 00:49:11,300 --> 00:49:12,570 Такім чынам, мы не турбавацца пра гэта. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Такім чынам, мы гаворым аб лепшым выпадку і горшыя сцэнары для бінарнага пошуку. 1176 00:49:19,830 --> 00:49:22,470 Так што гэта таксама важна зрабіць што для кожнага з нашых гатункаў. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Так што вы думаеце, гэта горшы Справа часу выканання пузырьковый сартавання? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Вы, хлопцы, памятаеце? 1181 00:49:30,700 --> 00:49:31,784 >> СТУДЕНТ: N мінус 1. 1182 00:49:31,784 --> 00:49:32,700 Выкладчыкі: N мінус 1. 1183 00:49:32,700 --> 00:49:35,070 Значыць, ёсць н мінус 1 параўнання. 1184 00:49:35,070 --> 00:49:40,060 Так адна справа разумець, што на першай ітэрацыі, 1185 00:49:40,060 --> 00:49:43,360 мы ідзем да канца, мы параўнаем гэтыя two-- так вось 1. 1186 00:49:43,360 --> 00:49:46,685 Гэтыя два, тры, чатыры. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Такім чынам, пасля адной ітэрацыі мы ўжо ёсць чатыры параўнанняў. 1189 00:49:55,050 --> 00:49:58,230 Калі я кажу пра час выканання і п. 1190 00:49:58,230 --> 00:50:04,680 N ўяўляе сабой колькасць параўнанняў як функцыя ад таго, колькі элементаў 1191 00:50:04,680 --> 00:50:05,570 у нас ёсць. 1192 00:50:05,570 --> 00:50:06,430 Добра? 1193 00:50:06,430 --> 00:50:08,860 >> Так мы ідзем да канца, у нас ёсць чатыры. 1194 00:50:08,860 --> 00:50:11,780 У наступны раз, вы ведаеце, мы не павінны паклапаціцца пра гэта. 1195 00:50:11,780 --> 00:50:15,140 Мы параўноўваем гэтыя два, гэтыя двое, гэтыя двое, 1196 00:50:15,140 --> 00:50:20,050 і калі ў нас не было, што аптымізацыя з чатырма завесы, што я напісаў, 1197 00:50:20,050 --> 00:50:22,750 Вы б параўноўваць тут у любым выпадку. 1198 00:50:22,750 --> 00:50:26,170 Такім чынам, вы павінны былі б запусціць праз масіў 1199 00:50:26,170 --> 00:50:34,380 і зрабіць п параўнанняў н раз, таму што кожны раз, калі мы 1200 00:50:34,380 --> 00:50:36,670 запусціць праз гэта мы накшталт адно. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> І кожны раз, калі мы сутыкаемся з дапамогай масіў, мы робім п параўнанняў. 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 >> СТУДЕНТ: N мінус 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> Выкладчыкі: Дык што, так. 1221 00:51:22,320 --> 00:51:22,990 Так н мінус 1. 1222 00:51:22,990 --> 00:51:26,510 Кожны раз, калі ў вас ёсць такое паняцце, як п мінус 1, мы, як правіла, проста высадзіць яго 1223 00:51:26,510 --> 00:51:31,680 і мы проста скажам, п, таму што вы ёсць параўнаць кожны з these-- кожнай пары. 1224 00:51:31,680 --> 00:51:36,470 Таму было б н мінус 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 Fun. 1239 00:52:05,120 --> 00:52:09,730 Значна горш, чым п, як мы бачым, і значна, значна горш, чым часопіса 2n. 1240 00:52:09,730 --> 00:52:12,060 І тады вы таксама атрымліваеце ў часопісах часопісаў. 1241 00:52:12,060 --> 00:52:18,020 І вы бераце 124, вы атрымаеце ў як лог зоркі, якая, як вар'ят. 1242 00:52:18,020 --> 00:52:20,172 Так што калі вы зацікаўлены, пошук часопіса зорка. 1243 00:52:20,172 --> 00:52:20,880 Гэта пацешна. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Таму ў нас ёсць гэты вялікі графік. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Проста галавы, гэта выдатны графік, каб мець 1248 00:52:28,720 --> 00:52:31,350 для сярэднетэрміновай перспектыве, таму што мы доўга б задаць вам гэтыя радзее. 1249 00:52:31,350 --> 00:52:36,090 Так проста галавы, ёсць гэта на Сярэднетэрміновай на добрым шпаргалку 1250 00:52:36,090 --> 00:52:36,616 ёсць. 1251 00:52:36,616 --> 00:52:37,990 Такім чынам, мы проста глядзелі на пузырьковый сартавання. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 У горшым выпадку, п квадрат, лепшы выпадак, п. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 І мы збіраемся глядзець на іншых. 1256 00:52:44,950 --> 00:52:47,940 >> І як вы можаце бачыць, толькі той, які сапраўды добра 1257 00:52:47,940 --> 00:52:50,910 з'яўляецца сартаванне зліццём, якія мы атрымаем у чаму. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Такім чынам, мы збіраемся пайсці ў Наступны here-- выбар роду. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Ці памятае хто-небудзь, як Выбар роду працаваў? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Пайсці на гэта. 1264 00:53:05,700 --> 00:53:08,210 >> СТУДЕНТ: У асноўным ідуць праз Парадак і стварыць новы спіс. 1265 00:53:08,210 --> 00:53:11,001 І гэтак жа, як вы кладзеце элементы у, пакласці іх у правільным месцы 1266 00:53:11,001 --> 00:53:11,750 ў новым спісе. 1267 00:53:11,750 --> 00:53:14,040 >> Выкладчыкі: Так што гукі больш падобна ўстаўкі роду. 1268 00:53:14,040 --> 00:53:15,040 Але вы сапраўды блізкія. 1269 00:53:15,040 --> 00:53:15,915 Яны вельмі падобныя. 1270 00:53:15,915 --> 00:53:17,440 Нават я блытаю часам. 1271 00:53:17,440 --> 00:53:18,981 Перад гэтай частцы я быў як, чакаць. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 Добра. 1274 00:53:20,630 --> 00:53:24,141 Так што вы хочаце зрабіць выбар роду, 1275 00:53:24,141 --> 00:53:25,890 як вы можаце думаць, пра гэта і шляху 1276 00:53:25,890 --> 00:53:30,140 Я пераконваюся, што стараюся не атрымаць блытаю, гэта праходзіць праз 1277 00:53:30,140 --> 00:53:33,280 і ён выбірае найменшае лік, і гэта 1278 00:53:33,280 --> 00:53:36,070 ставіць, што ў пачатку спісу. 1279 00:53:36,070 --> 00:53:37,730 Гэта мяняе яго з той першай месцы. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Яны на самай справе ёсць прыклад для мяне. 1282 00:53:45,370 --> 00:53:46,540 Дзіўны. 1283 00:53:46,540 --> 00:53:50,130 Так проста спосаб думаць аб it-- выбару роду, абярыце найменшае значэнне. 1284 00:53:50,130 --> 00:53:51,940 І мы збіраемся праходзяць праз прыкладу 1285 00:53:51,940 --> 00:53:55,320 што я думаю, што дапаможа, таму што Я думаю, што візуальныя заўсёды дапамагчы. 1286 00:53:55,320 --> 00:53:58,510 Такім чынам, мы пачынаем з чым-то што цалкам без сартавання. 1287 00:53:58,510 --> 00:54:00,730 Чырвоны будзе малокомплектных, зялёны будуць адсартаваныя. 1288 00:54:00,730 --> 00:54:02,190 Гэта ўсё будзе мець сэнс у секунду. 1289 00:54:02,190 --> 00:54:08,950 >> Такім чынам, мы прайсці і мы ітэрацыі ад пачатку і да канца. 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 Такім чынам, што гэта збіраецца перабору і яна ідзе ад J роўная я плюс 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 І мы сказалі, што калі масіў на J з'яўляецца менш масіва мін, 1347 00:56:25,090 --> 00:56:29,200 Затым мы перапрызначыць дзе нашы мінімальныя паказчыкі з'яўляецца. 1348 00:56:29,200 --> 00:56:37,470 >> І калі мін не роўны I, як у якім мы ўжо былі тут. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Бо калі мы ўпершыню зрабілі гэта. 1351 00:56:41,790 --> 00:56:49,310 У гэтым выпадку, было б пачаць з нуля, гэта будзе ў канчатковым выніку два. 1352 00:56:49,310 --> 00:56:53,010 Так мін не будзе роўная я, у рэшце рэшт. 1353 00:56:53,010 --> 00:56:55,720 Гэта дазваляе нам ведаць, што мы павінны памяняць іх месцамі. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Я адчуваю, што на канкрэтным прыкладзе дапаможа значна больш, чым гэта. 1356 00:57:00,470 --> 00:57:04,970 Так што я буду кадзіраваць гэта з вамі, хлопцы прама зараз, і я думаю, што гэта будзе лепш. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Гатункі, як правіла, працуе такім чынам у тым, што гэта часта лепш проста ўбачыць іх. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Такім чынам, што мы хочам зрабіць, гэта спачатку мы хацелі найменшая 1361 00:57:17,280 --> 00:57:19,890 элемент у яго пазіцыі ў масіве. 1362 00:57:19,890 --> 00:57:21,280 Менавіта тое, што Якаў казаў. 1363 00:57:21,280 --> 00:57:23,090 Вы павінны захаваць што-то. 1364 00:57:23,090 --> 00:57:25,900 Такім чынам, мы збіраемся пачаць тут ітэрацыі па масіве. 1365 00:57:25,900 --> 00:57:28,970 Мы збіраемся сказаць, што гэта наш Першы раз, каб пачаць з. 1366 00:57:28,970 --> 00:57:38,308 Такім чынам, мы будзем мець Int маленькі роўная масіва ў I. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Так што, адно заўважыць, кожны Час гэта цыкл выконваецца, 1369 00:57:45,050 --> 00:57:48,550 мы пачынаем яшчэ адзін крок наперад разам. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Калі мы пачынаем глядзець на гэтае. 1372 00:57:57,440 --> 00:58:00,840 У наступны раз мы перабору, мы пачынаем у гэтым 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 Такім чынам, для некаторых Int да equals-- што мы думаем 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 Таму мы хочам, K, каб ініцыялізаваць каб я плюс 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 І мы проста хочам, каб абнавіць K на адзінку кожны раз. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Прахладны. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Так што цяпер мы павінны знайсці найменшы элемент тут. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Так што, калі мы перабору, мы хачу сказаць, калі масіў на да 1427 01:00:31,380 --> 01:00:37,080 менш нашага маленькага value-- гэта дзе мы на самай справе 1428 01:00:37,080 --> 01:00:42,950 адсочвання таго, што гэта самы маленькі here-- 1429 01:00:42,950 --> 01:00:47,740 Затым мы хочам перадаць што наша маленькая велічыня. 1430 01:00:47,740 --> 01:00:50,645 >> Гэта азначае, што, ну, мы перабору тут. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Незалежна ад значэнне тут ня наш маленькі рэч. 1433 01:00:53,740 --> 01:00:54,448 Мы не хочам яго. 1434 01:00:54,448 --> 01:00:56,100 Мы хочам, каб перапрызначыць яго. 1435 01:00:56,100 --> 01:01:02,050 Так што, калі мы перапрызначэння яго, што рабіць Вы думаеце, можа быць у гэтым кодзе тут? 1436 01:01:02,050 --> 01:01:04,160 Мы хочам, каб перапрызначыць маленькі і становішча. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Так што гэта самы маленькі ў цяперашні час? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 СТУДЕНТ: Array к. 1441 01:01:09,130 --> 01:01:09,963 Выкладчыкі: Array к. 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 Так мы кажам у гэтым sort-- роду ёсць функцыя ў гэтым case-- гэта 1475 01:02:35,680 --> 01:02:40,770 Выбар роду, ён прайшоў У з функцыяй. 1476 01:02:40,770 --> 01:02:43,460 Так што, калі ён не быў прыняты у, вы маглі б зрабіць што-то 1477 01:02:43,460 --> 01:02:47,840 як з даўжынёй масіва ці вы б перабору 1478 01:02:47,840 --> 01:02:49,390 каб знайсці даўжыню. 1479 01:02:49,390 --> 01:02:52,680 Але таму што гэта прайшло ў, мы можам проста выкарыстоўваць яго. 1480 01:02:52,680 --> 01:02:55,720 Вы проста выкажам здагадку, што карыстальнік даў вам правільны памер, што 1481 01:02:55,720 --> 01:02:57,698 на самай справе ўяўляе памер вашага масіва. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Прахладны? 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Калі вы, хлопцы, ёсць якія-небудзь праблемы з гэтым або хочаце больш практыкі кадавання віды 1486 01:03:05,870 --> 01:03:08,050 па сваім меркаванні, вы павінны перайсці да study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Гэта інструмент. 1489 01:03:12,670 --> 01:03:15,040 У іх ёсць праверкі, што Вы можаце фактычна пісаць. 1490 01:03:15,040 --> 01:03:16,180 Яны робяць псевдокод. 1491 01:03:16,180 --> 01:03:19,310 Яны маюць больш відэа і слайды у тым ліку і я выкарыстоўваю тут. 1492 01:03:19,310 --> 01:03:23,150 Так што калі вы ўсё яшчэ адчуваеце трохі невыразнай, паспрабуйце гэта. 1493 01:03:23,150 --> 01:03:25,670 Як заўсёды, прыйшоў пагаварыць са мной, таксама. 1494 01:03:25,670 --> 01:03:26,320 Пытанне? 1495 01:03:26,320 --> 01:03:28,611 >> СТУДЕНТ: Вы хочаце сказаць, памер вызначана раней? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 Выкладчыкі: Так. 1498 01:03:29,900 --> 01:03:35,570 Памер папярэдне вызначана з дакладнасцю тут у аб'яве функцыі. 1499 01:03:35,570 --> 01:03:39,060 Такім чынам, вы выказаць здагадку, што гэта было прынята ў карыстальнікам, і для прастаты, 1500 01:03:39,060 --> 01:03:41,896 мы будзем лічыць, што Карыстальнік даў нам правільны памер. 1501 01:03:41,896 --> 01:03:43,240 Прахладны. 1502 01:03:43,240 --> 01:03:44,390 Дык вось выбар роду. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Хлопцы, я ведаю, сёння мы даведаліся шмат. 1505 01:03:47,640 --> 01:03:49,710 Гэта шчыльная дадзеныя для часткі. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Так з гэтым, мы збіраемся пайсці ў сартаванне ўстаўкамі. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> Добра. 1510 01:04:02,510 --> 01:04:06,100 Таму, перш чым, што мы павінны зрабіць, наш аналіз выканання тут. 1511 01:04:06,100 --> 01:04:10,190 Такім чынам, у лепшым выпадку, прадастаўляецца, так як я паказаў вам, 1512 01:04:10,190 --> 01:04:11,960 табліца я ўжо выгляд аддаў яго. 1513 01:04:11,960 --> 01:04:15,430 Але лепш за ўсё справа часу выканання, што мы думаем? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Усе Сартаваць. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 N ў квадраце. 1518 01:04:22,070 --> 01:04:24,780 Любы, ёсць тлумачэнне чаму вы думаеце? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> СТУДЕНТ: вы параўноўваеце through-- 1521 01:04:30,519 --> 01:04:31,268 Выкладчыкі: справа. 1522 01:04:31,268 --> 01:04:32,540 Ты параўнання праз. 1523 01:04:32,540 --> 01:04:35,630 На кожнай ітэрацыі, нягледзячы на ​​тое, мы памяншаючы гэта адзін, 1524 01:04:35,630 --> 01:04:38,950 Вы ўсё яшчэ шукаеце праз усё, каб знайсці самыя маленькія. 1525 01:04:38,950 --> 01:04:42,390 Такім чынам, нават калі ваша найменшае значэнне Тут у пачатку, 1526 01:04:42,390 --> 01:04:44,710 Вы ўсё яшчэ параўноўваючы яго супраць усяго астатняга 1527 01:04:44,710 --> 01:04:46,550 каб пераканацца, што гэта самае малое. 1528 01:04:46,550 --> 01:04:49,820 Такім чынам, вы будзеце ў канчатковым выніку працуе праз прыкладна н квадраце раз. 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 І, зноў жа, калі вы хочаце даведацца, Больш за тое, прыняць CS 124 вясной. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Добра. 1555 01:05:56,712 --> 01:05:57,545 Мы бачылі гэта. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Прахладны. 1558 01:05:59,030 --> 01:06:00,930 Так уставак. 1559 01:06:00,930 --> 01:06:03,330 І я, верагодна, пракласці праз гэта. 1560 01:06:03,330 --> 01:06:05,440 Я не дазволю табе хлопцы кадзіраваць яго. 1561 01:06:05,440 --> 01:06:06,580 Мы проста прайсці праз гэта. 1562 01:06:06,580 --> 01:06:10,500 Так уставак добры з падобны на выбар роду 1563 01:06:10,500 --> 01:06:14,460 у тым, што ў нас ёсць і малокомплектных і сартуюць частка масіва. 1564 01:06:14,460 --> 01:06:20,260 >> Але тое, што адрозніваецца тым, што як мы праходзім праз адзін за адным, 1565 01:06:20,260 --> 01:06:24,210 мы проста ўзяць любы нумар з'яўляецца наступным у наш малокомплектных, 1566 01:06:24,210 --> 01:06:28,507 і правільна сартаваць яго у нашым масіве. 1567 01:06:28,507 --> 01:06:30,090 Гэта будзе мець больш сэнсу з прыкладу. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Так што ўсё пачынаецца як малокомплектных, сапраўды гэтак жа як з выбару гатунку. 1570 01:06:35,430 --> 01:06:38,740 І мы збіраемся, каб улагодзіць гэта ў парадку ўзрастання, як мы былі. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Так на нашым першым праходзе мы бярэм першае значэнне 1573 01:06:43,340 --> 01:06:46,700 і мы кажам, добра, вы Цяпер у спісе па сабе. 1574 01:06:46,700 --> 01:06:49,150 >> Таму што вы знаходзіцеся ў спісе самастойна, вы сартуюцца. 1575 01:06:49,150 --> 01:06:52,460 Віншуем быць Першы элемент у гэтым масіве. 1576 01:06:52,460 --> 01:06:54,800 Вы ўжо адсартаваныя усё па сваім меркаванні. 1577 01:06:54,800 --> 01:06:58,900 Так што цяпер мы сартуюцца і малокомплектных масіў. 1578 01:06:58,900 --> 01:07:01,760 Так што цяпер мы возьмем першы. 1579 01:07:01,760 --> 01:07:05,600 Што адбываецца паміж тут і ў тым, што мы кажам: 1580 01:07:05,600 --> 01:07:08,890 Добра, мы будзем глядзець на Першае значэнне нашай малокомплектных масіва 1581 01:07:08,890 --> 01:07:13,270 і мы збіраемся ўвесці яго ў сваёй правільнае месца ў масіве. 1582 01:07:13,270 --> 01:07:21,460 >> Такім чынам, што мы робім, мы бярэм 5 і мы кажам, добра, 5 больш 3, 1583 01:07:21,460 --> 01:07:24,630 так што мы проста ўстаўце яго права справа, што. 1584 01:07:24,630 --> 01:07:25,130 Мы добра. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Такім чынам мы пераходзім да нашай наступнай. 1587 01:07:28,420 --> 01:07:29,720 І мы бярэм 2. 1588 01:07:29,720 --> 01:07:34,330 Мы кажам, добра, 2 менш чым 3, так што мы ведаем, што гэта 1589 01:07:34,330 --> 01:07:36,220 павінен быць у Фронт нашым спісе цяпер. 1590 01:07:36,220 --> 01:07:41,800 Так што мы робім, мы націскаем 3 і 5 ўніз і мы рухаемся 2 у той першы слот. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Такім чынам, мы проста уставіўшы яго ў правільнае месца гэта павінна быць. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Тады мы паглядзім на наш Наступны, і мы кажам, 6. 1595 01:07:49,470 --> 01:07:53,620 ОК, 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 Мы ставім J, роўную. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Такім чынам, хоць J больш нуля, а масіў, J мінус 1 1621 01:09:09,210 --> 01:09:11,660 больш, чым элемент, так што ўсё, што робіць 1622 01:09:11,660 --> 01:09:17,479 пераканаўшыся, што Ваша J сапраўды ўяўляе 1623 01:09:17,479 --> 01:09:20,010 без сартавання частка масіва. 1624 01:09:20,010 --> 01:09:30,745 >> Так, пакуль яшчэ ёсць рэчы, сартаваць і J мінус адзін is-- што 1625 01:09:30,745 --> 01:09:31,840 з'яўляецца элементам яе? 1626 01:09:31,840 --> 01:09:34,760 J ніколі не вызначаецца тут. 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 Так J мінус 1, вы правяраеце элемент перад ім. 1631 01:09:39,899 --> 01:09:46,460 Вы хочаце сказаць, што, у парадку, гэта элемент да куды б я ні am-- давайце 1632 01:09:46,460 --> 01:09:47,540 на самай справе зрабіць гэта. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Так скажам, гэта як на нашым другім праходзе. 1635 01:09:56,830 --> 01:09:59,525 Так што я будзе роўная 1, якая знаходзіцца тут. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Такім чынам, я маю намер быць роўны 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 І ў нас ёсць некаторы J Вось будзе роўная 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 О, J з'яўляецца памяншаючы. 1647 01:10:30,971 --> 01:10:31,720 Вось што гэта такое. 1648 01:10:31,720 --> 01:10:35,680 Так J роўная I, так што гэта гаворыцца, што, як мы рухаемся наперад, 1649 01:10:35,680 --> 01:10:37,530 мы толькі пераканаўшыся, што мы не больш 1650 01:10:37,530 --> 01:10:43,520 індэксацыі гэты шлях, калі мы спрабуем ўставіць рэчы ў нашым спарадкаваным спісе. 1651 01:10:43,520 --> 01:10:49,850 >> Таму, калі J роўны 1, у гэтым выпадку і Масіў J мінус одно-- так масіў J мінус 1 1652 01:10:49,850 --> 01:10:54,610 2 у гэтым case-- калі гэта больш, чым элемент, 1653 01:10:54,610 --> 01:10:57,700 Затым усё гэта робіць ссоўваецца рэчы ўніз. 1654 01:10:57,700 --> 01:11:04,790 Так, у дадзеным выпадку, масіў J мінус адзін Масіў будзе нулявым, які з'яўляецца 2. 1655 01:11:04,790 --> 01:11:08,430 2 не болей, чым 4, так што гэта не выконваецца. 1656 01:11:08,430 --> 01:11:11,460 Так зрух ня з'язджаць. 1657 01:11:11,460 --> 01:11:18,790 Што гэта робіць тут проста перасоўванне адсартаваны масіў ўніз. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 У гэтым выпадку, на самай справе, мы можа do-- давайце зробім гэта 3. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Так што, калі мы хочам ісці праз з гэты прыклад, мы зараз тут. 1662 01:11:31,970 --> 01:11:32,740 Гэта сартуецца. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Гэта малокомплектных. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Прахладны? 1667 01:11:39,860 --> 01:11:46,620 Так я роўны 2, так наш элемент роўны 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 І наша J роўная 2. 1670 01:11:52,270 --> 01:12:00,620 Такім чынам, мы з нецярпеннем праз і мы сказаць, у парадку, гэта масіў J мінус адзін 1671 01:12:00,620 --> 01:12:03,470 больш, чым элемента што мы глядзім? 1672 01:12:03,470 --> 01:12:05,540 І так, ці не так? 1673 01:12:05,540 --> 01:12:11,275 4 больш, чым 3 і J 2, так што гэты код выконваецца. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Так што цяпер, што мы робім масіў на 2, так прама тут, мы памяняць іх месцамі. 1676 01:12:18,550 --> 01:12:25,620 Такім чынам, мы проста сказаць: ОК, масіў на 2 зараз будзе 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 І J збіраецца раўняцца J мінус 1, які роўны 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Гэта жахліва, але вы, хлопцы, атрымаеце гэтую ідэю. 1681 01:12:37,200 --> 01:12:38,360 J цяпер роўная 1. 1682 01:12:38,360 --> 01:12:44,360 І масіў J толькі збіраецца быць роўная нашага элемента, які быў 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Я сцёр што-то я не павінен ёсць або miswrote-то, 1685 01:12:48,570 --> 01:12:49,910 але вы, хлопцы, атрымаеце гэтую ідэю. 1686 01:12:49,910 --> 01:12:50,640 >> Гэта рухацца ў п. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 І потым, калі б гэта было, гэта было б пятля зноў, і гэта было б сказаць, у парадку, J = 1 зараз. 1689 01:12:57,960 --> 01:13:00,665 І масіў J мінус 1 цяпер 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 Ёсць 2 менш, чым нашы элемента? 1692 01:13:03,760 --> 01:13:04,540 Няма? 1693 01:13:04,540 --> 01:13:07,970 Гэта азначае, што мы ў ўстаўляецца гэты элемент 1694 01:13:07,970 --> 01:13:10,110 ў правільным месцы ў нашым масіве. 1695 01:13:10,110 --> 01:13:14,400 Тады мы можам узяць гэта, і мы кажам, ОК, наш спарадкаваны масіў тут. 1696 01:13:14,400 --> 01:13:19,940 І гэта было б узяць гэты нумар 6 і быць як, у парадку, складае 6 менш, чым гэты лік? 1697 01:13:19,940 --> 01:13:20,480 Няма? 1698 01:13:20,480 --> 01:13:21,080 Прахладны. 1699 01:13:21,080 --> 01:13:22,680 У нас усё добра. 1700 01:13:22,680 --> 01:13:23,530 >> Зрабіце гэта зноў. 1701 01:13:23,530 --> 01:13:24,740 Мы кажам, 7. 1702 01:13:24,740 --> 01:13:29,010 З'яўляецца 7 менш, чым у канцы нашай масіве? 1703 01:13:29,010 --> 01:13:29,520 Няма. 1704 01:13:29,520 --> 01:13:30,430 Так што мы ў парадку. 1705 01:13:30,430 --> 01:13:32,760 Так што гэта будзе адсартаваны. 1706 01:13:32,760 --> 01:13:38,610 У асноўным усё гэта робіць Хіба гэта кажа дубль 1707 01:13:38,610 --> 01:13:42,060 Першы элемент Ваш малокомплектных масіў, 1708 01:13:42,060 --> 01:13:46,010 высветліць, дзе ён ідзе ў масіве. 1709 01:13:46,010 --> 01:13:48,780 І гэта толькі клапоціцца свопов, каб зрабіць гэта. 1710 01:13:48,780 --> 01:13:51,300 Вы ў асноўным проста памяняўшы пакуль гэта не ў патрэбным месцы. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Візуальны вобраз, што вы рухаецца ўсё ўніз, робячы гэта. 1713 01:13:56,990 --> 01:13:59,420 >> Так што гэта як палова пузырьковый сартавання ў стылі. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Праверце даследаванне 50. 1716 01:14:03,420 --> 01:14:06,000 Я вельмі рэкамендую спробу закадаваць гэта на свой уласны. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Калі ў вас ёсць якія-небудзь пытанні ці вы хочаце см прыклад кода для ўстаўкі роду, 1719 01:14:12,450 --> 01:14:13,750 калі ласка, дай мне ведаць. 1720 01:14:13,750 --> 01:14:14,500 Я заўсёды вакол. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Так горшым выпадку выканання і лепшы выпадак выканання. 1723 01:14:20,200 --> 01:14:30,700 Як вы хлопец убачыў з-за стала, я ўжо паказаў вам, што гэта як н у квадрат і н. 1724 01:14:30,700 --> 01:14:35,590 >> Так накшталт сыходзіць ад таго, што мы казалі аб нашых папярэдніх радах, горшае 1725 01:14:35,590 --> 01:14:38,760 Справа ў тым, што ў час выканання, калі гэта цалкам Unsorted, 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 І ўсё гэта робіць, калі х роўна zero-- так што калі памер масіва 1774 01:17:00,365 --> 01:17:02,710 роўная zero-- вяртаецца нуль. 1775 01:17:02,710 --> 01:17:10,440 >> У адваротным выпадку гэта падводзіць гэта Апошні элемент масіва, 1776 01:17:10,440 --> 01:17:14,790 а затым прымае суму астатняя частка масіва. 1777 01:17:14,790 --> 01:17:17,555 Так што гэта проста разбіць яго на ўсё больш дробныя праблемы. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Карацей кажучы, рэкурсіі, Функцыя, якая называе сябе. 1780 01:17:21,890 --> 01:17:25,740 Калі гэта ўсё, што вы выйшлі з гэтага, гэта тое, што рэкурсіўная функцыя. 1781 01:17:25,740 --> 01:17:29,870 Калі ўзяць 51, вы атрымаеце вельмі, вельмі зручна з дапамогай рэкурсіі. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Гэта сапраўды выдатна. 1784 01:17:32,370 --> 01:17:34,660 Гэта мела сэнс у падобным 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 Гэта не абавязкова адбываецца каб дапамагчы вам з вашай PSET. 1846 01:20:23,490 --> 01:20:28,250 Але я проста хачу зрабіць агаворку што гэтая частка не толькі аб psets. 1847 01:20:28,250 --> 01:20:31,240 Увесь гэты матэрыял з'яўляецца справядлівым гульня для вашых прамежкавых выбарах. 1848 01:20:31,240 --> 01:20:35,430 А таксама, калі вы працягваць з CS, гэта сапраўды важныя асновы 1849 01:20:35,430 --> 01:20:37,870 што вы павінны былі б ведаць. 1850 01:20:37,870 --> 01:20:41,700 Так некалькі дзён будзе трохі больш PSET дапамогу, 1851 01:20:41,700 --> 01:20:44,600 але праз некалькі тыдняў будзе значна больш рэальны змест 1852 01:20:44,600 --> 01:20:46,600 што можа здацца не супер карыснай для вас прама цяпер, 1853 01:20:46,600 --> 01:20:51,215 але я абяцаю, калі вы будзеце працягваць на будзе вельмі, вельмі карысна. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Дык вось менавіта для часткі. 1856 01:20:54,250 --> 01:20:55,250 Ўніз да провада. 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 Starburst. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Starbursts добрыя. 1872 01:21:14,670 --> 01:21:15,170 Добра. 1873 01:21:15,170 --> 01:21:17,045 Мы збіраемся мець Starburst на наступным тыдні, то. 1874 01:21:17,045 --> 01:21:18,240 Гэта тое, што я атрымаю. 1875 01:21:18,240 --> 01:21:19,690 Вы, хлопцы, ёсць вялікая тыдзень. 1876 01:21:19,690 --> 01:21:20,460 Прачытайце спецыфікацыю. 1877 01:21:20,460 --> 01:21:22,130 >> Дайце мне ведаць, калі ў вас ёсць якія-небудзь пытанні. 1878 01:21:22,130 --> 01:21:25,300 Pset два гатункі павінны быць да вас на чацвер. 1879 01:21:25,300 --> 01:21:28,320 Калі ў вас ёсць якія-небудзь пытанні пра тое, як я класіфікуюцца што-то 1880 01:21:28,320 --> 01:21:32,250 ці чаму я класіфікуюцца што-то, як я так, калі ласка, напішыце мне, прыходзяць пагаварыць са мной. 1881 01:21:32,250 --> 01:21:34,210 Я ледзь з розуму ў гэтым тыдзень, але я абяцаю, 1882 01:21:34,210 --> 01:21:36,340 Я да гэтага часу адказаць на працягу 24 гадзін. 1883 01:21:36,340 --> 01:21:38,240 Так ёсць вялікі тыдзень, усё. 1884 01:21:38,240 --> 01:21:40,090 Ўдачы на ​​PSET. 1885 01:21:40,090 --> 01:21:41,248