1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> SPEAKER 1: Hei kõigile! 3 00:00:12,300 --> 00:00:13,890 Tere tulemast tagasi lõik. 4 00:00:13,890 --> 00:00:17,480 Nii hea meel näha, et paljud teist nii siin, ja igaüks, kes valvab võrgus. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Nii nagu ikka teretulnud tagasi. 7 00:00:20,920 --> 00:00:24,360 Loodan, et teil kõigil oli armas Nädalavahetusel täielikult puhata, lõõgastuda. 8 00:00:24,360 --> 00:00:26,026 See oli ilus välja eile. 9 00:00:26,026 --> 00:00:27,525 Niisiis, ma loodan, et te nautida õues. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Nii et esimese paari teadaandeid. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Hindamissüsteem. 14 00:00:32,700 --> 00:00:37,350 Niisiis, enamik teist oleks saanud saatke mulle oma Scratch pset, 15 00:00:37,350 --> 00:00:39,920 samuti liigitamise eest pset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Niisiis, lihtsalt paar asja. 18 00:00:42,220 --> 00:00:45,150 Kindlasti kasutada check50 sisse style50. 19 00:00:45,150 --> 00:00:47,250 Need on mõeldud olema ressursse kutid, 20 00:00:47,250 --> 00:00:50,660 veenduda, et te saate nii palju punkte kui võimalik 21 00:00:50,660 --> 00:00:52,390 ilma asjata kaotamisega. 22 00:00:52,390 --> 00:00:54,407 Niisiis, asjad nagu stiil on väga olulised. 23 00:00:54,407 --> 00:00:55,740 Me startida ta. 24 00:00:55,740 --> 00:00:58,115 Mõned teist võivad olla juba märganud, et oma pset. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 Ja check50 on lihtsalt väga lihtne viis, veendumaks, 27 00:01:01,450 --> 00:01:05,050 et me tegelikult tagastamise tuleb tagasi kasutaja 28 00:01:05,050 --> 00:01:06,690 ja et kõik töötab korralikult. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> Teisel tähele, veenduge, et teie üleslaadimisel asjad õigesse kausta. 31 00:01:12,040 --> 00:01:14,470 See teeb mu elu lihtsalt natuke raskem 32 00:01:14,470 --> 00:01:18,836 kui saadate pset 2 arvesse pset 1 sest kui ma alla laadida asju, 33 00:01:18,836 --> 00:01:20,085 nad ei lae korralikult. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 Ja ma tean, et see on natuke logisev süsteemis harjuda, 36 00:01:24,560 --> 00:01:26,950 aga lihtsalt super ettevaatlik, kui ainult minu jaoks, 37 00:01:26,950 --> 00:01:30,080 nii et kui te saate e-kirju on nagu 02:00 ja ma olen mune. 38 00:01:30,080 --> 00:01:33,710 Kui ei põhjusta pean vaatama kogu oma pset. 39 00:01:33,710 --> 00:01:34,440 Külm. 40 00:01:34,440 --> 00:01:37,270 >> Ma tean, et see vara, aga ma täiesti sai maha võetud valvur 41 00:01:37,270 --> 00:01:40,800 mida essee, mis on tingitud sel reedel, et minu professorid olid lihtsalt meeldib, oh yeah. 42 00:01:40,800 --> 00:01:42,550 Pea meeles, et teil on essee tõttu reedel. 43 00:01:42,550 --> 00:01:45,780 Niisiis, ma tean, et keegi ei meeldi mõelda midterms, 44 00:01:45,780 --> 00:01:50,620 aga oma esimesele viktoriin on 15. oktoobril mis oktoober on alates sellest nädalast. 45 00:01:50,620 --> 00:01:53,290 Niisiis, see võib olla varem kui sa oodata on kõik. 46 00:01:53,290 --> 00:01:57,510 Nii et sa ei visatud välja kaitsepiire kui Mainin järgmise nädala jagu, et oh, 47 00:01:57,510 --> 00:02:00,560 Sinu viktoriin järgmisel nädalal, ma arvasin Ma annan teile natuke rohkem 48 00:02:00,560 --> 00:02:01,500 heads up nüüd. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Seega on teie probleem määrata, number kolm. 51 00:02:04,660 --> 00:02:07,070 Kuidas inimesed lugenud spec uudishimust? 52 00:02:07,070 --> 00:02:08,560 53 00:02:08,560 --> 00:02:09,199 OK. 54 00:02:09,199 --> 00:02:10,229 Saime paar. 55 00:02:10,229 --> 00:02:12,320 Kind of maha viimane nädalas, kuid see on OK. 56 00:02:12,320 --> 00:02:13,650 Ma tean, et see oli ilus välja. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Nii et välja murda. 59 00:02:16,660 --> 00:02:21,010 Kindlasti pärast sa saad teha täna lugeda oma spec vähemalt 60 00:02:21,010 --> 00:02:25,240 proovida nagu allalaadimine jaotus kood ja töö 61 00:02:25,240 --> 00:02:27,430 nagu esimese esialgse asi, mida nad paluda teil. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Kuna me kasutame jaotus kood ja raamatukogu 64 00:02:32,590 --> 00:02:36,790 et me oleme alles kasutades-- --It on ainult teist korda oleme teinud seda pset, 65 00:02:36,790 --> 00:02:38,650 hull asju võib juhtuda oma seadme 66 00:02:38,650 --> 00:02:41,370 ja sa tahad teada, et nüüd välja võrreldes hiljem. 67 00:02:41,370 --> 00:02:45,570 >> Sest kui see on neljapäeva õhtul või see on Kolmapäeva õhtul ja mingil põhjusel 68 00:02:45,570 --> 00:02:48,912 Teie seade lihtsalt ei tahan joosta raamatukogu 69 00:02:48,912 --> 00:02:50,620 või jaotus kood, mis vahendid 70 00:02:50,620 --> 00:02:52,309 te ei saa isegi alustada teed kodeerimine. 71 00:02:52,309 --> 00:02:54,100 Sest sa ei saa kontrollida et näha, kas see toimib. 72 00:02:54,100 --> 00:02:55,975 Teie ei hakka saama kas see kogub. 73 00:02:55,975 --> 00:03:00,500 Sa tahad, et hoolitseda nende vara nädalal, kui saate siiski emaili mulle 74 00:03:00,500 --> 00:03:03,100 või mõnda muud TF, ja me saame need fikseeritud. 75 00:03:03,100 --> 00:03:05,410 Kuna need on küsimused mis hakkavad teid peatada 76 00:03:05,410 --> 00:03:07,120 tegemast tõelist edu. 77 00:03:07,120 --> 00:03:10,055 See ei ole nagu üks viga, et võid lihtsalt omamoodi vahele jätta. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Kui sul on küsimusi oma seadme või levitamine koodi 80 00:03:13,420 --> 00:03:16,211 sa tõesti tahad saada, et võtta hooli pigem varem kui hiljem. 81 00:03:16,211 --> 00:03:20,410 Nii et isegi kui Sa ei tegelikult alustada kodeerimine, jaotuse alla laadida 82 00:03:20,410 --> 00:03:24,040 kood, lugege spec, siis veenduge, kõik töötab seal. 83 00:03:24,040 --> 00:03:25,134 OK? 84 00:03:25,134 --> 00:03:27,675 Kui saate lihtsalt teha, et ma luban teie elu saab olema lihtsam. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 Ja et sa oled ilmselt läheb seda teha just nüüd õige? 87 00:03:31,410 --> 00:03:32,100 OK. 88 00:03:32,100 --> 00:03:33,950 Niisiis, mingeid küsimusi on? 89 00:03:33,950 --> 00:03:35,850 Iga logistiline asjad? 90 00:03:35,850 --> 00:03:36,910 Igaühel on hea? 91 00:03:36,910 --> 00:03:38,270 OK. 92 00:03:38,270 --> 00:03:41,700 >> Hoiatus neile, sa ruumis ja internetis. 93 00:03:41,700 --> 00:03:45,437 Ma lähen, et ta püüab üle minna vahel PowerPoint seadmesse 94 00:03:45,437 --> 00:03:47,270 sest me olla teeme mõned kodeerimist 95 00:03:47,270 --> 00:03:53,630 täna populaarne nõudlus anonüümne soovitus küsitlus I saatis eelmisel nädalal. 96 00:03:53,630 --> 00:03:55,480 Niisiis, me teeme mõned kodeerimist. 97 00:03:55,480 --> 00:03:57,800 Niisiis, kui te poisid ka taha tulekahju up your seadmete 98 00:03:57,800 --> 00:04:02,910 ja sa oleks saanud talle minult, proovi fail. 99 00:04:02,910 --> 00:04:04,310 Vastake teha. 100 00:04:04,310 --> 00:04:07,340 >> Niisiis, me ei kavatse rääkida GDB, mis on siluri. 101 00:04:07,340 --> 00:04:09,970 See saab aidata teil omamoodi aru saada, kus 102 00:04:09,970 --> 00:04:11,860 asjad lähevad valesti koodi. 103 00:04:11,860 --> 00:04:15,370 See on tõesti lihtsalt viis, kuidas saate samm läbi oma kood, nagu see juhtub, 104 00:04:15,370 --> 00:04:19,100 ja suutma välja printida muutujad või näha, mis tegelikult toimub 105 00:04:19,100 --> 00:04:22,980 kapoti alla salmid oma programmi just jooksmine, see on nagu faulting, 106 00:04:22,980 --> 00:04:25,030 ja sa oled nagu, ei tea mis nüüd juhtus siin. 107 00:04:25,030 --> 00:04:26,730 Ma ei tea, mida, mida ta läbi kukkunud. 108 00:04:26,730 --> 00:04:29,040 Ma ei tea, kus ta läks valesti. 109 00:04:29,040 --> 00:04:31,280 Niisiis, GDB läheb, et aidata teil selle. 110 00:04:31,280 --> 00:04:35,240 Samuti, kui sa otsustad jätkama jah, ja võtta 61, 111 00:04:35,240 --> 00:04:38,430 see tõesti olema oma parim sõber, sest ma võin teile öelda, 112 00:04:38,430 --> 00:04:40,840 sest ma lähen läbi selle klassi. 113 00:04:40,840 --> 00:04:43,620 >> Me läheme vaatama binaarne otsing, mis, kui teiega mäletan 114 00:04:43,620 --> 00:04:47,540 suur telefoniraamat näiteks etendus klassi. 115 00:04:47,540 --> 00:04:50,620 Uurime seda rakendavate ja jalgsi läbi, et natuke rohkem, 116 00:04:50,620 --> 00:04:54,650 ja siis me läheme läbi nelja Erinevad, mis on mull, 117 00:04:54,650 --> 00:04:56,285 Valik, paigaldamine ja ühendamine. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Külm. 120 00:04:58,330 --> 00:05:00,390 Niisiis, GDB nagu ma mainisin, on siluri. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 Ja need on omamoodi suur asjad, suur funktsioone või käske 123 00:05:09,370 --> 00:05:13,240 et te kasutate jooksul GDB ja ma käin teid läbi demo see teine. 124 00:05:13,240 --> 00:05:15,360 >> Niisiis, see ei ole lihtsalt jään abstraktseks. 125 00:05:15,360 --> 00:05:18,000 Ma püüan ja teha see nii konkreetseid kui võimalik kutid. 126 00:05:18,000 --> 00:05:19,870 Niisiis, murda. 127 00:05:19,870 --> 00:05:22,200 Seda saad olla kas murda nagu mõned number, mis 128 00:05:22,200 --> 00:05:26,900 kujutab endast rida oma programmi, või saate nimi funktsioon. 129 00:05:26,900 --> 00:05:30,150 Niisiis, kui sa ütled murda peamine, ta ei peatu peamine, 130 00:05:30,150 --> 00:05:32,400 ja kust sa suudad selle funktsiooni. 131 00:05:32,400 --> 00:05:36,350 >> Samuti siis, kui teil on mõned välised toimi nagu Vaheta või Cube, 132 00:05:36,350 --> 00:05:38,450 et me vaatasime eelmisel nädalal. 133 00:05:38,450 --> 00:05:41,780 Kui te ütlete murda üks neist, kui teie programm tabamust, et 134 00:05:41,780 --> 00:05:44,290 see ootan teid öelda seda, mida teha. 135 00:05:44,290 --> 00:05:47,860 Enne seda lihtsalt teostada, et sa võiks tegelikult samm sees funktsiooni 136 00:05:47,860 --> 00:05:49,020 ja vaadata, mis juhtub. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Niisiis, Next, lihtsalt ignoreerib üle järgmisele reale läheb üle funktsioone. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Etapp. 141 00:05:55,560 --> 00:05:56,810 Need kõik on veidi abstraktne. 142 00:05:56,810 --> 00:06:00,530 Niisiis, ma lihtsalt joosta neil, aga näete neid kasutada teist. 143 00:06:00,530 --> 00:06:01,810 >> Astu funktsiooni. 144 00:06:01,810 --> 00:06:04,170 Nii nagu ma ütlesin, jms Swap, oleks 145 00:06:04,170 --> 00:06:07,110 võimaldab teil tegelikult, kui sa oled nagu füüsiliselt samm sees, 146 00:06:07,110 --> 00:06:10,990 saate jama need muutujad, print mida nad on, vaadake, mis toimub. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Nimekiri sõna otseses mõttes lihtsalt printida välja ümbritseva koodi. 149 00:06:14,830 --> 00:06:17,570 Niisiis, kui teil selline unustada kus sa oled oma programmi, 150 00:06:17,570 --> 00:06:19,880 või sa ei tea, mis toimub ümber, 151 00:06:19,880 --> 00:06:23,790 see lihtsalt välja printida segment ja meeldib viis või kuus liinid ümber. 152 00:06:23,790 --> 00:06:26,080 Nii saad orienteeritud kohta, kus sa oled. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> Prindi mõned muutuv. 155 00:06:28,650 --> 00:06:34,590 Niisiis, kui sul on võti, nagu in Caesar, et me vaatame. 156 00:06:34,590 --> 00:06:36,220 Võite öelda Prindi Key igal hetkel. 157 00:06:36,220 --> 00:06:40,070 See ütlen teile, mis on väärtus nii et äkki kuskil mööda teed, 158 00:06:40,070 --> 00:06:42,070 sa overwrote oma võti. 159 00:06:42,070 --> 00:06:45,495 Võite tegelikult öelda, et kuna tegelikult võite täheldada, et väärtus. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> In kohalikega, lihtsalt pildid oma kohaliku muutujad. 162 00:06:48,780 --> 00:06:53,120 Niisiis, millal sa oled sees silmus, ja sa lihtsalt tahad näha nagu, oh. 163 00:06:53,120 --> 00:06:54,270 Mis on minu olen? 164 00:06:54,270 --> 00:06:57,020 Mis on see põhiväärtus et ma initsialiseerida siin? 165 00:06:57,020 --> 00:06:58,537 Mis on sõnum selles küsimuses? 166 00:06:58,537 --> 00:07:00,370 See lihtsalt printida kõik neist, et te 167 00:07:00,370 --> 00:07:04,330 ei pea eraldi öelda, Print I. Prindi Sõnum. 168 00:07:04,330 --> 00:07:04,970 Prindi Key. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 Ja siis Kuva. 171 00:07:07,700 --> 00:07:10,370 Mida see teeb, on, nagu te sammult läbi programmi 172 00:07:10,370 --> 00:07:13,980 siis saad lihtsalt veenduda, et see on väljapanek mõned teatud muutuja 173 00:07:13,980 --> 00:07:14,780 igas punktis. 174 00:07:14,780 --> 00:07:17,160 Nii et te also-- --it on mingi otsetee kus 175 00:07:17,160 --> 00:07:19,530 sa ei pea jätkama nagu, oh. 176 00:07:19,530 --> 00:07:23,150 Prindi Key või Print I. See lihtsalt automaatselt seda teile. 177 00:07:23,150 --> 00:07:25,959 >> Niisiis, et me ei kavatse näha, kuidas see läheb. 178 00:07:25,959 --> 00:07:28,000 Ma lähen, et proovida ja lüliti üle minu aparaat. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Vaata, kas ma suudan seda. 181 00:07:31,271 --> 00:07:31,770 Kõik. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Me lihtsalt hakkab peegeldama seda. 184 00:07:42,370 --> 00:07:44,530 Ei ole midagi hull minu sülearvuti niikuinii. 185 00:07:44,530 --> 00:07:49,600 186 00:07:49,600 --> 00:07:50,100 OK. 187 00:07:50,100 --> 00:07:57,030 188 00:07:57,030 --> 00:08:01,054 See peab olema see üks. 189 00:08:01,054 --> 00:08:01,795 See on nii pisike. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Vaatame, kas me saame seda teha. 192 00:08:05,120 --> 00:08:09,970 193 00:08:09,970 --> 00:08:10,940 >> OK. 194 00:08:10,940 --> 00:08:15,305 Alice on ilmselt hädas siin natuke, 195 00:08:15,305 --> 00:08:17,995 kuid me jõuame seda momento. 196 00:08:17,995 --> 00:08:20,810 197 00:08:20,810 --> 00:08:22,020 OK. 198 00:08:22,020 --> 00:08:25,900 Me lihtsalt läheb seda suurendama. 199 00:08:25,900 --> 00:08:28,770 200 00:08:28,770 --> 00:08:29,380 OK. 201 00:08:29,380 --> 00:08:31,679 Kas igaüks omamoodi näe? 202 00:08:31,679 --> 00:08:32,470 Võib-olla natuke? 203 00:08:32,470 --> 00:08:33,594 Ma tean, et see on natuke väike. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Sa ei saa päris aru saada, kuidas see võimalik on suurem. 206 00:08:37,530 --> 00:08:38,350 Kui keegi teab. 207 00:08:38,350 --> 00:08:40,309 Kas keegi teab, kuidas seda suurem? 208 00:08:40,309 --> 00:08:40,932 OK. 209 00:08:40,932 --> 00:08:42,140 Me läheme veeretada seda. 210 00:08:42,140 --> 00:08:45,801 Vahet pole niikuinii, sest see on lihtsalt see on kood, mida poisid peaks 211 00:08:45,801 --> 00:08:46,300 olema. 212 00:08:46,300 --> 00:08:48,310 >> Veelgi enam oluline on terminal siin. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 Ja meil on siin Miks on see nii väike? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Seaded. 217 00:09:02,825 --> 00:09:07,920 218 00:09:07,920 --> 00:09:08,420 Oh. 219 00:09:08,420 --> 00:09:09,500 Tõsi Ike. 220 00:09:09,500 --> 00:09:10,880 Kuidas see on? 221 00:09:10,880 --> 00:09:11,770 Pole seal. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Kas see on parem kõigi jaoks? 224 00:09:21,810 --> 00:09:22,525 OK ,. 225 00:09:22,525 --> 00:09:23,025 Külm. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Tead, kui oled CS klassi tehnilised raskused 228 00:09:28,220 --> 00:09:32,971 on mingi osa the-- Niisiis, oletame, selge see. 229 00:09:32,971 --> 00:09:33,470 OK. 230 00:09:33,470 --> 00:09:38,060 Niisiis, siin rubriigis, mis meil oli siin. 231 00:09:38,060 --> 00:09:40,830 Caesar on käivitatav fail. 232 00:09:40,830 --> 00:09:41,800 Nii et ma tegin seda. 233 00:09:41,800 --> 00:09:46,370 Niisiis, üks asi realiseerida koos GDB on et see töötab ainult käivitatava faili. 234 00:09:46,370 --> 00:09:48,040 Niisiis, te ei saa kasutada seda dotsy. 235 00:09:48,040 --> 00:09:50,532 Sa pead tegelikult tegema Veenduge, et teie kood koostab, 236 00:09:50,532 --> 00:09:51,865 ja et ta võib tegelikult juhtida. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Seega veenduge, et kui see ei ole koguda, saan seda koguda, 239 00:09:56,186 --> 00:09:57,810 nii, et saate mingi joosta läbi. 240 00:09:57,810 --> 00:10:04,590 Niisiis, alustada GDB, kõik, mida teha, Gloria tüüp GDB, ja siis lihtsalt 241 00:10:04,590 --> 00:10:06,250 fail, mida soovite. 242 00:10:06,250 --> 00:10:08,240 Olen alati vigadega kirjutama Caesar. 243 00:10:08,240 --> 00:10:11,730 Kuid sa tahad teha kindel, sest see on käivitatav, 244 00:10:11,730 --> 00:10:14,210 ti punktisagedus flash, nii et tähendab, et sa lähed 245 00:10:14,210 --> 00:10:19,240 joosta CSI sa lähed täitma Neid faile kas siluri. 246 00:10:19,240 --> 00:10:19,910 OK. 247 00:10:19,910 --> 00:10:22,885 Niisiis, sa, et sa saad selline jama. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 See on lihtsalt kõik asjad umbes siluri. 250 00:10:25,750 --> 00:10:28,200 Sa tõesti ei pea muretse praegu. 251 00:10:28,200 --> 00:10:31,460 Ja nagu näete, meil on see avatud Sulgudes SKP lähedal Sulgudes, 252 00:10:31,460 --> 00:10:34,690 ja lihtsalt selline välja näeb meie käsurida, eks? 253 00:10:34,690 --> 00:10:37,010 >> Niisiis, mida me tahame do-- -seega, Esimene asi, 254 00:10:37,010 --> 00:10:39,570 on me tahame valida koht murdma. 255 00:10:39,570 --> 00:10:42,332 Niisiis, seal on üks viga Selles Caesar programmi 256 00:10:42,332 --> 00:10:44,290 mis ma saan, et me lähme välja selgitada. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Ta Mis see on, mis kulub sisend Barfoo kõik mütsid, ja mingil põhjusel 259 00:10:56,350 --> 00:11:01,950 see ei muuda A. See lihtsalt jätab üksi, on kõik muu õige, 260 00:11:01,950 --> 00:11:03,980 kuid teine ​​kiri Jääb muutumatuks. 261 00:11:03,980 --> 00:11:07,120 Niisiis, me ei kavatse proovida ja selgitada, miks see nii on. 262 00:11:07,120 --> 00:11:10,440 Niisiis, esimene asi, mida sa tavaliselt tahad teha, kui te alustate GDB 263 00:11:10,440 --> 00:11:12,010 on aru saada, kus murdma. 264 00:11:12,010 --> 00:11:14,956 >> Nii et Caesar on päris lühike programm. 265 00:11:14,956 --> 00:11:16,330 Me peame lihtsalt üks funktsioon, eks? 266 00:11:16,330 --> 00:11:18,520 Mis oli meie funktsioon Caesar? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Seal on ainult üks funktsioon, Main õige? 269 00:11:24,350 --> 00:11:26,490 Peamine on funktsioon kõik oma programmid. 270 00:11:26,490 --> 00:11:29,230 Kui sa ei ole Main, võin olla natuke mures just nüüd, 271 00:11:29,230 --> 00:11:31,000 aga ma loodan, et teil kõigil oli Main seal. 272 00:11:31,000 --> 00:11:34,150 Niisiis, mida me saame teha, on meil võimalik lihtsalt murda Main, just niimoodi. 273 00:11:34,150 --> 00:11:35,190 Nii, see ütleb, et OK. 274 00:11:35,190 --> 00:11:37,430 Me seame meie murdepunkti üks seal. 275 00:11:37,430 --> 00:11:42,870 >> Nii, nüüd on meeles pidada, Caesar võtab üks käsurea argument õigus 276 00:11:42,870 --> 00:11:45,150 ja me ei ole teinud, et kuskil veel. 277 00:11:45,150 --> 00:11:47,560 Niisiis, mida te teete, on see, kui sa tegelikult minema joosta 278 00:11:47,560 --> 00:11:51,540 Programmi ühtegi programmi, et sa oled töötab GDB, mis vajab käsurea 279 00:11:51,540 --> 00:11:55,010 argumente, sa lähed sisend kui te esimest korda hakatakse seda. 280 00:11:55,010 --> 00:11:59,280 Niisiis, käesoleval juhul me Käivita võtmega kolm. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 Ja see tegelikult alustada. 283 00:12:02,040 --> 00:12:08,480 >> Niisiis, kui sa näed siin on meil Kui RC ei ole võrdne 2. 284 00:12:08,480 --> 00:12:12,210 Nii et kui te poisid kõik on et fail, mida ma saatnud üles 285 00:12:12,210 --> 00:12:15,100 näete, et see on nagu Esimene rida meie peamine ülesanne, eks? 286 00:12:15,100 --> 00:12:17,890 See kontrollides, et näha, kas meil on õige mitmeid argumente. 287 00:12:17,890 --> 00:12:20,620 Niisiis, kui sa ei tea, kui RC on õige, 288 00:12:20,620 --> 00:12:23,250 saab midagi teha nagu Print RC. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 RC on kaks, mis on mida me ootasime, eks? 291 00:12:28,640 --> 00:12:32,010 >> Niisiis, me saame minna Edasi ja jätkake. 292 00:12:32,010 --> 00:12:33,200 Nii, meil on mõned olulised seal. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 Ja meil on võimalik välja printida meie peamiste veenduda, et on õige. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Huvitav. 297 00:12:39,500 --> 00:12:41,210 Mitte päris see, mida me ootasime. 298 00:12:41,210 --> 00:12:44,810 Niisiis, üks asi realiseerida koos GDB Samuti on 299 00:12:44,810 --> 00:12:49,000 et see ei ole kuni te tegelikult tabanud Edasi, et rida, et sa lihtsalt nägin 300 00:12:49,000 --> 00:12:50,720 on tegelikult tehtud. 301 00:12:50,720 --> 00:12:53,870 Niisiis, käesoleval juhul Key ei ole veel omistatud. 302 00:12:53,870 --> 00:12:57,050 Niisiis, Key on mõned prügi väärtus et näete allservas. 303 00:12:57,050 --> 00:13:03,680 Negatiivne $ 120-- --It on üks miljard ja midagi imelikke asju eks? 304 00:13:03,680 --> 00:13:05,340 See ei ole võti, et me ootasime. 305 00:13:05,340 --> 00:13:10,720 Aga kui me tabanud Next ja siis üritada Prindi võti, see on kolm. 306 00:13:10,720 --> 00:13:11,710 >> Igaüks näe? 307 00:13:11,710 --> 00:13:13,780 Niisiis, kui sa midagi et sa oled nagu, oota. 308 00:13:13,780 --> 00:13:15,540 See on täiesti vale, ja ma ei tea 309 00:13:15,540 --> 00:13:20,150 kuidas see juhtub, sest kõik, mida ma tahan tegema, on määrata number, muutuja, 310 00:13:20,150 --> 00:13:22,900 proovida lööb Järgmiseks proovige trükkimine seda uuesti, ja vaata, kas see toimib. 311 00:13:22,900 --> 00:13:27,830 Sest see on ainult kavatse täita ja tegelikult määrama midagi pärast 312 00:13:27,830 --> 00:13:29,340 tabas Next. 313 00:13:29,340 --> 00:13:30,336 Mõtet kõigile? 314 00:13:30,336 --> 00:13:30,836 Uh huh? 315 00:13:30,836 --> 00:13:33,220 >> SPEAKER 2: Kui sa juhuslikult numbrid mida see tähendab? 316 00:13:33,220 --> 00:13:34,790 >> SPEAKER 1: See on lihtsalt juhuslikult. 317 00:13:34,790 --> 00:13:35,710 See on lihtsalt prügi. 318 00:13:35,710 --> 00:13:38,320 See on lihtsalt midagi, mida teie Arvuti juhuslikult määrata. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Külm. 321 00:13:40,220 --> 00:13:45,760 Nii, nüüd me saame liikuda, ja nii Nüüd on meil see lihtteksti getString. 322 00:13:45,760 --> 00:13:48,600 Niisiis, lubage mul tutvustada, mida juhtub siis, kui me tabanud Järgmine siin. 323 00:13:48,600 --> 00:13:51,320 Meie GDB omamoodi kaob, eks? 324 00:13:51,320 --> 00:13:55,720 Ongi, sest getString Nüüd on täidesaatva, eks? 325 00:13:55,720 --> 00:14:01,460 Niisiis, kui me nägime lihttekstina võrdub GetString, avatud Sulgudes ja Sulgudes, 326 00:14:01,460 --> 00:14:04,380 ja me tabanud Järgmiseks, mis on tegelikult tehtud nüüd. 327 00:14:04,380 --> 00:14:06,580 Nii, see on oodanud meil sisend midagi. 328 00:14:06,580 --> 00:14:13,560 >> Niisiis, me ei kavatse sisend meie toit on see, mida see ei suuda nagu ma ütlesin, 329 00:14:13,560 --> 00:14:18,020 ja mis lihtsalt ütleb, et see on valmis täidesaatva, et suletud 330 00:14:18,020 --> 00:14:19,980 sulg tähendab see väljudes välja, et silmus. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Nii võime tabas Next ja nüüd, kui ma olen Kindlasti olete kõik tuttavad Caesar, 333 00:14:25,420 --> 00:14:27,260 see on, mis see liin kavatse seda teha. 334 00:14:27,260 --> 00:14:32,030 See eest Int I võrdub 0, N võrdub Strlen, lihttekstina ja siis 335 00:14:32,030 --> 00:14:33,960 Mul on vähem kui n, I, pluss, pluss. 336 00:14:33,960 --> 00:14:35,210 Mis see on loop tegema hakkad? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Ava oma sõnum. 339 00:14:39,160 --> 00:14:39,770 Külm. 340 00:14:39,770 --> 00:14:41,330 Niisiis, alustame seda tehes. 341 00:14:41,330 --> 00:14:47,210 >> Nii peaks see tingimus Naudi meie esimene? 342 00:14:47,210 --> 00:14:52,250 Kui see on B, siis on ainult tekst I. Me saab infot meie kohalikega. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Niisiis, ma on null, ja kui kuue, mille ootame ja meie võti on kolm. 345 00:14:57,970 --> 00:14:59,227 Kõik, mida on mõtet, eks? 346 00:14:59,227 --> 00:15:01,310 Need numbrid on kõik täpselt, mida nad peaksid olema. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Niisiis, hum? 349 00:15:03,870 --> 00:15:05,620 SPEAKER 3: mul on juhuslike arvude jaoks minu. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 SPEAKER 1: Noh, me saame kontroll-- --Meil saab vestelda, et teises. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Aga siis peaks olema saada see. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Niisiis, kui meil on kapitali B meie esimene, 356 00:15:20,130 --> 00:15:22,080 seda tingimust tuleks püüda seda, eks? 357 00:15:22,080 --> 00:15:27,120 Seega, kui me tabanud Järgmisena näeme et see kui tegelikult täidab. 358 00:15:27,120 --> 00:15:29,220 Sest kui sa oled järgmine koos oma koodi 359 00:15:29,220 --> 00:15:33,460 see joon siin, kus tavaline teksti I asendatakse käesoleva aritmeetika, 360 00:15:33,460 --> 00:15:35,720 täidab üksnes juhul, kui Kui tingimus on õige eks? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB on ainult kavatse näidata teile asju, mis on tegelikult täidetakse. 363 00:15:40,240 --> 00:15:45,140 Nii et kui see Kui tingimus ei ole täidetud, siis on lihtsalt läheb liikuda järgmise rea. 364 00:15:45,140 --> 00:15:46,540 OK? 365 00:15:46,540 --> 00:15:48,510 Niisiis, meil on see. 366 00:15:48,510 --> 00:15:51,171 See sulg tähendab see suletud välja et loop nüüd. 367 00:15:51,171 --> 00:15:52,420 Niisiis, see läheb uuesti alustada. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Just niimoodi. 370 00:15:56,280 --> 00:15:59,120 Nii, et saame info meie kohalikud siin 371 00:15:59,120 --> 00:16:02,575 ja me näeme, et meie esimene kirjas on muutunud, eks? 372 00:16:02,575 --> 00:16:05,150 Nüüd on E, nagu see peaks olema. 373 00:16:05,150 --> 00:16:07,360 Nii võime jätkata. 374 00:16:07,360 --> 00:16:08,500 >> Ja meil on see kontroll. 375 00:16:08,500 --> 00:16:09,916 Ja selle kontrolli peaks tegema, eks? 376 00:16:09,916 --> 00:16:12,570 On A. Tuleb muutunud kolm tähte edasi. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Aga kui te märkate, oleme midagi erinevat. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Nii et kui siin, see on püütud see ja nii see rida täidetud, 381 00:16:22,860 --> 00:16:28,620 millega muudeti meie B. Kuid antud juhul, 382 00:16:28,620 --> 00:16:32,860 meil on see lihtsalt vahele see, ja läks [? L Siff. ?] 383 00:16:32,860 --> 00:16:34,660 Nii et midagi seal toimub. 384 00:16:34,660 --> 00:16:37,780 Mida see räägib teile on, et me teame, et see tuleks püüda siin 385 00:16:37,780 --> 00:16:39,200 kuid see ei ole. 386 00:16:39,200 --> 00:16:42,210 Kas keegi näha, mida meie Probleem on selles, et piir? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 See on väga minut asi. 389 00:16:46,969 --> 00:16:48,510 Ja siis võiks ka vaadata oma koodi. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Samuti on LINE unustada, mida joon on aastal there-- kuid see on [kuuldamatu]. 392 00:16:54,940 --> 00:16:55,480 Jah? 393 00:16:55,480 --> 00:16:58,639 >> SPEAKER 4: See on suurem kui lehel, kui sa loed seda raamatut. 394 00:16:58,639 --> 00:16:59,430 SPEAKER 1: Täpselt. 395 00:16:59,430 --> 00:17:02,620 Niisiis, siluri ei ütle te, kuid siluri 396 00:17:02,620 --> 00:17:05,880 saame sind liinile et sa tead, ei tööta. 397 00:17:05,880 --> 00:17:09,319 Ja mõnikord, kui eriti hiljem semester, kui 398 00:17:09,319 --> 00:17:12,910 olete tegelevad saja, sada paar rida koodi, ja sa 399 00:17:12,910 --> 00:17:16,190 ei tea, kus see ei anna tulemusi, see on suurepärane võimalus seda teha. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Niisiis, me leidsime meie viga. 402 00:17:18,989 --> 00:17:21,530 Võite parandada oma faili ja siis võiks kasutada seda uuesti, 403 00:17:21,530 --> 00:17:23,029 ja töötaks kõik suurepäraselt. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 Ja suurim asi on see võib tunduda, OK. 406 00:17:30,590 --> 00:17:31,090 Jah. 407 00:17:31,090 --> 00:17:31,370 Külm. 408 00:17:31,370 --> 00:17:32,744 Sa teadsid, mida te otsite. 409 00:17:32,744 --> 00:17:34,910 Nii, et sa tead, mida teha. 410 00:17:34,910 --> 00:17:39,021 >> GDB saab super kasulik, sest sa saab välja printida kõik need asjad, mida 411 00:17:39,021 --> 00:17:39,520 ei teeks. 412 00:17:39,520 --> 00:17:41,160 See on palju kasulikum kui printf. 413 00:17:41,160 --> 00:17:43,440 Kui paljud teist kasutavad nagu printf avaldusi 414 00:17:43,440 --> 00:17:46,200 aru saada, kus viga oli, eks? 415 00:17:46,200 --> 00:17:48,450 Niisiis, see, sa seda ei tee on hoida naasmine, 416 00:17:48,450 --> 00:17:51,139 ja meeldib kommenteerib Printf või kommenteerides välja, 417 00:17:51,139 --> 00:17:52,930 ja aru saada, mis sa peaks printimist. 418 00:17:52,930 --> 00:17:55,670 See tegelikult lihtsalt võimaldab teil sammult läbi, välja printida asju 419 00:17:55,670 --> 00:18:00,000 kui sa lähed läbi, nii saate jälgida, kuidas nad muutuvad reaalajas 420 00:18:00,000 --> 00:18:02,190 kui teie programm töötab. 421 00:18:02,190 --> 00:18:04,390 >> Ja see võtab vähe natuke harjumist. 422 00:18:04,390 --> 00:18:07,850 Ma väga soovitada just sellist olla veidi pettunud ta 423 00:18:07,850 --> 00:18:08,930 jaoks just nüüd. 424 00:18:08,930 --> 00:18:13,450 Kui sa kulutad tunni jooksul Järgmisel nädalal õppida, kuidas kasutada GDB, 425 00:18:13,450 --> 00:18:16,140 säästad ennast nii palju aega hiljem. 426 00:18:16,140 --> 00:18:18,750 Ja sõna otseses mõttes. me öelda Selle inimestele igal aastal 427 00:18:18,750 --> 00:18:23,890 ja ma mäletan, kui ma võtsin klassi, ma olin nagu, ma saab trahvi. 428 00:18:23,890 --> 00:18:24,700 Ei. 429 00:18:24,700 --> 00:18:27,030 Pset 6 tuli ja ma olin nagu, ma hakkan õppima 430 00:18:27,030 --> 00:18:29,500 kuidas kasutada GDB, sest ma ei ole tea, mis siin toimub. 431 00:18:29,500 --> 00:18:32,940 >> Nii et kui te võtate aega, et kasuta seda väiksemad programmid 432 00:18:32,940 --> 00:18:35,697 et sa lähed, et olla kallal, nagu töötamine 433 00:18:35,697 --> 00:18:37,530 läbi midagi Visionare, niimoodi. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 Või kui soovite Täiendava tava, ma olen kindel Ma võiks tulla lollakas programmide 436 00:18:42,850 --> 00:18:45,300 teile siluda, kui soovite. 437 00:18:45,300 --> 00:18:49,300 >> Aga kui sa lihtsalt võtta aega, et saada harjunud, lihtsalt mängida seda, 438 00:18:49,300 --> 00:18:50,550 see tõesti teenib sind hästi. 439 00:18:50,550 --> 00:18:52,591 Ja see on tõesti üks neid asju, mida sa lihtsalt 440 00:18:52,591 --> 00:18:57,340 on proovida ja saada oma käed määrdunud koos, enne kui sa tõesti aru. 441 00:18:57,340 --> 00:19:02,090 Ma tõesti ainult aru kord Mul oli silumiseks asju see, 442 00:19:02,090 --> 00:19:08,170 ja see on palju kenamaks on idee kuidas siluda pigem varem kui hiljem. 443 00:19:08,170 --> 00:19:08,850 OK. 444 00:19:08,850 --> 00:19:09,625 Külm. 445 00:19:09,625 --> 00:19:12,960 Ma tean, et on selline nagu kiirkursuse GDB, 446 00:19:12,960 --> 00:19:16,400 ja ma kindlasti tööle saada Nende vaatama suurem järgmine kord. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Külm. 449 00:19:18,280 --> 00:19:20,390 >> Niisiis, kui me läheme tagasi meie PowerPoint. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Kas see läheb tööle? 452 00:19:28,110 --> 00:19:29,711 453 00:19:29,711 --> 00:19:30,210 AWH. 454 00:19:30,210 --> 00:19:31,101 Jah. 455 00:19:31,101 --> 00:19:31,600 OK. 456 00:19:31,600 --> 00:19:35,480 Niisiis, kui te kunagi vaja mis tahes need jälle seal nimekirjas. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Nii Binary Search, kus igaüks mäletab suurt vaatemängu David 459 00:19:40,830 --> 00:19:42,259 rippimise telefon raamatuid pooleks. 460 00:19:42,259 --> 00:19:44,050 Ma tõesti ei saa telefon raamatuid enam, 461 00:19:44,050 --> 00:19:46,530 sest nagu kus sa saada telefon raamatuid nendel päevadel? 462 00:19:46,530 --> 00:19:48,220 Ma tõesti ei tea. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Binary Search. 465 00:19:50,590 --> 00:19:52,464 Kas keegi mäletab, kuidas Binary Search töötab? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Keegi üldse? 468 00:19:55,220 --> 00:19:56,325 Jah? 469 00:19:56,325 --> 00:19:58,283 SPEAKER 5: Tead, kui te vaatate millest pool 470 00:19:58,283 --> 00:20:01,146 see oleks, tuginedes, et ja vabaneda teise poole. 471 00:20:01,146 --> 00:20:01,896 >> SPEAKER 1 Täpselt. 472 00:20:01,896 --> 00:20:06,290 Niisiis, Binary Search, see on selline a-- --Meil meeldib seda nimetada jaga ja valitse. 473 00:20:06,290 --> 00:20:09,170 Niisiis, mida saate teha, on saate otsida keskel, 474 00:20:09,170 --> 00:20:11,990 ja te näete, kui see vastab mida te otsite. 475 00:20:11,990 --> 00:20:15,420 Ja kui seda ei juhtu, siis proovige nuputada, ta kavatseb jätta 476 00:20:15,420 --> 00:20:16,450 pool või paremal pool. 477 00:20:16,450 --> 00:20:19,325 Nii võib see olla, kui otsite on midagi, mis on Tähestikuline, 478 00:20:19,325 --> 00:20:20,720 näed, oh. 479 00:20:20,720 --> 00:20:22,750 Kas Allison tulla enne M? 480 00:20:22,750 --> 00:20:23,250 Jah. 481 00:20:23,250 --> 00:20:25,030 Niisiis, me ei kavatse vaadata esimesel poolel. 482 00:20:25,030 --> 00:20:26,450 >> Või võiks see olla numbritega. 483 00:20:26,450 --> 00:20:28,830 Midagi, mis saab võrrelda, siis võib sorteerida. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Võite kasutada binaarne otsing. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Niisiis, keegi mäletab seda graafik või mis see on? 488 00:20:37,455 --> 00:20:39,520 See on asümptootilisest keerukus. 489 00:20:39,520 --> 00:20:42,830 Niisiis, see graafik lihtsalt kirjeldab, kui kaua 490 00:20:42,830 --> 00:20:46,230 viib teid, kuidas lahendada probleemi, kui te arvu suurendada asjad 491 00:20:46,230 --> 00:20:47,090 et te kasutate. 492 00:20:47,090 --> 00:20:51,260 >> Nii, meil on N, mis on lineaarne aeg. 493 00:20:51,260 --> 00:20:54,560 Kui N üle kahe, mis on veidi parem ikka kasvab super kiire. 494 00:20:54,560 --> 00:20:58,360 Ja siis oleme sisse, mis on mis meie arvates Binary Search. 495 00:20:58,360 --> 00:21:03,630 Kui märkame, kui teie probleem saab palju ja palju suurem, 496 00:21:03,630 --> 00:21:06,600 aega kulub sul seda lahendada ei ole tegelikult suurendada nii palju. 497 00:21:06,600 --> 00:21:09,010 See on nagu võrrelda siin alguses. 498 00:21:09,010 --> 00:21:10,060 Sa oled nagu, OK. 499 00:21:10,060 --> 00:21:13,000 Midagi siin ei ole tõesti asi, millest üks, mida me kasutame, 500 00:21:13,000 --> 00:21:16,220 kuid sa välja miljon, miljard. 501 00:21:16,220 --> 00:21:20,010 Sa üritad leida some-- --you're püüdes leida nõela heinakuhjas. 502 00:21:20,010 --> 00:21:21,550 >> Ma arvan, et sa tahad seda probleemi. 503 00:21:21,550 --> 00:21:25,850 Tahad keerulisemaks see, et ei lineaarne, sest kõik, mida 504 00:21:25,850 --> 00:21:30,049 tean oma saab olema läbi otsida iga nõela asi hein, 505 00:21:30,049 --> 00:21:31,340 püüdes leida nõela. 506 00:21:31,340 --> 00:21:34,730 Ja see pole liiga lõbus minu arvates. 507 00:21:34,730 --> 00:21:35,500 Mulle meeldib kiire. 508 00:21:35,500 --> 00:21:36,620 Mulle meeldib väga tõhus. 509 00:21:36,620 --> 00:21:40,450 Ja kui töökas õpilastele sa kutid on, sa tead, töö targemaks, 510 00:21:40,450 --> 00:21:43,010 mitte raskem tüüpi asi, kuidas sa saab teha kuni nende algoritme. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Niisiis, me ei kavatse käia kaudu lihtsalt kiire näide. 513 00:21:47,910 --> 00:21:51,090 Ma arvan, et kutid peaks olema käsi Binary Search, 514 00:21:51,090 --> 00:21:54,352 kuid kui keegi on natuke udune, soovime tugevdada seda, 515 00:21:54,352 --> 00:21:56,310 me lähme lihtsalt minema näitena siin. 516 00:21:56,310 --> 00:21:59,490 Niisiis, me otsime, kui massiiv sisaldab seitset. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Niisiis, esimene asi, mida me teha, on vaata keskel, eks? 519 00:22:06,010 --> 00:22:09,340 Ja ka sa lähed tuleb kodeerimine Binary Search vaid teine. 520 00:22:09,340 --> 00:22:11,310 Nii, see saab olema lõbus. 521 00:22:11,310 --> 00:22:13,710 Nii et me vaatame keskel väike massiivid 3. 522 00:22:13,710 --> 00:22:15,501 Kas 3 võrdub 7? 523 00:22:15,501 --> 00:22:16,000 Mitte. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 See on kuus. 526 00:22:19,550 --> 00:22:21,480 Nii, see on vähem kui või rohkem kui seitse? 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Vähem kui. 529 00:22:23,960 --> 00:22:24,570 Jah. 530 00:22:24,570 --> 00:22:25,170 Nice töö poisid. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Tunnen nagu ma peaks kommid, sest ma 533 00:22:27,360 --> 00:22:29,460 taha visata see viidud meetrit. 534 00:22:29,460 --> 00:22:30,270 See on see, mida ma kavatsen teha järgmisel nädalal. 535 00:22:30,270 --> 00:22:31,436 See hoiab kutid terav. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Niisiis, me visata, et esimesel poolel, eks? 538 00:22:34,690 --> 00:22:35,670 see oli alla. 539 00:22:35,670 --> 00:22:39,325 me teame, et kõik kohta, et vasakul pool 540 00:22:39,325 --> 00:22:41,700 läheb vähem, kui me tegelikult otsivad. 541 00:22:41,700 --> 00:22:43,491 Niisiis, ei ole vaja pöörama tähelepanu sellele. 542 00:22:43,491 --> 00:22:45,120 Lihtsalt unusta see. 543 00:22:45,120 --> 00:22:48,720 Nii, nüüd me vaatame meie löögile, ja me vaatame keskel seal, 544 00:22:48,720 --> 00:22:50,510 ja nüüd on üheksa. 545 00:22:50,510 --> 00:22:55,510 Niisiis, 9 on-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Rohkem kui see, mida me oleme otsin, eks? 547 00:22:57,470 --> 00:22:59,860 Niisiis, me ei kavatse visata ära kõik paremale. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Niimoodi. 550 00:23:01,940 --> 00:23:03,700 Nüüd on kõik me oleme jäänud on. 551 00:23:03,700 --> 00:23:07,760 Nii et me kontrollime, on see, mida me otsime? see on. 552 00:23:07,760 --> 00:23:08,970 Leidsime, mida me tahtsime. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Nii ongi kõik. 555 00:23:11,690 --> 00:23:12,550 Bilineaarne otsing. 556 00:23:12,550 --> 00:23:15,740 >> Ja kui te märkate, oleme oli seitse sisendid olemas. 557 00:23:15,740 --> 00:23:24,320 See kestis vaid meid nagu kolm korda aga kui sa teed nagu miljardit 558 00:23:24,320 --> 00:23:28,190 te teate, mitu sammu ta oleks võtta, kui meil oleks 4000000000 asju? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Kõik oletused? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 See on 32. 563 00:23:33,960 --> 00:23:37,110 32 sammu, et leida midagi a 4000000000 564 00:23:37,110 --> 00:23:39,650 element massiivi tõttu volitused kaks. 565 00:23:39,650 --> 00:23:43,550 Nii kaks on kuni 32, on 4000000000. 566 00:23:43,550 --> 00:23:50,430 >> Nii et päris hull, kui sa oled ikkagi nagu suhteliselt väike arv samme 567 00:23:50,430 --> 00:23:52,650 leida midagi 4000000000 elemente. 568 00:23:52,650 --> 00:23:55,730 Nii et selle teadmiseks, me oleme läheb kodeerida selle 569 00:23:55,730 --> 00:23:58,950 nii kutid saavad tegelikult omamoodi aru, kuidas see töötab. 570 00:23:58,950 --> 00:24:01,520 Olgu, et te kutid saate kodeerida. 571 00:24:01,520 --> 00:24:04,100 Ma lähen teile poisid rääkida natuke. 572 00:24:04,100 --> 00:24:07,970 Tutvu inimesi enda ümber, mis on mida keegi tahtis viimane osa. 573 00:24:07,970 --> 00:24:10,280 >> Nii tundma inimesi enda ümber. 574 00:24:10,280 --> 00:24:11,305 Arutelu natuke. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 Ja kõik, mida ma tahan sinult poisid just nüüd on lihtsalt 577 00:24:15,730 --> 00:24:17,575 püüame luua ülevaade pseudokoodi. 578 00:24:17,575 --> 00:24:18,075 OK? 579 00:24:18,075 --> 00:24:20,825 580 00:24:20,825 --> 00:24:21,325 Vau. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Ma tahan kutid on sul lihtsalt läheb täita seda samas asjas. 583 00:24:29,520 --> 00:24:32,170 Nii et ma olen pannud nende ülemine ja alumised piirid, mis 584 00:24:32,170 --> 00:24:35,250 esindama alguses ja lõpuks meie massiivi. 585 00:24:35,250 --> 00:24:40,440 Ja sa lähed tegelikult aas läbi ja nuputada 586 00:24:40,440 --> 00:24:42,470 mida me teeme selles samas silmus. 587 00:24:42,470 --> 00:24:45,810 >> Nii et kui te saate aru out-- mul vihje there-- millistel juhtudel 588 00:24:45,810 --> 00:24:46,640 mis meil siin on? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Nii et kui sa tahad välja nuputada juhtudel me pseudokoodi nende 591 00:24:51,560 --> 00:24:53,350 ja siis me tegelikult kodeerida neid. 592 00:24:53,350 --> 00:24:55,330 Ja see saab olema, ma arvan, loodetavasti see saab 593 00:24:55,330 --> 00:24:56,788 olla natuke lihtsam kui sa oodata. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Sest see ei ole nii palju koodi tegelikult, mis on väga lahe. 596 00:25:00,220 --> 00:25:34,110 597 00:25:34,110 --> 00:25:35,018 >> Mm-hm? 598 00:25:35,018 --> 00:25:35,893 >> Õpilane: [kuuldamatu]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 Juhendaja: Jah. 601 00:25:37,650 --> 00:25:38,595 Seal oli midagi leida keskel. 602 00:25:38,595 --> 00:25:39,552 >> Õpilane: Nii saame kasutada seda. 603 00:25:39,552 --> 00:25:39,770 OK. 604 00:25:39,770 --> 00:25:40,603 >> Juhendaja: Perfect. 605 00:25:40,603 --> 00:25:42,950 Nii et esimene asi, mida me peame tegema. 606 00:25:42,950 --> 00:25:44,330 Nii et leida kuldset. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Suur. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Nii et sul on idee, kuidas me võiksime tegelikult leida kuldset koodiga? 611 00:25:55,010 --> 00:25:55,980 >> Õpilane: Jah. 612 00:25:55,980 --> 00:25:57,000 n üle 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 Juhendaja: Nii n üle 2. 615 00:25:59,500 --> 00:26:05,170 Nii et üks asi on meeles pidada, et oma ülemise ja alumise piire muuta. 616 00:26:05,170 --> 00:26:08,110 Hoiame constricting osa massiivi me otsitavat. 617 00:26:08,110 --> 00:26:11,970 Nii n üle 2 töötab ainult et esimene asi, mida me teeme. 618 00:26:11,970 --> 00:26:17,810 Nii võttes ülemise ja alumise arvesse kuidas võiks saame, et keset element? 619 00:26:17,810 --> 00:26:20,640 Kuna me tahame keskel vahel ülemise ja alumise, eks? 620 00:26:20,640 --> 00:26:21,730 621 00:26:21,730 --> 00:26:22,494 Mm-hm? 622 00:26:22,494 --> 00:26:23,369 >> Õpilane: [kuuldamatu]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> Juhendaja: Nii et meil on mõned keskel. 625 00:26:28,080 --> 00:26:32,730 Ja see saab olema ülemise pluss madalam üle 2. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Awesome. 628 00:26:35,690 --> 00:26:36,570 Seal me läheme. 629 00:26:36,570 --> 00:26:37,280 Üks rida alla. 630 00:26:37,280 --> 00:26:38,560 Te olete oma viis. 631 00:26:38,560 --> 00:26:41,400 Nüüd, et meil on keskel, mida me tahame teha? 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 Lihtsalt üldiselt. 634 00:26:45,900 --> 00:26:47,734 Sa ei pea koodi ta. 635 00:26:47,734 --> 00:26:48,335 Jah. 636 00:26:48,335 --> 00:26:49,210 Õpilane: [kuuldamatu]? 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 Juhendaja: Nii et see on pluss, sest sa oled leidmisel keskmiselt kahe 639 00:27:10,310 --> 00:27:10,810 neist. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Nii et kui te arvate neist omamoodi suurendada sealt külge, 642 00:27:17,370 --> 00:27:21,640 mõtle selle peale kui sa lähenemine keskel, tahad niimoodi. 643 00:27:21,640 --> 00:27:27,150 Nii et kui sa olid mõlemal pool keskel, ja me oleme nagu 5 ja 7. 644 00:27:27,150 --> 00:27:31,440 Kui lisate neid koos te saada 12, siis jagage 2 on 6. 645 00:27:31,440 --> 00:27:33,726 >> Vahel on raske selgitada, miks see toimib, 646 00:27:33,726 --> 00:27:35,600 aga kui sa töö kaudu Näiteks mõnikord 647 00:27:35,600 --> 00:27:37,962 see aitame sind mõtlema, kui see peaks olema pluss või miinus. 648 00:27:37,962 --> 00:27:38,846 Jah. 649 00:27:38,846 --> 00:27:40,830 >> Õpilane: [kuuldamatu] täpselt keskel 650 00:27:40,830 --> 00:27:43,950 kui neil oleks juhul, kui seal on palju väiksemad numbrid 651 00:27:43,950 --> 00:27:45,860 ja nagu üks suur number? 652 00:27:45,860 --> 00:27:49,750 >> Juhendaja: Nii et kõik, mida vaja on keset massiivi. 653 00:27:49,750 --> 00:27:53,010 Nii et kui teil oli hunnik väike arv ja siis üks tõeliselt suur hulk 654 00:27:53,010 --> 00:27:54,799 lõpus, see ei ole tähtis. 655 00:27:54,799 --> 00:27:56,840 Loeb see, et nad sorteeritud, sa lihtsalt 656 00:27:56,840 --> 00:27:59,339 tahad vaadata keskel massiiv, sest sa oled veel 657 00:27:59,339 --> 00:28:00,700 viilutamine oma probleemi pooleks. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Külm. 660 00:28:03,680 --> 00:28:06,430 Nii et nüüd, kui meil keskel, mida me teeme siis? 661 00:28:06,430 --> 00:28:07,150 >> Õpilane: võrrelge. 662 00:28:07,150 --> 00:28:08,150 Juhendaja: võrrelda. 663 00:28:08,150 --> 00:28:11,670 Nii et võrrelda keskelt value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Külm. 666 00:28:15,160 --> 00:28:17,950 Nii et näete siin on meil Selle raha me tahame siin. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Pea meeles, et see on massiiv. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Nii keskel viitab indeks. 671 00:28:26,970 --> 00:28:29,785 Nii et me tahame teha väärtuste keskel. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Ärge unustage, kui soovite võrrelda, topelt võrdsete. 674 00:28:35,650 --> 00:28:38,250 Sa teed ühe võrdub oled lihtsalt läheb ümber jaotada see, 675 00:28:38,250 --> 00:28:41,090 ja siis muidugi see saab olema väärtus, mida soovite. 676 00:28:41,090 --> 00:28:42,300 Nii ei saa seda teha. 677 00:28:42,300 --> 00:28:44,350 >> Nii et me ei kavatse vaadata, kas väärtuste keskel 678 00:28:44,350 --> 00:28:46,460 on võrdne väärtus tahame. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Ära unusta oma traksid. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox peaks minema. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Mida me siis teeme sel juhul? 685 00:28:56,200 --> 00:28:59,360 Kui see on see, mida me tahame naasta? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Me püüame öelda. 688 00:29:02,626 --> 00:29:03,440 >> Õpilane: Prindi välja. 689 00:29:03,440 --> 00:29:05,314 >> Juhendaja: Noh, me ei taha välja printida. 690 00:29:05,314 --> 00:29:08,220 Nii et see on tõeväärtus siin, nii et me soovivad naasta õige või vale. 691 00:29:08,220 --> 00:29:12,280 Me öeldes on see number [? RRA? ?] Nii et kui see on 692 00:29:12,280 --> 00:29:13,788 me lihtsalt tagasi see tõsi. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Kui ma ei saa kirjutada tõsi. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> Õpilane: Miks sa ei naasta null? 697 00:29:20,805 --> 00:29:22,930 Juhendaja: Nii võid tagasi null, kui sa tahad. 698 00:29:22,930 --> 00:29:26,780 Aga sel juhul, sest meie funktsioon tagastab bool, 699 00:29:26,780 --> 00:29:28,962 me peame tagastama kas õige või vale. 700 00:29:28,962 --> 00:29:30,920 Õpilane: Kui sa oled öeldes boolean väljend, 701 00:29:30,920 --> 00:29:33,450 saate seada see võrdne vale? 702 00:29:33,450 --> 00:29:39,860 Nagu kui ma tahan öelda, kui see tingimus ei ole täidetud, nagu on ülemine võrdub vale. 703 00:29:39,860 --> 00:29:42,332 Kas see mõista, kui sa lihtsalt panna vale teisel pool? 704 00:29:42,332 --> 00:29:43,040 Juhendaja: Jah. 705 00:29:43,040 --> 00:29:44,820 Nii et tegelikult, kui sa oled kunagi midagi 706 00:29:44,820 --> 00:29:49,600 nagu on ülemine või väiksem, mis tagastab tõene või väär 707 00:29:49,600 --> 00:29:53,850 ja see on tegelikult halb stiil ütleme võrdub võrdub tõsi või võrdsete 708 00:29:53,850 --> 00:29:54,840 võrdub vale. 709 00:29:54,840 --> 00:30:00,210 Te soovite kasutada, et tulemus kui ise oma kontrolli all. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Pole see, mida ma tahtsin. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 See, mida ma tahtsin. 714 00:30:09,240 --> 00:30:13,205 Seega juhul, kui sa palud midagi nagu salvestada see c. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Nii et kui meil on int main (void) ja midagi sellist. 717 00:30:25,150 --> 00:30:31,922 Ja sul on, kui on ülemine mõne sisendi ja sa oled 718 00:30:31,922 --> 00:30:33,630 küsib, kas sa saad teha midagi sellist? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Õigus? 721 00:30:35,679 --> 00:30:37,470 Õpilane: Ma üritasin seda teha [kuuldamatu]. 722 00:30:37,470 --> 00:30:38,450 Sest kui it's-- 723 00:30:38,450 --> 00:30:39,200 Juhendaja: Õigus. 724 00:30:39,200 --> 00:30:41,197 Nii et sa tahad, et see on vale, eks? 725 00:30:41,197 --> 00:30:41,780 Õpilane: Jah. 726 00:30:41,780 --> 00:30:45,960 Juhendaja: Nii et kui te taha seda täita, kui see ei ole tõsi. 727 00:30:45,960 --> 00:30:50,510 Nii lahe asi, mida teha on see. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Seega pidage meeles, hüüatus punkt eitab asju? 730 00:30:55,650 --> 00:30:58,270 Ta ütleb [kuuldamatu] tähendab mitte. 731 00:30:58,270 --> 00:31:03,590 Nii et kui me vaatame ainult see osa siin, siis oleksin 732 00:31:03,590 --> 00:31:05,740 öelda, et tulemus on vale kui sa tahad seda. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Ei ole vale on tõsi, mis tähendab see täita. 735 00:31:09,880 --> 00:31:11,037 Kas on mõtet? 736 00:31:11,037 --> 00:31:11,620 Õpilane: Jah. 737 00:31:11,620 --> 00:31:12,453 Juhendaja: vinge. 738 00:31:12,453 --> 00:31:13,800 739 00:31:13,800 --> 00:31:14,300 OK. 740 00:31:14,300 --> 00:31:16,330 Nii et me võiks lihtsalt tagasi tõsi käesolevas asjas. 741 00:31:16,330 --> 00:31:20,357 Nüüd on meil kaks teiste juhul käesolevas asjas. 742 00:31:20,357 --> 00:31:21,565 Millised on meie kahel juhul? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Lihtsalt tee seda sel moel. 745 00:31:32,900 --> 00:31:40,660 Niisiis alustame veel kui väärtuste keskel 746 00:31:40,660 --> 00:31:43,230 on väiksem kui väärtus tahame. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Nii et meie väärtus keskel on vähem kui väärtus, et me otsime. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Nii et mis seondub sa arvan, et me tahame uuendada? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Ülemist või alumist? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Ülemine? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Nii, kummal pool massiiv kas me tegeleme? 757 00:32:06,470 --> 00:32:07,500 >> Õpilane: madalam. 758 00:32:07,500 --> 00:32:09,750 >> Juhendaja: Me hakkame tuleb vaadata vasakule. 759 00:32:09,750 --> 00:32:11,120 Nii teine ​​kui vähe väärtus on väiksem. 760 00:32:11,120 --> 00:32:14,730 Nii et teie keskel väärtus siin on väiksem kui see, mida me tahame. 761 00:32:14,730 --> 00:32:17,202 Nii et me tahame võtta paremal pool meie massiivi. 762 00:32:17,202 --> 00:32:18,910 Nii et me ei kavatse uuendada meie alampiiri. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Nii me ümber jaotada meie madalam. 765 00:32:23,020 --> 00:32:25,221 Ja mis sa arvad madalam peaks olema? 766 00:32:25,221 --> 00:32:26,304 Õpilane: keskel väärtus? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 Juhendaja: Nii keskel value-- 769 00:32:28,820 --> 00:32:30,136 Õpilane: Plus 1. 770 00:32:30,136 --> 00:32:31,010 Juhendaja: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Kas keegi mulle öelda, miks meil on see pluss 1? 773 00:32:34,380 --> 00:32:35,730 >> Õpilane: [? No raha?] on võrdne sellega. 774 00:32:35,730 --> 00:32:36,120 >> Juhendaja: Õigus. 775 00:32:36,120 --> 00:32:38,661 Sest me juba teame, et meie keskel väärtus ei ole võrdne 776 00:32:38,661 --> 00:32:42,750 seda ja me tahame jätta see kõik hilisemad otsingud. 777 00:32:42,750 --> 00:32:46,360 Kui te unustate, et pluss 1, selles meeldib loop lõputult. 778 00:32:46,360 --> 00:32:49,620 Ja sa lihtsalt püütud lõputu silmuse ja siis saate segfault 779 00:32:49,620 --> 00:32:50,370 ja asjad lähevad halvasti. 780 00:32:50,370 --> 00:32:54,780 Nii et alati veenduma, et sa ei ole sealhulgas raha, et sa lihtsalt 781 00:32:54,780 --> 00:32:55,380 vaatasin. 782 00:32:55,380 --> 00:32:58,530 Nii et me hoolitseme, et koos pluss 1. 783 00:32:58,530 --> 00:33:04,840 >> Nii et nüüd on meil viimane tingimus mida ma alati ohutuse huvides 784 00:33:04,840 --> 00:33:12,664 võite vaadata siin, teine, kui väärtus keskel on suurem kui väärtus 785 00:33:12,664 --> 00:33:13,163 me tahame. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 See tähendab, et me tahame vasakul pool. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Nii et mis üks me kavatseme uuendada? 790 00:33:23,260 --> 00:33:23,760 Upper. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 Ja mis on see üks läheb võrdsed? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Lähis-miinus 1, sest Loomulikult tahame 795 00:33:33,690 --> 00:33:38,370 veenduda, et me ei ole Vaadates, et keset väärtus uuesti. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 Ja siis meil on see. 798 00:33:45,110 --> 00:33:45,610 Nii see on. 799 00:33:45,610 --> 00:33:46,820 See on kõik, binaarne otsing on. 800 00:33:46,820 --> 00:33:48,190 See ei ole nii halb, eks? 801 00:33:48,190 --> 00:33:51,590 See on nagu 10 rida kood valge ruumi. 802 00:33:51,590 --> 00:33:57,510 Nii et väga võimas, väga kasulik, siis olla kasutades seda ühe oma hilisema psets. 803 00:33:57,510 --> 00:33:59,360 Võib-olla ei ole see üks, vaid hiljem. 804 00:33:59,360 --> 00:34:00,670 Nii õppima. 805 00:34:00,670 --> 00:34:01,510 Armastan seda. 806 00:34:01,510 --> 00:34:02,980 Ta kohtleb sind hästi. 807 00:34:02,980 --> 00:34:05,370 Nii et kas keegi on mingeid küsimustele Kahendotsingupuu? 808 00:34:05,370 --> 00:34:06,196 Jah. 809 00:34:06,196 --> 00:34:09,840 >> Õpilane: Kas see, kas teie n on paaris või paaritu? 810 00:34:09,840 --> 00:34:10,750 >> Juhendaja: No. 811 00:34:10,750 --> 00:34:18,150 Kuna me enamus selle keskel nagu int, see lihtsalt kärpima ta. 812 00:34:18,150 --> 00:34:21,600 Seega jääb täisarv ja see lõpuks sorteeri kõike. 813 00:34:21,600 --> 00:34:23,909 Nii et sa ei pea muretsema, et. 814 00:34:23,909 --> 00:34:24,580 Igaühel on hea? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Awesome. 817 00:34:26,850 --> 00:34:27,919 Külm. 818 00:34:27,919 --> 00:34:30,836 Niisiis, kutid sain selle. 819 00:34:30,836 --> 00:34:33,380 820 00:34:33,380 --> 00:34:33,880 Slideshow. 821 00:34:33,880 --> 00:34:35,719 822 00:34:35,719 --> 00:34:43,270 Nii et kui me rääkisime, ma tean David mainitud keerukus runtimes. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Nii et parimal juhul on see lihtsalt üks, mida me nimetame konstantse ajaga. 825 00:34:50,340 --> 00:34:51,909 Kas keegi mulle öelda, miks see võiks olla? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Mis tüüpi stsenaarium, mis toovad kaasa? 828 00:34:55,800 --> 00:34:58,260 829 00:34:58,260 --> 00:34:58,760 Mm-hm. 830 00:34:58,760 --> 00:34:59,926 >> Õpilane: [kuuldamatu] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 Juhendaja: Nii keskel olles Esimene osa, mis me tuleme, eks? 833 00:35:03,830 --> 00:35:08,167 Nii et kas massiivi ühe või mida iganes me otsime lihtsalt 834 00:35:08,167 --> 00:35:09,750 juhtub olema maitsema DAB keskel. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Nii et meie parimal juhul. 837 00:35:13,380 --> 00:35:17,540 Sa satuvad tegelikke probleeme, tõenäoliselt mitte jõuame [kuuldamatu], et tihti. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Aga meie halvimat? 840 00:35:19,750 --> 00:35:21,270 Meie halvimal juhul on log n. 841 00:35:21,270 --> 00:35:25,360 Ja see on pistmist kogu volitused kaks asja, mida ma rääkisin. 842 00:35:25,360 --> 00:35:30,930 >> Nii et halvimal juhul tähendaks see seda, et pidime raiuma massiivi alla 843 00:35:30,930 --> 00:35:33,270 kuni see oli element ühe. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Nii et meil tuli vanaks alla poole nii mitu korda, kui me vähegi võimalik. 846 00:35:38,930 --> 00:35:41,430 See on põhjus, miks see log n kuna sa muudkui jagatakse kahega. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Nii eeldused, mida te vaja teada, kas sa oled kunagi 849 00:35:45,830 --> 00:35:48,050 kavatsete kasutada binaarne otsing. 850 00:35:48,050 --> 00:35:50,680 Sinu elemendid tuleb sorteerida. 851 00:35:50,680 --> 00:35:53,890 Nad peavad olema järjestatud sest see on ainus viis, kuidas 852 00:35:53,890 --> 00:35:57,060 ei tea, kas teil on võimalik visata poole. 853 00:35:57,060 --> 00:36:00,260 >> Kui teil oli see segamini kott numbrite ja sa räägid, 854 00:36:00,260 --> 00:36:05,380 OK, ma lähen, et kontrollida keskel arv ja number Otsin 855 00:36:05,380 --> 00:36:08,510 alla, et ma lihtsalt suvaliselt visata pool. 856 00:36:08,510 --> 00:36:11,130 Sa ei tea, kas teie numbrid, et teine ​​pool. 857 00:36:11,130 --> 00:36:12,655 Sinu loetelu tuleb sorteerida. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Samuti võib see olla läheb edasi natuke, 860 00:36:16,560 --> 00:36:18,360 aga sa pead ligi pääsema. 861 00:36:18,360 --> 00:36:21,940 Sa pead suutma lihtsalt mine selle keskel element. 862 00:36:21,940 --> 00:36:25,110 Kui teil läbida läbi midagi 863 00:36:25,110 --> 00:36:28,630 või kulub sulle ekstra sammu saada, et keset element, 864 00:36:28,630 --> 00:36:31,750 see ei ole sisse n enam, sest olete lisatud rohkem tööd ta. 865 00:36:31,750 --> 00:36:34,800 Ja see teeb natuke mõttekam kahe nädala pärast, 866 00:36:34,800 --> 00:36:37,950 aga ma lihtsalt omamoodi tahtis eessõna, teile poisid idee, mida on 867 00:36:37,950 --> 00:36:38,999 tulema. 868 00:36:38,999 --> 00:36:40,790 Kuid need on kaks oluline eeldused 869 00:36:40,790 --> 00:36:44,804 et peate binaarne nimekirja. 870 00:36:44,804 --> 00:36:45,720 Veenduge, et see on järjestatud. 871 00:36:45,720 --> 00:36:47,920 See on suur üks kutid kohe. 872 00:36:47,920 --> 00:36:52,170 Ja et me ei saa minna Ülejäänud meie kehvasti. 873 00:36:52,170 --> 00:36:56,444 Nii et neli sorts-- mull, sisestamise, valik ja ühendamine. 874 00:36:56,444 --> 00:36:57,485 Need kõik on omamoodi lahe. 875 00:36:57,485 --> 00:37:02,860 Kui poisid otsustavad võtta CS 124, saad infot igasuguseid kehvasti. 876 00:37:02,860 --> 00:37:07,575 Ja kui sa oled XKCD fänn, siis on tõesti lahe koomiline kohta 877 00:37:07,575 --> 00:37:11,530 nagu tõesti ebaefektiivne kehvasti, mida ma Soovitame teil läheb vaadata. 878 00:37:11,530 --> 00:37:16,170 Üks neist on nagu paanika sort, mis on nagu, oh ei, tagastab juhusliku massiiv. 879 00:37:16,170 --> 00:37:16,991 Shutdown süsteem. 880 00:37:16,991 --> 00:37:17,490 Jäta. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Nii geeky huumor on alati hea. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Nii ei keegi mäletab liiki samasuguse ainult üldine idee 885 00:37:25,750 --> 00:37:27,810 kuidas mull omamoodi toimib. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Mäletad? 888 00:37:32,155 --> 00:37:32,755 >> Õpilane: Jah. 889 00:37:32,755 --> 00:37:33,970 >> Juhendaja: minna seda. 890 00:37:33,970 --> 00:37:38,980 >> Õpilane: Nii et sa lähed läbi ja kui see on suurem, siis swap kaks. 891 00:37:38,980 --> 00:37:39,820 >> Juhendaja: Mm-hm. 892 00:37:39,820 --> 00:37:40,564 Täpselt. 893 00:37:40,564 --> 00:37:41,730 Nii et sa lihtsalt kordamiseks kaudu. 894 00:37:41,730 --> 00:37:43,050 Sa kontrollima kaks numbrit. 895 00:37:43,050 --> 00:37:46,510 Kui üks enne on suurem kui ühe hiljem 896 00:37:46,510 --> 00:37:50,230 sa lihtsalt vahetada neid nii, et Sel viisil on kõik suuremad numbrid 897 00:37:50,230 --> 00:37:54,990 mulksuma lõpupoole nimekirja ja kõik madalamad numbrid mull maha. 898 00:37:54,990 --> 00:37:59,355 >> Kas ta näitab teile, poisid jahe heliefekti sorteerimine video? 899 00:37:59,355 --> 00:38:00,480 See on selline lahe. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Nii nagu Robert just ütles, algoritmi et sa lihtsalt sammult läbi nimekirja 902 00:38:05,200 --> 00:38:07,930 Vahetatakse lähima väärtuse kui nad ei ole selleks. 903 00:38:07,930 --> 00:38:10,975 Ja siis muudkui korrates kuni sa ei tee vahetustehinguid. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Nii et pole paha, eks? 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Nii et meil on lihtsalt kiire näide. 908 00:38:16,319 --> 00:38:18,360 Nii et see saab sortida neid tõusvas järjekorras. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Nii et kui me minna läbi esimese aega, vaatame läbi kaheksa 911 00:38:23,470 --> 00:38:26,880 ja kuus on ilmselgelt mitte et me vahetada neid. 912 00:38:26,880 --> 00:38:27,985 >> Nii et vaadata järgmist. 913 00:38:27,985 --> 00:38:29,430 Kaheksa ja neli mitte selleks. 914 00:38:29,430 --> 00:38:30,450 Vahetada neid. 915 00:38:30,450 --> 00:38:32,530 Ja siis kaheksa ja kaks, vahetada neid. 916 00:38:32,530 --> 00:38:33,470 Seal me läheme. 917 00:38:33,470 --> 00:38:39,519 Nii et pärast esimest pass, siis teate, et teie suurim number 918 00:38:39,519 --> 00:38:41,810 läheb kogu tee ülaosas, sest see on lihtsalt 919 00:38:41,810 --> 00:38:44,210 saab olema pidevalt suurem kui kõik muu 920 00:38:44,210 --> 00:38:46,810 ja see lihtsalt läheb mull kuni kõik viis lõpuks seal. 921 00:38:46,810 --> 00:38:48,226 Kas see on mõistlik kõigile? 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Külm. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Siis me vaatame meie teine ​​pass. 926 00:38:53,920 --> 00:38:54,980 Kuus ja neli lülitit. 927 00:38:54,980 --> 00:38:55,920 Kuus ja kaks lülitit. 928 00:38:55,920 --> 00:38:58,700 Ja nüüd on meil mõned asjad korras. 929 00:38:58,700 --> 00:39:02,240 Nii et iga pass, et me teha läbi kogu meie nimekirja 930 00:39:02,240 --> 00:39:06,320 me teame, et niimoodi mitu numbrit lõpus on arutanud. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Nii et me kolmanda pass, mis on üks swap. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 Ja siis meie neljas edasi on meil null pesadesse. 935 00:39:15,910 --> 00:39:18,570 Ja nii me teame, et meie massiiv on sorteeritud. 936 00:39:18,570 --> 00:39:20,900 >> Ja see on suur asi mull sorteerida. 937 00:39:20,900 --> 00:39:23,720 Me teame, et kui me null vahetuslepinguid 938 00:39:23,720 --> 00:39:26,497 tähendab, et kõik on täiesti korras. 939 00:39:26,497 --> 00:39:27,580 See on selline, kuidas me vaadata. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Nii oleme ka läheb koodi mull sort, mis samuti ei ole nii hull. 942 00:39:36,480 --> 00:39:38,120 Ükski neist pole nii hull. 943 00:39:38,120 --> 00:39:40,210 Ma tean, et nad võivad tunduda veidi hirmutav. 944 00:39:40,210 --> 00:39:42,124 Ma tean, et kui ma võtsin klassi, isegi kui ma 945 00:39:42,124 --> 00:39:44,290 õpetas klass esimest korda eelmisel aastal, 946 00:39:44,290 --> 00:39:46,165 Ma olin nagu, kuidas ma seda teen? 947 00:39:46,165 --> 00:39:48,540 Mõttekas teoorias, kuid kuidas me tegelikult seda teha? 948 00:39:48,540 --> 00:39:51,420 Mis on põhjus, miks ma tahan ka käia läbi kood teiega siin. 949 00:39:51,420 --> 00:39:54,915 Nii et mul on pseudokoodi kutid seekord. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Nii lihtsalt pidage seda meeles, kui me parasjagu ülemineku üle. 952 00:39:58,970 --> 00:40:04,210 Nii et meil on mõned loendur jälgib meie vahetuslepingud 953 00:40:04,210 --> 00:40:08,370 sest meil on vaja veendumaks, et me kontrollime seda. 954 00:40:08,370 --> 00:40:11,830 Ja meil kinnitada, kogu massiivi kui me just tegin seda näiteks. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Kui element enne on suurem kui element pärast, kus me oleme, 957 00:40:17,325 --> 00:40:20,760 me vahetada neid ja me juurdekasvu meie counter, sest niipea, kui oleme vahetada, 958 00:40:20,760 --> 00:40:23,850 me tahame, et lasta meie counter tean seda. 959 00:40:23,850 --> 00:40:26,247 Kõik küsimused on? 960 00:40:26,247 --> 00:40:27,580 Midagi tundub naljakas siin. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 Õpilane: Kas sinu loenduri nullimiseks iga kord, kui sa lähed läbi silmuse? 963 00:40:32,350 --> 00:40:34,339 Kas sa ei jätka tagasi nulli iga kord? 964 00:40:34,339 --> 00:40:35,505 Juhendaja: Mitte tingimata. 965 00:40:35,505 --> 00:40:39,710 Mis juhtub, on meil läbida siit. 966 00:40:39,710 --> 00:40:43,830 Nii et samal ajal, mäletan seda täidab korraga ilma jätma. 967 00:40:43,830 --> 00:40:46,480 Nii see läheb, et seada counter võrdub nulliga, 968 00:40:46,480 --> 00:40:48,070 siis see läheb itereerima kaudu. 969 00:40:48,070 --> 00:40:50,590 Kuna itereerib kaudu, ajakohastab ta counter. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Kuna see värskendab counter, kui see on tehtud, kui see on jõudnud lõpuks massiiv, 972 00:40:56,900 --> 00:41:00,830 Kui meie nimekirjas ei ole sorteeritud, loendur on uuendatud. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Nõnda siis kontrollib seisund ja see ütleb OK, on ​​vastuolus suurem kui null. 975 00:41:07,150 --> 00:41:09,290 Kui on, siis seda uuesti teha. 976 00:41:09,290 --> 00:41:14,340 Sa tahad nullida nii, et kui sa läbida, counter on võrdne nulliga. 977 00:41:14,340 --> 00:41:18,240 Kui sa lähed läbi sorteeritud massiiv, miski ei muutu, 978 00:41:18,240 --> 00:41:21,355 see ei õnnestu ja te tagasi järjestatud nimekirja. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 Kas see on mõistlik? 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 Õpilane: Mõnikord võib natuke. 983 00:41:26,356 --> 00:41:27,147 Juhendaja: OK. 984 00:41:27,147 --> 00:41:28,980 Kui seal on kõik muud küsimus, mis kerkib. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Jah. 987 00:41:30,680 --> 00:41:33,760 >> Õpilane: Mida funktsiooni olema Vahetatakse elemendid? 988 00:41:33,760 --> 00:41:36,900 >> Juhendaja: Nii saame tegelikult kirjutada et kui me läheme kohe. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Külm. 991 00:41:38,300 --> 00:41:42,155 Nii et selle teadmiseks, Alison läheb tagasi lülituda seadme. 992 00:41:42,155 --> 00:41:43,080 See saab olema lõbus. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 Ja meil on kena mull omamoodi asi siin. 995 00:41:47,390 --> 00:41:50,800 Ma juba tegin jalgrattasõit läbi massiivi. 996 00:41:50,800 --> 00:41:53,030 Meil on vahetustehingud, et on võrdne nulliga. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Nii et me tahame, et vahetada külgnevate elemente kui nad rikkis. 999 00:41:58,440 --> 00:42:03,020 Nii et esimene asi, mida peame ei ei itereerima meie massiivi. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Niisiis, kuidas sa arvad, me võiksime itereerima meie massiivi? 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Meil on ja i on 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Tahame i vähem kui n miinus 1 miinus k. 1006 00:42:22,454 --> 00:42:23,870 Ja ma seletan, et teises. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Nii et see on optimeerimise siin, kus mäletan, kuidas ma ütlesin pärast iga pass 1009 00:42:32,830 --> 00:42:36,655 läbi massiivi me tean, et kõike, mis on nüüd-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Nii et pärast ühe liigu me tean, et see sorteeritakse. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 Pärast kahte möödub me teame et see kõik on sorteeritud. 1014 00:42:50,060 --> 00:42:52,750 Pärast kolme möödub me tean, et on järjestatud. 1015 00:42:52,750 --> 00:42:55,620 Niisiis, kuidas ma iterating läbi massiivi siin 1016 00:42:55,620 --> 00:43:01,090 on see teeb kindlasti minna ainult läbi, mida me teame, on sortimata. 1017 00:43:01,090 --> 00:43:01,644 OK? 1018 00:43:01,644 --> 00:43:02,810 See on lihtsalt optimeerimine. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Sa võid kirjutada naiivselt lihtsalt iterating läbi kõik, 1021 00:43:08,210 --> 00:43:09,970 see oleks lihtsalt kauem. 1022 00:43:09,970 --> 00:43:12,470 Selle neli loop see lihtsalt kena optimeerimine 1023 00:43:12,470 --> 00:43:18,460 sest me teame, et pärast iga täis iteratsiooni kaudu massiivi siin 1024 00:43:18,460 --> 00:43:24,050 nagu iga täis silmus siin, me teame, et üks nendest elementidest 1025 00:43:24,050 --> 00:43:25,760 sorteeritakse lõpus. 1026 00:43:25,760 --> 00:43:28,294 >> Nii et me ei pea muretsema neid. 1027 00:43:28,294 --> 00:43:29,710 Kas see on mõistlik kõigile? 1028 00:43:29,710 --> 00:43:30,950 See lahe väike trikk? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Nii et juhul kui me iterating kaudu, 1031 00:43:37,270 --> 00:43:50,590 me teame, et me tahame, et kontrollida, kas massiivi n ja n + 1 on korras. 1032 00:43:50,590 --> 00:43:52,640 1033 00:43:52,640 --> 00:43:53,559 OK. 1034 00:43:53,559 --> 00:43:54,600 Nii et siin on pseudokoodi. 1035 00:43:54,600 --> 00:43:57,540 Me tahame, et kontrollida, kas massiiv n ja n + 1 on korras. 1036 00:43:57,540 --> 00:43:59,520 Mis võiks meil olemas? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 See saab olema mingi tingimuslik. 1039 00:44:03,120 --> 00:44:04,220 See on siis, kui. 1040 00:44:04,220 --> 00:44:07,066 >> Õpilane: Kui massiiv n on väiksem kui massiivi n + 1. 1041 00:44:07,066 --> 00:44:07,816 Juhendaja: Mm-hm. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 Hästi, väiksem või suurem kui. 1044 00:44:10,699 --> 00:44:11,615 Õpilane: Suurem kui. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Siis me tahame, et vahetada neid. 1047 00:44:17,620 --> 00:44:18,570 Täpselt. 1048 00:44:18,570 --> 00:44:23,570 Nii et nüüd me saame selle kohta, mis on mehhanism nende vahetamisest? 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Me läksime läbi selle lühidalt tüüpi swap funktsiooni eelmisel nädalal. 1051 00:44:28,137 --> 00:44:29,595 Kas keegi mäletab, kuidas ta töötas? 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Nii et me ei saa lihtsalt neid ümber jaotada, eks? 1054 00:44:34,950 --> 00:44:36,640 Kuna üks neist eksida. 1055 00:44:36,640 --> 00:44:41,696 Kui me ütlesime, on võrdne B ja seejärel B võrdub kõigil järsku mõlemad 1056 00:44:41,696 --> 00:44:43,150 on lihtsalt võrdne B. 1057 00:44:43,150 --> 00:44:45,720 >> Niisiis, mida me peame tegema, on meil olla ajutine muutuja, mis on 1058 00:44:45,720 --> 00:44:49,055 kavatse pidada ühe meie ajal me oleme protsessis vahetada. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Mis meil on on meil mõned int temp on võrdne-- saate määrata selle 1061 00:44:56,464 --> 00:44:59,130 et kumb sa tahad, lihtsalt Veenduge, et hoida silma peal it-- 1062 00:44:59,130 --> 00:45:01,840 Käesoleval juhul see nii, et ma lähen määrata selle massiivi n + 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Nii et läheb hoidke iganes väärtus on see, et teine ​​plokk 1065 00:45:07,674 --> 00:45:08,590 et me vaatame. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> Ja siis me saame teha, on saame minna ees ja ümber jaotada massiivi n + 1, 1068 00:45:13,240 --> 00:45:14,990 sest me teame, et me on, et raha hoitakse. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 See on ka üks suur things-- Ma ei tea, kas keegi teist 1071 00:45:19,270 --> 00:45:23,780 oli probleeme, kui kui lülitate kaks rida koodi äkki asjad töötasid. 1072 00:45:23,780 --> 00:45:25,880 Tellimus on väga oluline CS. 1073 00:45:25,880 --> 00:45:29,450 Seega veenduge, et diagramm asju teha kui võimalik 1074 00:45:29,450 --> 00:45:31,230 selle kohta, mis tegelikult toimub. 1075 00:45:31,230 --> 00:45:34,256 Nüüd me ei kavatse ümber jaotada massiivi n + 1, 1076 00:45:34,256 --> 00:45:36,005 sest me teame, et me on, et raha hoitakse. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> Ja meil on võimalik määrata, et massiivi n või antud juhul massiivi i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Liiga palju muutujaid. 1081 00:45:51,465 --> 00:45:54,230 1082 00:45:54,230 --> 00:45:55,470 OK. 1083 00:45:55,470 --> 00:46:01,500 Nüüd oleme ümber jaotada massiivi i pluss 1 on võrdne, mis on massiivi i. 1084 00:46:01,500 --> 00:46:08,240 Ja nüüd me ei saa minna tagasi ja määrata massiivi i mida? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Keegi? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> Õpilane: 10. 1089 00:46:14,010 --> 00:46:14,680 >> Juhendaja: 10. 1090 00:46:14,680 --> 00:46:15,180 Täpselt. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 Ja viimane asi. 1093 00:46:18,640 --> 00:46:21,840 Kui oleme vahetasin ta nüüd, Mida me peame tegema? 1094 00:46:21,840 --> 00:46:23,740 Mis on üks asi, mis läheb meile 1095 00:46:23,740 --> 00:46:27,542 kui me kunagi lõpetada selle programmi? 1096 00:46:27,542 --> 00:46:29,250 Mida ütleb meile, et me on järjestatud nimekirja? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Kui me ei täida mis tahes vahetustehingud, eks? 1099 00:46:33,750 --> 00:46:36,900 Kui vahetustehingud on võrdne null lõpuks selle. 1100 00:46:36,900 --> 00:46:42,975 Nii et kui te sooritate swap, kui me just tegin siin, me tahame uuendada vahetustehinguid. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 Ja ma tean, oli küsimus varem, sa saad 1103 00:46:47,210 --> 00:46:49,689 kasutada null või ühe asemel on tõene või väär. 1104 00:46:49,689 --> 00:46:50,980 Ja see, mida see teeb siin. 1105 00:46:50,980 --> 00:46:52,750 Nii et see ütleb, et kui ei vahetustehinguid. 1106 00:46:52,750 --> 00:47:01,310 Nii et kui vahetustehingud on null, mis on-- ma alati saan tõed ja minu falses sassi. 1107 00:47:01,310 --> 00:47:03,960 Me tahame, meil hinnata tõsi ja see ei ole. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Nii et kui see on null, siis on see vale. 1110 00:47:09,630 --> 00:47:12,560 Kui te vabasta see [? paugu?] muutub see tõsi. 1111 00:47:12,560 --> 00:47:13,975 Nii siis see rida hukatakse. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Tõde ja vale ja nulli ja need hulluks. 1114 00:47:17,370 --> 00:47:20,690 Just siis, kui sa aeglaselt kõndima läbi see mõtet. 1115 00:47:20,690 --> 00:47:23,320 Aga see, mida see väike natuke koodi siin teeb. 1116 00:47:23,320 --> 00:47:26,490 Nii et see kontrollib, me oleme teinud iga vahetustehinguid. 1117 00:47:26,490 --> 00:47:30,054 Nii et kui see on midagi peale null, siis läheb valeks 1118 00:47:30,054 --> 00:47:31,970 ja kogu asi on läheb sooritama uuesti. 1119 00:47:31,970 --> 00:47:33,150 1120 00:47:33,150 --> 00:47:33,650 Cool? 1121 00:47:33,650 --> 00:47:34,660 1122 00:47:34,660 --> 00:47:36,000 >> Õpilane: Mida paus teha? 1123 00:47:36,000 --> 00:47:38,990 >> Juhendaja: Break lihtsalt murrab sind välja silmus. 1124 00:47:38,990 --> 00:47:41,570 Nii et kui see oleks lihtsalt meeldib lõpetada programmi 1125 00:47:41,570 --> 00:47:43,828 ja sa oleks lihtsalt teie järjestatud nimekirja. 1126 00:47:43,828 --> 00:47:44,536 Õpilane: Amazing. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 Juhendaja: Vabandust? 1129 00:47:49,010 --> 00:47:52,110 Õpilane: Kuna varem oleme kasutatud kirjutatud 1 üle kirjutatud null 1130 00:47:52,110 --> 00:47:54,170 esitada, et kui mis toimib või mitte. 1131 00:47:54,170 --> 00:47:54,878 >> Juhendaja: Jah. 1132 00:47:54,878 --> 00:47:56,410 Nii võite pöörduda null või 1. 1133 00:47:56,410 --> 00:47:58,950 Sel juhul, kuna me ei ole tegelikult mittemidagitegemise funktsiooni 1134 00:47:58,950 --> 00:48:00,150 me lihtsalt tahame seda murda. 1135 00:48:00,150 --> 00:48:02,680 Me tõesti ei hooli sellest. 1136 00:48:02,680 --> 00:48:06,960 Pidur on ka hea, kui see on kasutatud murdmas 1137 00:48:06,960 --> 00:48:10,710 nelja silmuseid või tingimused, mis sa ei taha, et hoida täidesaatvas. 1138 00:48:10,710 --> 00:48:12,110 See lihtsalt viib teid välja. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 See nüanss asja. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Ma tunnen, et seal on palju käsitsi vehkimine, 1143 00:48:18,445 --> 00:48:19,740 nagu sa õppida seda kiiresti. 1144 00:48:19,740 --> 00:48:20,955 >> Aga sa õppida seda kiiresti. 1145 00:48:20,955 --> 00:48:21,500 Ma luban. 1146 00:48:21,500 --> 00:48:22,670 1147 00:48:22,670 --> 00:48:23,170 OK. 1148 00:48:23,170 --> 00:48:24,840 Nii ei igaüks saada mull sorteerida? 1149 00:48:24,840 --> 00:48:25,550 Mitte liiga halb. 1150 00:48:25,550 --> 00:48:31,910 Käi läbi, swap asju kasutades temp muutuja, ja me kõik loodud on? 1151 00:48:31,910 --> 00:48:32,960 Külm. 1152 00:48:32,960 --> 00:48:34,080 Awesome. 1153 00:48:34,080 --> 00:48:34,807 OK. 1154 00:48:34,807 --> 00:48:35,765 Tagasi PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Kõik küsimused üldiselt nendest nii palju? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Külm. 1159 00:48:41,700 --> 00:48:43,110 1160 00:48:43,110 --> 00:48:43,695 Mm-hm. 1161 00:48:43,695 --> 00:48:45,279 >> Õpilane: [kuuldamatu] int main tavaliselt. 1162 00:48:45,279 --> 00:48:46,695 Kas teil on, et see on? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> Juhendaja: Nii et me lihtsalt otsin just tegelik sortimise algoritm. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Kui oleksite ta jooksul nagu suurema programmi, 1167 00:48:56,350 --> 00:48:57,891 siis oleks int main kusagil. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Sõltuvalt sellest, kus sa kasutama seda algoritmi, 1170 00:49:02,880 --> 00:49:05,860 määrab see, mis on tagastab ta. 1171 00:49:05,860 --> 00:49:09,960 Aga meie puhul me rangelt vaadates kuidas see tegelikult 1172 00:49:09,960 --> 00:49:11,300 itereerima läbi massiivi. 1173 00:49:11,300 --> 00:49:12,570 Nii et me ei muretse selle pärast. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Nii me rääkisime parimal juhul ja halvima stsenaariumi eest binaarne otsing. 1176 00:49:19,830 --> 00:49:22,470 Nii et see on ka oluline, mida teha et iga meie kehvasti. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Mis sa arvad, on kõige halvem juhul runtime mull sorteerida? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Te mäletad? 1181 00:49:30,700 --> 00:49:31,784 >> Õpilane: N miinus 1. 1182 00:49:31,784 --> 00:49:32,700 Juhendaja: N miinus 1. 1183 00:49:32,700 --> 00:49:35,070 Nii et see tähendab on n miinus 1 võrdlusi. 1184 00:49:35,070 --> 00:49:40,060 Nii et üks asi, mida mõista on et esimese iteratsiooni 1185 00:49:40,060 --> 00:49:43,360 meil läbida, võrdleme Nende two-- nii see on 1. 1186 00:49:43,360 --> 00:49:46,685 Need kaks, kolm, neli. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Nii et pärast ühe iteratsiooni me juba neli võrdlusi. 1189 00:49:55,050 --> 00:49:58,230 Kui ma räägin runtime ja n. 1190 00:49:58,230 --> 00:50:04,680 N tähistab võrdluste arv funktsioonina, mitu elementi 1191 00:50:04,680 --> 00:50:05,570 meil on. 1192 00:50:05,570 --> 00:50:06,430 OK? 1193 00:50:06,430 --> 00:50:08,860 >> Nii et me läheme läbi on meil neli. 1194 00:50:08,860 --> 00:50:11,780 Järgmine kord, kui sa tead, me ei ole on hoolitseda selle. 1195 00:50:11,780 --> 00:50:15,140 Me võrrelda neid kahte, Nende kahe, need kaks, 1196 00:50:15,140 --> 00:50:20,050 ja kui me ei ole, et optimeerida nelja silmuse, mis ma kirjutasin, 1197 00:50:20,050 --> 00:50:22,750 sa oleks võrrelda siin niikuinii. 1198 00:50:22,750 --> 00:50:26,170 Nii et teil oleks jookseb läbi massiivi 1199 00:50:26,170 --> 00:50:34,380 ja teha n võrdlusi n korda, sest iga kord, kui me 1200 00:50:34,380 --> 00:50:36,670 jookseb läbi see meil justkui üks asi. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> Ja iga kord, kui me joosta massiiv, teeme n võrdlusi. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Nii et meie runtime on see, tegelikult n ruudus, mis 1205 00:50:46,330 --> 00:50:48,400 on palju hullem meie logi end sellepärast, et 1206 00:50:48,400 --> 00:50:51,965 tähendab, et kui meil oli neli miljardit elemendid, see on 1207 00:50:51,965 --> 00:50:55,260 läheb meid 4000000000 ruuduline asemel 32. 1208 00:50:55,260 --> 00:51:01,240 Nii ei ole parim runtime, kuid mõned asjad, 1209 00:51:01,240 --> 00:51:04,610 sa tead, kui sa oled sees teatud hulga elemendid 1210 00:51:04,610 --> 00:51:06,540 mull omamoodi võib trahvi kasutada. 1211 00:51:06,540 --> 00:51:07,530 >> OK. 1212 00:51:07,530 --> 00:51:12,290 Nüüd sellest, mis on parimal juhul runtime? 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 Õpilane: Zero? 1215 00:51:14,940 --> 00:51:16,420 Või 1? 1216 00:51:16,420 --> 00:51:18,140 >> Juhendaja: Nii et 1 oleks üks võrdlus. 1217 00:51:18,140 --> 00:51:19,114 Õigus. 1218 00:51:19,114 --> 00:51:20,002 >> Õpilane: N miinus 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> Juhendaja: Nii et, jah. 1221 00:51:22,320 --> 00:51:22,990 Nii n miinus 1. 1222 00:51:22,990 --> 00:51:26,510 Kui teil on mõiste, nagu n miinus 1, kaldume me lihtsalt tilk see välja 1223 00:51:26,510 --> 00:51:31,680 ja me lihtsalt öelda, n, sest sa oled võrrelda iga these-- iga paari. 1224 00:51:31,680 --> 00:51:36,470 Seega oleks n miinus 1, mida me me tahaks lihtsalt öelda, on umbes n. 1225 00:51:36,470 --> 00:51:39,280 Kui olete tegelevad käitustõrge, kõik on ligilähedane. 1226 00:51:39,280 --> 00:51:43,860 Niikaua kui eksponent on õige, sa oled päris hea. 1227 00:51:43,860 --> 00:51:45,700 >> See, kuidas me sellega tegeleda. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 Nii et parimal juhul on n, mis tähendab, et nimekiri on juba sorteeritud, 1230 00:51:51,780 --> 00:51:54,320 ja kõik me teeme, on joosta ja veenduge, et see on järjestatud. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Külm. 1233 00:51:56,855 --> 00:51:57,355 Hea küll. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Nii et nagu näete siin, me lihtsalt mõned graafikud. 1236 00:52:01,920 --> 00:52:02,660 Nii n ruudus. 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 Palju hullem kui n nagu me näeme, ja palju, palju hullem kui log 2 n. 1240 00:52:09,730 --> 00:52:12,060 Ja siis ka sattuda log kajakad. 1241 00:52:12,060 --> 00:52:18,020 Ja te võtate 124, sa sattuda nagu log täht, mis on nagu hull. 1242 00:52:18,020 --> 00:52:20,172 Seega, kui olete huvitatud, lookup log star. 1243 00:52:20,172 --> 00:52:20,880 See on selline lõbus. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Nii et meil on see suur diagrammi. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Lihtsalt heads-up, see imeline skeem on 1248 00:52:28,720 --> 00:52:31,350 Teie keskpikas perspektiivis, sest me kaua paluda teil need thins. 1249 00:52:31,350 --> 00:52:36,090 Nii lihtsalt heads-up, on see sinu vahekokkuvõtte oma kena petma lehte 1250 00:52:36,090 --> 00:52:36,616 seal. 1251 00:52:36,616 --> 00:52:37,990 Nii et me lihtsalt vaatas mull sorteerida. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 Halvim, n ruudus, parimal juhul n. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 Ja me ei kavatse vaadata teisi. 1256 00:52:44,950 --> 00:52:47,940 >> Ja nagu näete, on ainult üks, mis tõesti hästi 1257 00:52:47,940 --> 00:52:50,910 on Mestimissortimine, mida me võtame arvesse, miks. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Nii et me ei kavatse minna kõrval üks siin-- valik omamoodi. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Kas keegi mäletab, kuidas Valiksortimine töötanud? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Mine seda. 1264 00:53:05,700 --> 00:53:08,210 >> Õpilane: Põhimõtteliselt läbima järjekorras ja luua uue nimekirja. 1265 00:53:08,210 --> 00:53:11,001 Ja nagu sa oled pannes elemendid sisse, panna neid õiges kohas 1266 00:53:11,001 --> 00:53:11,750 uue nimekirja. 1267 00:53:11,750 --> 00:53:14,040 >> Juhendaja: Nii et helid rohkem nagu sisestamise omamoodi. 1268 00:53:14,040 --> 00:53:15,040 Aga oled sa tõesti lähedal. 1269 00:53:15,040 --> 00:53:15,915 Nad on väga sarnased. 1270 00:53:15,915 --> 00:53:17,440 Isegi mina saan neid sassi mõnikord. 1271 00:53:17,440 --> 00:53:18,981 Enne käesoleva paragrahvi Ma olin nagu, oota. 1272 00:53:18,981 --> 00:53:20,130 1273 00:53:20,130 --> 00:53:20,630 OK. 1274 00:53:20,630 --> 00:53:24,141 Nii et mida sa tahad teha on valik sorteerida, 1275 00:53:24,141 --> 00:53:25,890 kuidas sa ei mõtle seda ja teed 1276 00:53:25,890 --> 00:53:30,140 Ma veenduge, ma püüan mitte saada neid segamini, on see läbi läheb 1277 00:53:30,140 --> 00:53:33,280 ja ta valib Kõige vähem ning see 1278 00:53:33,280 --> 00:53:36,070 paneb et alguses oma nimekirja. 1279 00:53:36,070 --> 00:53:37,730 Ta vahetab seda, et esimene koht. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Nad tegelikult on näiteks minu jaoks. 1282 00:53:45,370 --> 00:53:46,540 Awesome. 1283 00:53:46,540 --> 00:53:50,130 Nii lihtsalt võimalus mõelda it-- valik sorteerida, valida väikseim väärtus. 1284 00:53:50,130 --> 00:53:51,940 Ja me ei kavatse joosta näiteks 1285 00:53:51,940 --> 00:53:55,320 et ma arvan, et aitab, sest Ma arvan, visuaalid alati aidata. 1286 00:53:55,320 --> 00:53:58,510 Nii et hakkame välja midagi mis on täiesti sortimata. 1287 00:53:58,510 --> 00:54:00,730 Punane on sorteerimata, roheline sorteerida. 1288 00:54:00,730 --> 00:54:02,190 See kõik on mõtet sekundis. 1289 00:54:02,190 --> 00:54:08,950 >> Nii et me läheme läbi ja me kinnitada, algusest lõpuni. 1290 00:54:08,950 --> 00:54:12,320 Ja me ütleme, OK, 2 meie väikseim number. 1291 00:54:12,320 --> 00:54:15,680 Nii et me läheme 2 ja me lähme liikuda selle ees meie massiivi 1292 00:54:15,680 --> 00:54:17,734 sest see on Kõige vähem on meil. 1293 00:54:17,734 --> 00:54:19,150 Nii see on, mida see siin teeb. 1294 00:54:19,150 --> 00:54:20,820 See lihtsalt läheb vahetada need kaks. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Nii et nüüd oleme järjestatud osa ja sorteerimata osa. 1297 00:54:25,450 --> 00:54:27,810 Ja mis on hea meeles pidada, umbes Valiksortimine 1298 00:54:27,810 --> 00:54:30,690 on meil ainult valides alates sorteerimata osa. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Sorteeritud osa sa lihtsalt rahule jätma. 1301 00:54:34,527 --> 00:54:35,660 Mm-hm? 1302 00:54:35,660 --> 00:54:38,452 >> Õpilane: kuidas see teada, mis on väikseim ilma võrrelda seda 1303 00:54:38,452 --> 00:54:39,868 iga teine ​​väärtus massiivi. 1304 00:54:39,868 --> 00:54:41,250 Juhendaja: See ei võrdle. 1305 00:54:41,250 --> 00:54:42,041 Meile meeldib vahelejätmine. 1306 00:54:42,041 --> 00:54:43,850 See on lihtsalt üldine üldine. 1307 00:54:43,850 --> 00:54:44,831 Jah. 1308 00:54:44,831 --> 00:54:47,205 Kui me kirjutada koodi ma olen kindel, et sa olla rahul. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Aga teil salvestada see esimene element väikseim. 1311 00:54:53,030 --> 00:54:56,110 Sa võrrelda ja sa öelda, OK, see on väiksem? 1312 00:54:56,110 --> 00:54:56,660 Jah. 1313 00:54:56,660 --> 00:54:57,460 Hoia seda. 1314 00:54:57,460 --> 00:54:58,640 Siin on see väiksem? 1315 00:54:58,640 --> 00:54:59,660 Ei? 1316 00:54:59,660 --> 00:55:02,510 >> See on sinu väikseim, ümber jaotada see oma väärtuse. 1317 00:55:02,510 --> 00:55:06,340 Ja sa pead olema palju õnnelikum kui me minna läbi koodi. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Nii et me läheme läbi, me vahetada, seega siis me vaatame seda sorteerimata osa. 1320 00:55:13,970 --> 00:55:15,810 Nii et me ei kavatse valida kolm. 1321 00:55:15,810 --> 00:55:18,890 Me läheme pani selle juures lõpus meie sorteeritud osa. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 Ja me lihtsalt läheb hoida teed et seda tehes, ja seda tehes. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Nii et see on meie liiki pseudokoodi siin. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Me kodeerida see siin teine. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Aga midagi käima läbi kõrgel tasemel. 1330 00:55:37,270 --> 00:55:40,275 Sa lähed minna i võrdub 0 kuni n miinus 2. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 See on teine ​​optimeerimine. 1333 00:55:43,530 --> 00:55:45,020 Ärge muretsege liiga palju seda. 1334 00:55:45,020 --> 00:55:46,620 Nii nagu te ütlesite. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Kuna Jacob ütles, kuidas me jälgida, mida meie miinimum on? 1337 00:55:54,406 --> 00:55:55,030 Kuidas me teame? 1338 00:55:55,030 --> 00:55:57,060 Meil võrrelda kõik meie nimekirjas. 1339 00:55:57,060 --> 00:55:59,600 >> Nii minimaalne võrdub i. 1340 00:55:59,600 --> 00:56:03,870 See on lihtsalt öeldes antud juhul Indeksi meie miinimumi. 1341 00:56:03,870 --> 00:56:07,660 Siis see läheb itereerima kaudu ja see läheb j võrdub i pluss 1. 1342 00:56:07,660 --> 00:56:11,420 Nii et me teame juba, et see on meie esimene element. 1343 00:56:11,420 --> 00:56:13,240 Meil ei ole vaja võrrelda seda ise. 1344 00:56:13,240 --> 00:56:16,970 Nii et hakkame võrreldes seda järgmise üks, mis on põhjus, miks see i pluss 1 kuni n 1345 00:56:16,970 --> 00:56:20,110 miinus 1, mis on lõpuks massiiv seal. 1346 00:56:20,110 --> 00:56:25,090 Ja me ütlesime, kui reaga j on väiksem kui massiivi min, 1347 00:56:25,090 --> 00:56:29,200 siis me ümber jaotada, kui meie miinimum indeksid on. 1348 00:56:29,200 --> 00:56:37,470 >> Ja kui min ei ole võrdne i, kuna aastal, kui olime tagasi siia. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Nii nagu siis, kui me esimest korda tegin seda. 1351 00:56:41,790 --> 00:56:49,310 Sel juhul oleks alustada null, siis oleks lõpuks on kaks. 1352 00:56:49,310 --> 00:56:53,010 Nii et min ei oleks võrdne i lõpuni. 1353 00:56:53,010 --> 00:56:55,720 See võimaldab meil teada, et meil on vaja vahetada neid. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Ma tunnen, et konkreetne näide aitab palju rohkem. 1356 00:57:00,470 --> 00:57:04,970 Nii et ma kodeerida selle üles teiega kohe, ja ma arvan, et see saab olema parem. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Sorts kipuvad tööd nii, et see on tihti parem lihtsalt neid näha. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Nii et see, mida me tahame teha, on kõigepealt on ju väikseim 1361 00:57:17,280 --> 00:57:19,890 element oma positsiooni massiiv. 1362 00:57:19,890 --> 00:57:21,280 Täpselt, mida Jacob rääkis. 1363 00:57:21,280 --> 00:57:23,090 Sa pead hoida, et kuidagi. 1364 00:57:23,090 --> 00:57:25,900 Nii et me ei kavatse hakata siin iterating üle massiiv. 1365 00:57:25,900 --> 00:57:28,970 Me läheme öelda, et see meie Esimene lihtsalt alustada. 1366 00:57:28,970 --> 00:57:38,308 Nii et me ei kavatse on int Väikseim on võrdne reaga i. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Nii et üks asi, mida tähele, iga aeg see ahel täidab, 1369 00:57:45,050 --> 00:57:48,550 oleme hakanud üks samm edasi mööda. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Kui hakkame me vaatame seda. 1372 00:57:57,440 --> 00:58:00,840 Järgmine kord, kui me kinnitada, läbi, me alates selle ühe 1373 00:58:00,840 --> 00:58:02,680 ning määrates selle meie väikseim väärtus. 1374 00:58:02,680 --> 00:58:10,450 Nii et see on väga sarnane mull omamoodi kus me teame, et pärast ühe liigu, 1375 00:58:10,450 --> 00:58:11,700 see viimane element on järjestatud. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Kui valik sorteerida, see on just vastupidine. 1378 00:58:15,120 --> 00:58:18,950 >> Igal liigu, me teame, et Esimene neist on järjestatud. 1379 00:58:18,950 --> 00:58:21,360 Pärast teist pass, teine ​​sorteerida. 1380 00:58:21,360 --> 00:58:26,470 Ja nagu sa nägid koos slaidi näiteid, Meie järjestatud osa muudkui kasvab. 1381 00:58:26,470 --> 00:58:34,020 Seega, luues meie väikseim et massiivid i, kõik see läheb 1382 00:58:34,020 --> 00:58:37,340 on constricting mida me vaatame nii 1383 00:58:37,340 --> 00:58:40,164 arvu minimeerimiseks võrdluste teeme. 1384 00:58:40,164 --> 00:58:41,770 Kas on mõtet kõigile? 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 Kas teil on vaja mulle joosta, et jälle aeglasemalt või teiste sõnadega? 1387 00:58:46,380 --> 00:58:47,180 Mul on hea meel. 1388 00:58:47,180 --> 00:58:48,095 1389 00:58:48,095 --> 00:58:48,595 OK. 1390 00:58:48,595 --> 00:58:50,060 1391 00:58:50,060 --> 00:58:55,540 >> Nii et me ladustamiseks väärtus sel hetkel, 1392 00:58:55,540 --> 00:58:57,840 kuid me tahame ka salvestada indeks. 1393 00:58:57,840 --> 00:59:01,010 Nii et me ei kavatse hoidke asend väikseima 1394 00:59:01,010 --> 00:59:02,770 üks, mis on lihtsalt saab olema i. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Nüüd Jacob on täidetud. 1397 00:59:05,440 --> 00:59:06,870 Meil on asjad salvestatakse. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 Ja nüüd peame vaatama läbi sorteerimata osa massiivi. 1400 00:59:11,870 --> 00:59:18,170 Nii et kui see Oleks meie sorteerimata. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 See on i. 1403 00:59:22,462 --> 00:59:25,430 1404 00:59:25,430 --> 00:59:26,210 OK. 1405 00:59:26,210 --> 00:59:30,040 >> Niisiis, mida me teeme läheb silmus. 1406 00:59:30,040 --> 00:59:32,066 Kui teil on vaja itereerima läbi massiiv, 1407 00:59:32,066 --> 00:59:33,440 meelt võiks minna silmus. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Nii et mõned int k equals-- mida me arvame 1410 00:59:38,090 --> 00:59:39,700 k läheb võrdne alustada? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 See on see, mida me seame meie väikseim väärtus ning me soovime seda võrrelda. 1413 00:59:44,766 --> 00:59:47,090 Mida me tahame võrrelda seda? 1414 00:59:47,090 --> 00:59:48,730 See saab olema selle kõrval üks, eks? 1415 00:59:48,730 --> 00:59:53,200 Nii et me tahame k lähtestada i + 1 alustamiseks. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> Ja me tahame k antud juhul juba suurus salvestatud siin, 1418 01:00:02,800 --> 01:00:03,930 nii et me saame lihtsalt kasutada suurusest. 1419 01:00:03,930 --> 01:00:06,240 Suurus on suurus massiiv. 1420 01:00:06,240 --> 01:00:09,620 Ja me tahame uuendada k ühe võrra. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Külm. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Nii et nüüd me peame leidma väikseim element siin. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Nii et kui me itereerima kaudu me tahan öelda, kui reaga k 1427 01:00:31,380 --> 01:00:37,080 on väiksem kui meie väikseim value-- see on koht, kus me tegelikult 1428 01:00:37,080 --> 01:00:42,950 jälgida, mis on väikseim siin-- 1429 01:00:42,950 --> 01:00:47,740 siis tahame ümber jaotada millised on meie väikseim väärtus. 1430 01:00:47,740 --> 01:00:50,645 >> See tähendab, et oh, me oleme iterating siit läbi. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Ükskõik väärtus on siin ei ole meie kõige väiksem asi. 1433 01:00:53,740 --> 01:00:54,448 Me ei taha seda. 1434 01:00:54,448 --> 01:00:56,100 Tahame ümber jaotada see. 1435 01:00:56,100 --> 01:01:02,050 Nii et kui me ümberjagamise see, mida teha teie arvates võiks selles kood here? 1436 01:01:02,050 --> 01:01:04,160 Tahame ümber jaotada Väikseim ja positsiooni. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Mis on väikseim nüüd? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 Õpilane: Array k. 1441 01:01:09,130 --> 01:01:09,963 Juhendaja: Array k. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 Ja milline on seisukoht nüüd? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Mis on indeksid meie väikseim väärtus? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 See on lihtsalt k. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Nii massiivi k, k, nad vastakuti. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Nii et me tahtsime ümber jaotada nii. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 Ja siis, kui oleme leidnud meie väikseim, nii et lõpuks see silmus 1454 01:01:39,950 --> 01:01:45,100 siin me oleme leidnud selle, mida meie väikseim väärtus on, nii et me lihtsalt vahetada. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Sel juhul, nagu ütlevad meie Väikseim väärtus on siin. 1457 01:01:50,816 --> 01:01:51,940 See on meie väikseim väärtus. 1458 01:01:51,940 --> 01:01:57,690 >> Me lihtsalt tahame, et vahetada see siin, mis on mida see swap funktsiooni allosas 1459 01:01:57,690 --> 01:02:01,270 tegi, mida me lihtsalt kirjutas üles koos paar minutit tagasi. 1460 01:02:01,270 --> 01:02:02,775 Nii et see peaks välja nägema tuttav. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 Ja siis lihtsalt kordamiseks läbi, kuni see jõuab kõik viis 1463 01:02:08,030 --> 01:02:13,100 lõpuni, mis tähendab, et sa null elemente, mis on sortimata 1464 01:02:13,100 --> 01:02:14,800 ja kõik muu on sorteeritud. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Mõtet? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Natuke konkreetsemalt? 1469 01:02:19,280 --> 01:02:19,990 Kood aidata? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> Õpilane: Sest suurus, kunagi tegelikult määrata või muuta, 1472 01:02:26,410 --> 01:02:27,340 kuidas see teada? 1473 01:02:27,340 --> 01:02:32,380 >> Juhendaja: Nii et üks asi teate siin on int suurus. 1474 01:02:32,380 --> 01:02:35,680 Nii me ütleme selles sort-- sorteeri on funktsioon selles case-- see 1475 01:02:35,680 --> 01:02:40,770 valik omamoodi, see on möödas sisse funktsiooni. 1476 01:02:40,770 --> 01:02:43,460 Nii et kui ta ei ole läbinud aastal, siis oleks midagi 1477 01:02:43,460 --> 01:02:47,840 jms pikkus array või siis oleks itereerima kaudu 1478 01:02:47,840 --> 01:02:49,390 leida pikkusega. 1479 01:02:49,390 --> 01:02:52,680 Aga kuna see on möödas , saame lihtsalt kasutada. 1480 01:02:52,680 --> 01:02:55,720 Sa lihtsalt eeldatakse, et kasutaja saatis sulle kehtiv suurus, mis 1481 01:02:55,720 --> 01:02:57,698 tegelikult tähendab suurusest massiivist. 1482 01:02:57,698 --> 01:02:59,461 1483 01:02:59,461 --> 01:02:59,960 Cool? 1484 01:02:59,960 --> 01:03:01,610 1485 01:03:01,610 --> 01:03:05,870 >> Kui poisid on mingeid probleeme nende või tahad rohkem harjutamist kodeerimine kehvasti 1486 01:03:05,870 --> 01:03:08,050 ise, siis tuleb minna study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 See on vahend. 1489 01:03:12,670 --> 01:03:15,040 Nad on kontrollija, et tegelikult võite kirjutada. 1490 01:03:15,040 --> 01:03:16,180 Nad teevad pseudokoodi. 1491 01:03:16,180 --> 01:03:19,310 Neil on rohkem videoid ja slaidid sealhulgas need, ma kasutan siin. 1492 01:03:19,310 --> 01:03:23,150 Nii et kui sa ikka tunned vähe udune, proovige selle välja. 1493 01:03:23,150 --> 01:03:25,670 Nagu alati, tule räägi minuga ka. 1494 01:03:25,670 --> 01:03:26,320 Küsimus? 1495 01:03:26,320 --> 01:03:28,611 >> Õpilane: Kas sa väidad, suurus on eelnevalt defineeritud? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 Juhendaja: Jah. 1498 01:03:29,900 --> 01:03:35,570 Suurus eelnevalt defineeritud üles siin funktsiooni deklaratsioon. 1499 01:03:35,570 --> 01:03:39,060 Nii et sa eeldada, et see on olnud möödunud aastal kasutaja ja lihtsuse mõttes, 1500 01:03:39,060 --> 01:03:41,896 me lähme eeldada, et kasutaja andis meile õige suurusega. 1501 01:03:41,896 --> 01:03:43,240 Külm. 1502 01:03:43,240 --> 01:03:44,390 Nii et valik omamoodi. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Poisid, ma tean, et me õppida palju täna. 1505 01:03:47,640 --> 01:03:49,710 See on tihe andmete osas. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Nii et me ei kavatse minna sisestamise omamoodi. 1508 01:03:57,340 --> 01:04:01,550 1509 01:04:01,550 --> 01:04:02,510 >> OK. 1510 01:04:02,510 --> 01:04:06,100 Nii et enne, et me peame tegema meie runtime analüüs siin. 1511 01:04:06,100 --> 01:04:10,190 Nii et parimal juhul anda, sest ma näitasin teile 1512 01:04:10,190 --> 01:04:11,960 laua Ma juba liiki andis selle ära. 1513 01:04:11,960 --> 01:04:15,430 Kuid parimal juhul runtime, mida me arvame? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Kõik sorteerida. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 N ruudus. 1518 01:04:22,070 --> 01:04:24,780 Igaüks on selgitus miks sa arvad? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> Õpilane: Sa oled võrrelda through-- 1521 01:04:30,519 --> 01:04:31,268 Juhendaja: Õigus. 1522 01:04:31,268 --> 01:04:32,540 Sa võrdled kaudu. 1523 01:04:32,540 --> 01:04:35,630 Igal iteratsiooni, kuigi me decrementing see üks, 1524 01:04:35,630 --> 01:04:38,950 sa oled ikka läbi otsida kõike leida väikseim. 1525 01:04:38,950 --> 01:04:42,390 Nii et isegi kui teie väikseim väärtus on siin alguses, 1526 01:04:42,390 --> 01:04:44,710 sa oled ikka võrrelda seda vastu kõik muu 1527 01:04:44,710 --> 01:04:46,550 veendumaks, et see on kõige väiksem asi. 1528 01:04:46,550 --> 01:04:49,820 Nii saate lõpuks läbiv umbes n ruudus korda. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Hea küll. 1531 01:04:51,590 --> 01:04:52,785 Ja mis kõige halvemal juhul? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Ka n ruudus sest sa lähed et teeme sama korra alusel. 1534 01:04:57,980 --> 01:05:01,670 Nii antud juhul valiku sort on midagi 1535 01:05:01,670 --> 01:05:04,010 et loeme oodata tööaega. 1536 01:05:04,010 --> 01:05:07,400 Nii et teised, me lihtsalt tean ülemiste ja alumiste piiride. 1537 01:05:07,400 --> 01:05:11,180 Sõltuvalt sellest, kuidas hull meie nimekiri on või kuidas sorteerimata see on, 1538 01:05:11,180 --> 01:05:15,350 nad erinevad n või n ruudus. 1539 01:05:15,350 --> 01:05:16,550 Me ei tea. 1540 01:05:16,550 --> 01:05:22,820 >> Aga kuna valik sort on sama Halvim ja parim juhul, mis ütleb meile, et 1541 01:05:22,820 --> 01:05:25,880 ükskõik mis tüüpi sisend me on, kas see on täiesti 1542 01:05:25,880 --> 01:05:29,130 sorteeritud või täielikult tagurpidi sorteeritud, see on 1543 01:05:29,130 --> 01:05:30,740 aega võtab sama palju aega. 1544 01:05:30,740 --> 01:05:33,760 Nii et juhul kui mäletan meie lauda 1545 01:05:33,760 --> 01:05:38,610 see tegelikult oli raha, et Nende kahe kehvasti pole, 1546 01:05:38,610 --> 01:05:40,390 mis on eeldatavasti tööaega. 1547 01:05:40,390 --> 01:05:43,350 Nii et me teame, et kui võtame valiku sorteerida, 1548 01:05:43,350 --> 01:05:45,380 see on garanteeritud, et käivitada n ruudus korda. 1549 01:05:45,380 --> 01:05:46,630 Ei ole varieeruvuse seal. 1550 01:05:46,630 --> 01:05:47,630 See on lihtsalt oodata. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 Ja jällegi, kui sa tahad õppida rohkem võtta CS 124 aasta kevadel. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Hea küll. 1555 01:05:56,712 --> 01:05:57,545 Me oleme näinud seda. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Külm. 1558 01:05:59,030 --> 01:06:00,930 Nii sisestamise omamoodi. 1559 01:06:00,930 --> 01:06:03,330 Ja ma ilmselt läheb lauk läbi selle. 1560 01:06:03,330 --> 01:06:05,440 Ma ei ole teiega koodeksi. 1561 01:06:05,440 --> 01:06:06,580 Me lihtsalt kõndida läbi. 1562 01:06:06,580 --> 01:06:10,500 Nii sisestamise sorteerida on omamoodi on sarnane valik sorteeri 1563 01:06:10,500 --> 01:06:14,460 et meil on nii sortimata ja järjestatud osa massiivi. 1564 01:06:14,460 --> 01:06:20,260 >> Aga mis on erinev see, et kui me minna läbi ükshaaval, 1565 01:06:20,260 --> 01:06:24,210 me lihtsalt võtta mis tahes arv kõrval on meie sorteerimata, 1566 01:06:24,210 --> 01:06:28,507 ja õigesti sortida meie sorteeritud massiiv. 1567 01:06:28,507 --> 01:06:30,090 Seda saad mõttekam näiteks. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Nii et kõik algab sortimata, Just nagu valik omamoodi. 1570 01:06:35,430 --> 01:06:38,740 Ja me läheme sorteerida seda kasvavas järjekorras oleme olnud. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Nii et meie esimene pass võtame esimene väärtus 1573 01:06:43,340 --> 01:06:46,700 ja me ütleme, OK, siis on nüüd nimekirja ise. 1574 01:06:46,700 --> 01:06:49,150 >> Sest sa oled nimekirjas ise, siis on järjestatud. 1575 01:06:49,150 --> 01:06:52,460 Palju õnne, sest ta oli esimene element selles massiivi. 1576 01:06:52,460 --> 01:06:54,800 Sa oled juba järjestatud kõik ise. 1577 01:06:54,800 --> 01:06:58,900 Nii et nüüd oleme järjestatud ning sortimata massiivi. 1578 01:06:58,900 --> 01:07:01,760 Nüüd võtame kõigepealt. 1579 01:07:01,760 --> 01:07:05,600 Mis juhtub vahel siin ja siin on see, et me ütleme, 1580 01:07:05,600 --> 01:07:08,890 OK, me ei kavatse vaadata esimene väärtus meie sorteerimata massiivi 1581 01:07:08,890 --> 01:07:13,270 ja me ei kavatse sisend seda oma õige koha sorteeritud massiiv. 1582 01:07:13,270 --> 01:07:21,460 >> Niisiis, mida me teeme, on me võtame 5 ja ütleme, OK, 5 on suurem kui 3, 1583 01:07:21,460 --> 01:07:24,630 nii me lihtsalt sisestada see õige üles paremale. 1584 01:07:24,630 --> 01:07:25,130 Oleme head. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Siis me läheme meie järgmise üks. 1587 01:07:28,420 --> 01:07:29,720 Ja me võtame 2. 1588 01:07:29,720 --> 01:07:34,330 Me ütleme, OK, 2 on vähem kui 3, nii et me teame, et see 1589 01:07:34,330 --> 01:07:36,220 peab olema ees meie nimekirja nüüd. 1590 01:07:36,220 --> 01:07:41,800 Niisiis, mida me teeme, on meil suruda 3 ja 5 ette ja astume 2 arvesse, et esimene pesa. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Nii et me lihtsalt sisestamist õige koht peaks olema. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Siis me vaatame meie kõrval üks, ja me ütleme 6. 1595 01:07:49,470 --> 01:07:53,620 OK, 6 on suurem kui kõik, mis meie sorteeritud massiiv, 1596 01:07:53,620 --> 01:07:56,000 nii me lihtsalt sildistada seda lõpuni. 1597 01:07:56,000 --> 01:07:56,960 Ja siis me vaatame 4. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4 on vähem kui 6, see on vähem kui 5, kuid see on suurem kui 3. 1600 01:08:03,020 --> 01:08:06,270 Nii et me lihtsalt sisestada see paremale keskel 3 ja 5 vahel. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Nii, et muuta see veidi natuke konkreetsem, 1603 01:08:10,530 --> 01:08:12,280 siin on selline Idee, mis juhtus. 1604 01:08:12,280 --> 01:08:16,430 Nii et iga sortimata element, me kindlaks teha, kus on sorteeritud osa 1605 01:08:16,430 --> 01:08:17,090 see on. 1606 01:08:17,090 --> 01:08:20,680 >> Nii et pidades silmas sorteeritud ja sorteerimata, 1607 01:08:20,680 --> 01:08:26,080 meil läbida läbi ja joonis välja, kui see sobib sorteeritud massiiv. 1608 01:08:26,080 --> 01:08:31,460 Ja me lisada see, nihutades elementide paremal maha. 1609 01:08:31,460 --> 01:08:34,910 Ja siis me muudkui iterating läbi kuni me 1610 01:08:34,910 --> 01:08:39,270 on täiesti järjestatud nimekiri kus sorteerimata on nüüd null 1611 01:08:39,270 --> 01:08:41,720 ja sorteeritud kulub kogu meie nimekirjas. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Nii et jällegi, et teha asju veelgi konkreetsemad meil pseudokoodi. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Nii et põhiliselt i võrdne 0 kuni n miinus 1, 1616 01:08:52,410 --> 01:08:54,790 see on lihtsalt pikkuse meie massiivi. 1617 01:08:54,790 --> 01:09:00,979 Meil on mõned element, mis on võrdne Esimene massiiv või esimese indekseid. 1618 01:09:00,979 --> 01:09:03,200 Seame j, mis on võrdne. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Niisiis, kui j on suurem kui null ja massiivi, j miinus 1 1621 01:09:09,210 --> 01:09:11,660 on suurem kui element, seega kõik, mis teed 1622 01:09:11,660 --> 01:09:17,479 on tagada, et oma j tegelikult esindab 1623 01:09:17,479 --> 01:09:20,010 sorteerimata osa massiivi. 1624 01:09:20,010 --> 01:09:30,745 >> Nii kaua kui on veel asju sorteerida ja j miinus üks on-- mida 1625 01:09:30,745 --> 01:09:31,840 on element teda? 1626 01:09:31,840 --> 01:09:34,760 J oli kunagi siin määratletud. 1627 01:09:34,760 --> 01:09:35,677 See on selline tüütu. 1628 01:09:35,677 --> 01:09:36,176 OK. 1629 01:09:36,176 --> 01:09:36,689 Niikuinii. 1630 01:09:36,689 --> 01:09:39,899 Nii j miinus 1, loed element enne seda. 1631 01:09:39,899 --> 01:09:46,460 Ütled, OK, on ​​element Enne kus ma am-- olgem 1632 01:09:46,460 --> 01:09:47,540 tegelikult juhtida seda. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Ütleme, et see on nagu meie teine ​​läbimine. 1635 01:09:56,830 --> 01:09:59,525 Nii et ma ei kavatse olla võrdne 1, mis on siin. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Nii et ma ei kavatse olla võrdne 1. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 See peaks olema 2, 4, 5, 6, 7. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Hea küll. 1642 01:10:16,750 --> 01:10:20,945 Nii et meie element antud juhul saab olema võrdne 4. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 Ja meil on mõned j, mis on saab olema võrdne 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 Oh, j on decrementing. 1647 01:10:30,971 --> 01:10:31,720 See, mis see on. 1648 01:10:31,720 --> 01:10:35,680 Nii j on võrdne i, nii et mis see on ütlus on, et kui me liigume edasi, 1649 01:10:35,680 --> 01:10:37,530 me lihtsalt hoolitsedes et me ei ole enam 1650 01:10:37,530 --> 01:10:43,520 indekseerimist nii, kui me üritame lisada asju meie järjestatud nimekirja. 1651 01:10:43,520 --> 01:10:49,850 >> Nii et kui j on 1 antud juhul ja massiivi j miinus one-- nii massiivi j miinus 1 1652 01:10:49,850 --> 01:10:54,610 on 2 selles case-- kui see on suurem kui element, 1653 01:10:54,610 --> 01:10:57,700 siis kõik see teeb nihkub asju ette. 1654 01:10:57,700 --> 01:11:04,790 Nii et antud juhul massiivi j miinus üks oleks array null, mis on 2. 1655 01:11:04,790 --> 01:11:08,430 2 ei ole suurem kui 4, nii et see ei täida. 1656 01:11:08,430 --> 01:11:11,460 Nii et üleminek ei liigu alla. 1657 01:11:11,460 --> 01:11:18,790 Mida see teeb siin on lihtsalt liigub oma sorteeritud massiivi alla. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Sel juhul tegelikult me võiks do-- teeme seda 3. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Nii et kui me kõndida läbi koos Selles näites me oleme nüüd siin. 1662 01:11:31,970 --> 01:11:32,740 See on sorteeritud. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 See on sorteerimata. 1665 01:11:35,200 --> 01:11:39,090 1666 01:11:39,090 --> 01:11:39,860 Cool? 1667 01:11:39,860 --> 01:11:46,620 Niisiis i on võrdne 2, nii Meie element võrdub 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 Ja meie j on võrdne 2. 1670 01:11:52,270 --> 01:12:00,620 Nii et me vaatame läbi ja me öelda, OK, on ​​massiivi j miinus üks 1671 01:12:00,620 --> 01:12:03,470 suurem kui element et me vaatame? 1672 01:12:03,470 --> 01:12:05,540 Ja vastus on jah, eks? 1673 01:12:05,540 --> 01:12:11,275 4 on suurem kui 3 ja j on 2, seega see kood hukatakse. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Nüüd, mida me teeme reaga 2, seega siin me vahetada neid. 1676 01:12:18,550 --> 01:12:25,620 Nii et me lihtsalt öelda, OK, massiiv 2 on nüüd saab olema 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 Ja j läheb võrdsed j miinus 1, mis on 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 See on kohutav, kuid kutid idee. 1681 01:12:37,200 --> 01:12:38,360 J on nüüd võrdne 1. 1682 01:12:38,360 --> 01:12:44,360 Ja massiivi j on lihtsalt saab olema võrdne meie element, mis on 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 I kustutada midagi, mida ma ei tohiks on või miswrote midagi, 1685 01:12:48,570 --> 01:12:49,910 aga kutid idee. 1686 01:12:49,910 --> 01:12:50,640 >> See liikuma n. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 Ja siis kui see nii oli, oleks loop uuesti ja ta ütleks, OK, j on 1 nüüd. 1689 01:12:57,960 --> 01:13:00,665 Ja massiivi j miinus 1 on nüüd 2. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 Kas 2 alla meie element? 1692 01:13:03,760 --> 01:13:04,540 Ei? 1693 01:13:04,540 --> 01:13:07,970 See tähendab, et me oleme lisatakse see element 1694 01:13:07,970 --> 01:13:10,110 õigesse kohta meie sorteeritud massiiv. 1695 01:13:10,110 --> 01:13:14,400 Siis saame seda ning me ütleme, OK, meie sorteeritud massiiv on siin. 1696 01:13:14,400 --> 01:13:19,940 Ja ta võtab selle number 6 ja olema nagu OK, on ​​6 vähem kui see number? 1697 01:13:19,940 --> 01:13:20,480 Ei? 1698 01:13:20,480 --> 01:13:21,080 Külm. 1699 01:13:21,080 --> 01:13:22,680 Oleme trahvi. 1700 01:13:22,680 --> 01:13:23,530 >> Tee seda uuesti. 1701 01:13:23,530 --> 01:13:24,740 Me ütleme 7. 1702 01:13:24,740 --> 01:13:29,010 Kas 7 alla lõpuks Meie sorteeritud massiivi? 1703 01:13:29,010 --> 01:13:29,520 Ei. 1704 01:13:29,520 --> 01:13:30,430 Nii et meil läheb hästi. 1705 01:13:30,430 --> 01:13:32,760 Nii et see oleks sorteerida. 1706 01:13:32,760 --> 01:13:38,610 Põhimõtteliselt kõik see ei on see ütlus võtta 1707 01:13:38,610 --> 01:13:42,060 esimene osa Sinu sorteerimata massiiv, 1708 01:13:42,060 --> 01:13:46,010 aru saada, kus see läheb Teie sorteeritud massiiv. 1709 01:13:46,010 --> 01:13:48,780 Ja see lihtsalt hoolitseb vahetuslepingute teha. 1710 01:13:48,780 --> 01:13:51,300 Sa põhimõtteliselt lihtsalt vahetada kuni see on õige koha peal. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Visuaalne kujund on see, et sa oled liigub kõik alla, tehes seda. 1713 01:13:56,990 --> 01:13:59,420 >> Nii et see on nagu pool mull sort-esque. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Tutvu uuring 50. 1716 01:14:03,420 --> 01:14:06,000 Ma väga soovitada üritab kodeerida selle ise. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Kui teil on küsimusi või soovite vaata proovi kood sisestamise sorteerida, 1719 01:14:12,450 --> 01:14:13,750 palun andke mulle teada. 1720 01:14:13,750 --> 01:14:14,500 Ma olen alati ümber. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Nii et halvimal juhul runtime ja parimal juhul tööaega. 1723 01:14:20,200 --> 01:14:30,700 Nagu te kutt nägi laualt ma juba näitasin teile, see on nii n ruudus ja n. 1724 01:14:30,700 --> 01:14:35,590 >> Nii et selline läheb maha sellest, mida me rääkisime umbes meie eelmise kehvasti, halvim 1725 01:14:35,590 --> 01:14:38,760 juhul runtime on see, et kui see on täiesti sortimata, 1726 01:14:38,760 --> 01:14:42,530 meil võrrelda kõiki neid n korda. 1727 01:14:42,530 --> 01:14:47,020 Teeme kogu palju võrdlusi sest kui see on vastupidises järjekorras, 1728 01:14:47,020 --> 01:14:50,360 me ei kavatse öelda, OK, see on sama, see on hea, 1729 01:14:50,360 --> 01:14:54,650 ja see üks tuleb võrrelda vastu esimene, kes viiakse tagasi. 1730 01:14:54,650 --> 01:14:56,710 Ja kui saame poole saba lõppu, on meil 1731 01:14:56,710 --> 01:14:59,440 võrrelda, võrrelda ja võrreldakse kõike. 1732 01:14:59,440 --> 01:15:03,030 >> Nii et see jõuab on umbes n ruudus. 1733 01:15:03,030 --> 01:15:09,510 Kui see on õige, siis öelda, OK, 2, sa oled hea. 1734 01:15:09,510 --> 01:15:11,330 3, sa oled võrreldes 2. 1735 01:15:11,330 --> 01:15:12,310 Sa oled hea. 1736 01:15:12,310 --> 01:15:14,150 4, sa lihtsalt võrrelda saba. 1737 01:15:14,150 --> 01:15:14,990 Sa oled hea. 1738 01:15:14,990 --> 01:15:17,140 6, võrrelda saba, sa oled hea. 1739 01:15:17,140 --> 01:15:20,870 Nii et iga kohapeal kui see on juba sorteeritud, et sa üritad üks võrdlus. 1740 01:15:20,870 --> 01:15:22,320 Nii et see on lihtsalt n. 1741 01:15:22,320 --> 01:15:26,840 Ja kuna meil on parimal juhul runtime n ja halvima runtime n 1742 01:15:26,840 --> 01:15:28,680 ruuduline ole meil oodata tööaega. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> See lihtsalt sõltub kaos meie nimekirjas olemas. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 Ja jälle teine graafik ja teises tabelis. 1747 01:15:39,530 --> 01:15:41,170 Nii et erinevused kehvasti. 1748 01:15:41,170 --> 01:15:44,180 Ma lihtsalt imelihtne läbi, ma tunne, nagu me oleme rääkinud ulatuslikult 1749 01:15:44,180 --> 01:15:46,570 kuidas nad igasugu on erinevad ja ühendaks. 1750 01:15:46,570 --> 01:15:50,564 Nii Mestimissortimine on viimane Ma kandis te poisid. 1751 01:15:50,564 --> 01:15:52,105 Meil on päris värvikas pilt. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Nii Mestimissortimine on rekursiivne algoritm. 1754 01:15:56,040 --> 01:15:59,910 Nii et te poisid teavad, mida rekursiivne funktsioon on? 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Igaüks tahan öelda? 1757 01:16:03,320 --> 01:16:04,739 Soovite proovida? 1758 01:16:04,739 --> 01:16:07,280 Nii rekursiivne funktsioon on lihtsalt funktsioon, mis nimetab ennast. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Nii et kui te poisid tunnevad koos Fibonacci jada, 1761 01:16:11,590 --> 01:16:15,670 mis on loetud rekursiivne, sest te võtate kahe eelmise 1762 01:16:15,670 --> 01:16:17,530 ning lisage need koos saada oma järgmise üks. 1763 01:16:17,530 --> 01:16:21,440 Nii rekursiivne, ma alati arvan, kohta recursion nagu nagu spiraal 1764 01:16:21,440 --> 01:16:24,430 nii et sa oled nagu spiraali mööda ta. 1765 01:16:24,430 --> 01:16:27,150 Aga see on lihtsalt funktsioon mis nimetab ennast. 1766 01:16:27,150 --> 01:16:32,660 >> Ja tegelikult, tõesti kiiresti ma mis näitab teile, milline see välja näeb. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Nii rekursiivne siin, kui me vaatame, on see rekursiivne viis Kokkuvõttes üle massiivi. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Nii et kõik, mis me teeme, on meil summa funktsioon 1771 01:16:47,880 --> 01:16:52,210 summa, mis võtab suurus ja massiivi. 1772 01:16:52,210 --> 01:16:55,210 Ja kui te märkate, suurus Count üks iga kord. 1773 01:16:55,210 --> 01:17:00,365 Ja kõik see on kui x on võrdne zero-- nii kui suurust massiivi 1774 01:17:00,365 --> 01:17:02,710 võrdub zero-- tagastab null. 1775 01:17:02,710 --> 01:17:10,440 >> Vastasel juhul võtab see viimane element massiivi, 1776 01:17:10,440 --> 01:17:14,790 ja võtab siis summa ülejäänud massiivi. 1777 01:17:14,790 --> 01:17:17,555 Nii et see on lihtsalt murda see maha üha väiksemateks probleeme. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Pikk lugu lühike, recursion, funktsioon, mis nimetab ennast. 1780 01:17:21,890 --> 01:17:25,740 Kui see on kõik sul läbi selle, see on, mida rekursiivne funktsioon. 1781 01:17:25,740 --> 01:17:29,870 Kui te võtate 51, saad väga, väga rahul recursion. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 See on väga lahe. 1784 01:17:32,370 --> 01:17:34,660 See oli loogiline on nagu 03:00 üks õhtu. 1785 01:17:34,660 --> 01:17:37,900 Ja ma olin nagu, miks ma olen kunagi seda kasutada? 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Nii Mestimissortimine, põhiliselt mida ta kavatseb teha, on see 1788 01:17:42,430 --> 01:17:45,620 kavatse murda see maha ja katki alla, kuni see on lihtsalt ühe elemente. 1789 01:17:45,620 --> 01:17:47,570 Ühtne elemendid on lihtne sorteerida. 1790 01:17:47,570 --> 01:17:48,070 Me näeme, et. 1791 01:17:48,070 --> 01:17:50,760 Kui teil on üks element, see on loetakse juba sorteeritud. 1792 01:17:50,760 --> 01:17:53,800 Nii et sisend n elementi, kui n on vähemalt 2, 1793 01:17:53,800 --> 01:17:58,120 lihtsalt tagasi, sest see vahend see on 0 või 1, sest me oleme näinud. 1794 01:17:58,120 --> 01:18:00,050 Need peetakse sorteeritud elemendid. 1795 01:18:00,050 --> 01:18:02,170 >> Vastasel murda see pooleks. 1796 01:18:02,170 --> 01:18:06,336 Sorteeri aasta esimesel poolel, sorteerida teine poole ja siis liita need kokku. 1797 01:18:06,336 --> 01:18:07,460 Miks seda nimetatakse Mestimissortimine. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Nii et meil on siin me sorteeri need. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Nii et me peame laskma neid kuni massiivi suurus on 1. 1802 01:18:17,210 --> 01:18:20,790 Nii et kui see on 1, me lihtsalt tagasi sest see on sorteeritud massiiv, 1803 01:18:20,790 --> 01:18:23,940 ja see on sorteeritud massiiv, ja see on sorteeritud massiiv, me kõik sorteerida. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Niisiis, mida me teeme, on meie alustada ühinevad nendega koos. 1806 01:18:29,420 --> 01:18:31,820 >> Niisiis, kuidas sa saad mõtle ühendamine on 1807 01:18:31,820 --> 01:18:36,240 sa lihtsalt eemaldada väiksem arv iga sub massiivid 1808 01:18:36,240 --> 01:18:38,330 ja lihtsalt lisada see tekkinud massiiv. 1809 01:18:38,330 --> 01:18:44,290 Nii et kui sa vaatad siin, kui meil on Nende komplekti meil on 4, 6 ja 1. 1810 01:18:44,290 --> 01:18:47,280 Kui me tahame, et koondada need, me vaatame neid kahte esimest 1811 01:18:47,280 --> 01:18:50,730 ja me ütleme, OK, 1 on väiksem, see läheb ees. 1812 01:18:50,730 --> 01:18:54,330 4 ja 6, seal on midagi võrrelda see lihtsalt sildistada seda lõpuni. 1813 01:18:54,330 --> 01:18:58,020 >> Kui me ühendame need kaks, me lihtsalt võta väiksem kui üks neist kahest, 1814 01:18:58,020 --> 01:18:59,310 nii et see on 1. 1815 01:18:59,310 --> 01:19:01,690 Ja nüüd me võtame väiksemad neist kahest, nii 2. 1816 01:19:01,690 --> 01:19:03,330 Väiksemad neist kaks, 3. 1817 01:19:03,330 --> 01:19:06,260 Väiksemad neist kahest, 4, 5, 6. 1818 01:19:06,260 --> 01:19:08,630 Nii et sa oled lihtsalt tõmmates lahti need. 1819 01:19:08,630 --> 01:19:11,210 Ja kuna nad on sorteeritud varem, 1820 01:19:11,210 --> 01:19:14,300 sa lihtsalt üks Võrdluseks iga kord. 1821 01:19:14,300 --> 01:19:19,610 Nii et enam-koodi siin, just esitus. 1822 01:19:19,610 --> 01:19:24,410 Nii et kui hakkate keskel ja sa omamoodi vasakul ja paremal 1823 01:19:24,410 --> 01:19:26,180 ja siis lihtsalt ühendada need. 1824 01:19:26,180 --> 01:19:30,080 >> Ja me ei pea koodi jaoks ühendada siin. 1825 01:19:30,080 --> 01:19:34,110 Kuid jällegi, kui sa lähed õppida 50, siis tulen sinna. 1826 01:19:34,110 --> 01:19:36,860 Muidu tulevad minuga rääkima kui sa oled veel segaduses. 1827 01:19:36,860 --> 01:19:42,340 Nii lahe asi on see, et parimal juhul Halvimal juhul ja oodata runtime 1828 01:19:42,340 --> 01:19:46,250 kõik log n, mis on palju parem kui me oleme 1829 01:19:46,250 --> 01:19:48,000 näinud kogu meie kehvasti. 1830 01:19:48,000 --> 01:19:51,840 Me oleme näinud n ruudus ja mida me tegelikult 1831 01:19:51,840 --> 01:19:54,380 siia on n log n, mis on suurepärane. 1832 01:19:54,380 --> 01:19:55,830 >> Vaata, kui palju parem see on. 1833 01:19:55,830 --> 01:19:56,780 Selline kena kõver. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Nii palju tõhusamaks. 1836 01:20:00,120 --> 01:20:03,510 Kui sa kunagi saab kasutada Mestimissortimine. 1837 01:20:03,510 --> 01:20:04,810 See säästab aega. 1838 01:20:04,810 --> 01:20:07,670 Aga samas, kui me ütlesime, kui sa oled alla selles alumises, 1839 01:20:07,670 --> 01:20:09,480 see ei muuda seda palju erinevust. 1840 01:20:09,480 --> 01:20:11,360 Sa saad kuni tuhandeid ja tuhandeid sisendeid, 1841 01:20:11,360 --> 01:20:13,318 te kindlasti soovite tõhusam algoritm. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 Ja jällegi, meie armas tabeli kõikidest kehvasti, et kutid õppinud täna. 1844 01:20:19,400 --> 01:20:21,157 >> Nii et ma tean, et see on olnud tihe päev. 1845 01:20:21,157 --> 01:20:23,490 See ei ole tingimata positiivsed mis aitavad teil oma pset. 1846 01:20:23,490 --> 01:20:28,250 Aga ma tahan teha disclaimer see lõik ei ole ainult psets. 1847 01:20:28,250 --> 01:20:31,240 Kõik see materjal on õiglane mäng oma midterms. 1848 01:20:31,240 --> 01:20:35,430 Ja ka siis, kui sa seda jätkata koos CS, need on tõesti oluline põhialused 1849 01:20:35,430 --> 01:20:37,870 et siis oleks vaja teada. 1850 01:20:37,870 --> 01:20:41,700 Nii et mõned päevad on veidi rohkem pset abi, 1851 01:20:41,700 --> 01:20:44,600 kuid mõned nädalad on palju tegelikku sisu 1852 01:20:44,600 --> 01:20:46,600 mis ei pruugi tunduda super Teile kasulik just nüüd, 1853 01:20:46,600 --> 01:20:51,215 aga ma luban, kui jätkate aasta saab olema väga, väga kasulik. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Nii et see osa. 1856 01:20:54,250 --> 01:20:55,250 Alla traat. 1857 01:20:55,250 --> 01:20:56,570 Ma tegin seda ühe minuti jooksul. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Aga seal lähete. 1860 01:20:58,970 --> 01:21:01,240 Ja mul sõõrikud või kommi. 1861 01:21:01,240 --> 01:21:03,464 Kas keegi on allergiline midagi, muide? 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Munad ja piim. 1864 01:21:05,890 --> 01:21:08,120 Nii sõõrikud on ei? 1865 01:21:08,120 --> 01:21:09,400 1866 01:21:09,400 --> 01:21:10,160 OK. 1867 01:21:10,160 --> 01:21:10,770 Hea küll. 1868 01:21:10,770 --> 01:21:12,120 Chocolate ei ole? 1869 01:21:12,120 --> 01:21:12,620 Tähesära. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Starbursts on head. 1872 01:21:14,670 --> 01:21:15,170 OK. 1873 01:21:15,170 --> 01:21:17,045 Me läheme on Starburst järgmisel nädalal siis. 1874 01:21:17,045 --> 01:21:18,240 See, mida ma saan. 1875 01:21:18,240 --> 01:21:19,690 Kutid on suurepärane nädal. 1876 01:21:19,690 --> 01:21:20,460 Loe oma spec. 1877 01:21:20,460 --> 01:21:22,130 >> Anna mulle teada, kui teil on mingeid küsimusi. 1878 01:21:22,130 --> 01:21:25,300 Pset kaks palgaastet peaks olema teile välja hiljemalt neljapäeval. 1879 01:21:25,300 --> 01:21:28,320 Kui teil on küsimusi, kuidas ma sorteeritud midagi 1880 01:21:28,320 --> 01:21:32,250 või miks ma sorteeritud midagi nii, nagu ma ei, siis palun kirjuta mulle, tule räägi minuga. 1881 01:21:32,250 --> 01:21:34,210 Ma olen natuke hull see nädal, kuid ma luban 1882 01:21:34,210 --> 01:21:36,340 Ma ikka vastata 24 tunni jooksul. 1883 01:21:36,340 --> 01:21:38,240 Nii on suurepärane nädalal kõigile. 1884 01:21:38,240 --> 01:21:40,090 Õnn oma pset. 1885 01:21:40,090 --> 01:21:41,248