1 00:00:00,000 --> 00:00:11,100 2 00:00:11,100 --> 00:00:12,300 >> Tagapagsalita 1: Hey sa lahat! 3 00:00:12,300 --> 00:00:13,890 Maligayang pagbabalik sa seksyon. 4 00:00:13,890 --> 00:00:17,480 Kaya natutuwa upang makita kaya marami sa parehong mo rito, at lahat ng tao kung sino ang nanonood sa online. 5 00:00:17,480 --> 00:00:18,760 6 00:00:18,760 --> 00:00:20,920 Kaya, gaya ng dati pabalik maligayang pagdating. 7 00:00:20,920 --> 00:00:24,360 Umaasa ako na ang lahat ay nagkaroon ng isang kaibig-ibig katapusan ng linggo, na puno ng pahinga, relaxation. 8 00:00:24,360 --> 00:00:26,026 Ito ay maganda ang kahapon. 9 00:00:26,026 --> 00:00:27,525 Kaya, Umaasa ako sa iyo Tatangkilikin ang labas. 10 00:00:27,525 --> 00:00:28,840 11 00:00:28,840 --> 00:00:30,610 >> Kaya muna ng isang pares ng mga anunsyo. 12 00:00:30,610 --> 00:00:31,920 13 00:00:31,920 --> 00:00:32,700 Grading. 14 00:00:32,700 --> 00:00:37,350 Kaya, ang karamihan sa mga mo dapat nakuha ng isang -email sa akin tungkol sa iyong mga scratch Pset, 15 00:00:37,350 --> 00:00:39,920 pati na rin ang grading para sa Pset 1. 16 00:00:39,920 --> 00:00:41,000 17 00:00:41,000 --> 00:00:42,220 Kaya, ang ilang mga bagay lamang. 18 00:00:42,220 --> 00:00:45,150 Tiyaking gumamit check50 sa style50. 19 00:00:45,150 --> 00:00:47,250 Ang mga ito ay sinadya upang maging mga mapagkukunan para sa iyo guys, 20 00:00:47,250 --> 00:00:50,660 upang matiyak na nakakakuha ka ng ng maraming mga punto hangga't maaari 21 00:00:50,660 --> 00:00:52,390 walang needlessly mawala ang mga ito. 22 00:00:52,390 --> 00:00:54,407 Kaya, mga bagay tulad ng estilo Napakahalaga. 23 00:00:54,407 --> 00:00:55,740 Pagpunta Kami ay gumawa ng off para dito. 24 00:00:55,740 --> 00:00:58,115 Maaaring mayroon na ang ilan sa iyo Napansin iyon mula sa iyong Pset. 25 00:00:58,115 --> 00:00:58,920 26 00:00:58,920 --> 00:01:01,450 At check50 lamang talaga madaling paraan upang tiyakin 27 00:01:01,450 --> 00:01:05,050 na aktwal na kami ay bumabalik sa kung ano ang Kailangang ibalik sa user, 28 00:01:05,050 --> 00:01:06,690 at na ang lahat ng bagay na gumagana nang maayos. 29 00:01:06,690 --> 00:01:08,690 30 00:01:08,690 --> 00:01:12,040 >> Sa pangalawang tala, siguraduhin na ang iyong -upload ng mga bagay sa tamang folder. 31 00:01:12,040 --> 00:01:14,470 Ito ay gumagawa ng aking buhay lamang Medyo mas mahirap 32 00:01:14,470 --> 00:01:18,836 kapag nai-upload Pset 2 sa Pset 1 dahil kapag nag-download ako ng mga bagay, 33 00:01:18,836 --> 00:01:20,085 hindi nila i-download nang tama. 34 00:01:20,085 --> 00:01:21,690 35 00:01:21,690 --> 00:01:24,560 At alam ko ito ay isang maliit na wonky sa isang system upang masanay sa, 36 00:01:24,560 --> 00:01:26,950 ngunit maging sobrang lamang Mag-ingat, kung lamang para sa akin, 37 00:01:26,950 --> 00:01:30,080 upang kapag nakakakuha ka ng mga e-mail sa tulad ng 2:00 at ako grading. 38 00:01:30,080 --> 00:01:33,710 Kung hindi maging sanhi Mayroon akong upang tumingin lahat sa paligid para sa iyong Pset. 39 00:01:33,710 --> 00:01:34,440 Ayos. 40 00:01:34,440 --> 00:01:37,270 >> Alam ko ito nang maaga, ngunit ako ganap Kaka-kinuha off bantay 41 00:01:37,270 --> 00:01:40,800 sa pamamagitan ng isang sanaysay na dahil ito Biyernes, na aking propesor ay nais lamang, oh oo. 42 00:01:40,800 --> 00:01:42,550 Tandaan, mayroon kang isang sanaysay dahil sa Biyernes. 43 00:01:42,550 --> 00:01:45,780 Kaya, alam ko walang sinuman ang may gusto mag-isip tungkol sa midterms, 44 00:01:45,780 --> 00:01:50,620 ngunit ang iyong unang pagsusulit ay sa ika-15 ng Oktubre, na Oktubre ay nagsisimula sa linggong ito. 45 00:01:50,620 --> 00:01:53,290 Kaya, maaari itong maging mas maaga kaysa sa iyong inaasahan ang lahat. 46 00:01:53,290 --> 00:01:57,510 Nang sa gayon ay hindi ka itinapon off bantay kapag Banggitin ko seksyon sa susunod na linggo na oh, 47 00:01:57,510 --> 00:02:00,560 ang iyong pagsusulit sa susunod na linggo, naisip ko Gusto ko magbibigay sa iyo ng kaunti higit pa 48 00:02:00,560 --> 00:02:01,500 ng up ng mga ulo ngayon. 49 00:02:01,500 --> 00:02:02,970 50 00:02:02,970 --> 00:02:04,660 >> Kaya, itakda ang iyong problema, numero ng tatlong. 51 00:02:04,660 --> 00:02:07,070 Paano mga tao na basahin ang spec out ng pag-usisa? 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 Nakakuha kami ng ilang. 55 00:02:10,229 --> 00:02:12,320 Uri ng down na mula sa huling pag linggo ngunit na ang OK. 56 00:02:12,320 --> 00:02:13,650 Alam ko ito ay magandang out. 57 00:02:13,650 --> 00:02:15,120 58 00:02:15,120 --> 00:02:16,660 Kaya Hatiin Out. 59 00:02:16,660 --> 00:02:21,010 Talagang pagkatapos mong makakuha ng tapos ngayon basahin ang iyong mga spec ng hindi bababa sa 60 00:02:21,010 --> 00:02:25,240 subukan tulad ng pag-download pamamahagi code at tumakbo 61 00:02:25,240 --> 00:02:27,430 tulad ng una paunang bagay na tanungin ka nila sa. 62 00:02:27,430 --> 00:02:28,681 63 00:02:28,681 --> 00:02:32,590 Dahil kami ay gumagamit ng pamamahagi ng code at isang library 64 00:02:32,590 --> 00:02:36,790 na lamang ang aming nai-using-- na --It lamang ang pangalawang pagkakataon na ginawa na namin ang Pset, 65 00:02:36,790 --> 00:02:38,650 nakatutuwang bagay ang maaaring mangyari sa iyong appliance, 66 00:02:38,650 --> 00:02:41,370 at gusto mong malaman na out na ngayon kumpara sa ibang pagkakataon. 67 00:02:41,370 --> 00:02:45,570 >> Dahil kung ito ay Huwebes ng gabi o ito Miyerkules gabi at para sa ilang kadahilanan 68 00:02:45,570 --> 00:02:48,912 iyong appliance gumagana lamang hindi gustong magpatakbo sa library 69 00:02:48,912 --> 00:02:50,620 o sa pamamahagi code, na paraan 70 00:02:50,620 --> 00:02:52,309 Hindi mo maaaring kahit simulan ang paggawa sa coding. 71 00:02:52,309 --> 00:02:54,100 Dahil hindi mo maaaring tingnan upang makita kung ito gumagana. 72 00:02:54,100 --> 00:02:55,975 Ang iyong hindi gonna magagawang upang makita kung compiles ito. 73 00:02:55,975 --> 00:03:00,500 Gusto mong mag-ingat sa mga unang bahagi sa linggo, kapag maaari mo pa ring mag-email sa akin 74 00:03:00,500 --> 00:03:03,100 o isa sa iba pang mga TFs, at maaari naming makakuha ng mga nakapirming. 75 00:03:03,100 --> 00:03:05,410 Dahil ang mga ito ay mga isyu na pagpunta sa itigil mo ang 76 00:03:05,410 --> 00:03:07,120 mula sa pagsasagawa ng anumang tunay na progreso. 77 00:03:07,120 --> 00:03:10,055 Hindi ito gusto ang isa sa bug, na maaari mo lamang uri ng laktawan sa paglipas. 78 00:03:10,055 --> 00:03:10,712 79 00:03:10,712 --> 00:03:13,420 Kung nagkakaroon ka ng mga isyu sa iyong appliance o code na pamamahagi, 80 00:03:13,420 --> 00:03:16,211 Talaga bang nais mong makakuha na kinunan pakialam ng mas maaga kaysa sa ibang pagkakataon. 81 00:03:16,211 --> 00:03:20,410 Kaya kahit na hindi ka naka-gonna talaga simulan coding, i-download ang pamamahagi 82 00:03:20,410 --> 00:03:24,040 code, basahin ang spec, tiyaking lahat ng bagay na gumagana doon. 83 00:03:24,040 --> 00:03:25,134 OK? 84 00:03:25,134 --> 00:03:27,675 Kung maaari mo lamang gawin iyon, ako nangangako ang iyong buhay ay magiging mas madali. 85 00:03:27,675 --> 00:03:28,800 86 00:03:28,800 --> 00:03:31,410 At kaya marahil na iyong pupuntahan upang gawin ito ngayon tama? 87 00:03:31,410 --> 00:03:32,100 OK. 88 00:03:32,100 --> 00:03:33,950 Kaya, anumang mga katanungan doon? 89 00:03:33,950 --> 00:03:35,850 Anumang logistic bagay? 90 00:03:35,850 --> 00:03:36,910 Ang bawat tao'y Magandang? 91 00:03:36,910 --> 00:03:38,270 OK. 92 00:03:38,270 --> 00:03:41,700 >> Disclaimer para sa mga mo sa kuwarto at sa online. 93 00:03:41,700 --> 00:03:45,437 Pupunta ako sa sinusubukan upang lumipat sa pagitan ng PowerPoint sa appliance 94 00:03:45,437 --> 00:03:47,270 dahil kami ay pagpunta maging ang paggawa ng ilang coding 95 00:03:47,270 --> 00:03:53,630 ngayon sa pamamagitan ng sikat na pangangailangan ng hindi nakikilalang poll mungkahi ko ipapadala noong nakaraang linggo. 96 00:03:53,630 --> 00:03:55,480 Kaya, ay ginagawa namin ang ilang mga coding. 97 00:03:55,480 --> 00:03:57,800 Kaya, kung nais mo ring guys upang painitin ang iyong mga kasangkapan sa, 98 00:03:57,800 --> 00:04:02,910 at dapat na mayroon ka ng isang email mula sa akin, na may sample na file. 99 00:04:02,910 --> 00:04:04,310 Mangyaring huwag mag-atubiling upang gawin iyon. 100 00:04:04,310 --> 00:04:07,340 >> Kaya, kami ay pagpunta sa makipag-usap tungkol sa GDB, na isang debugger. 101 00:04:07,340 --> 00:04:09,970 Ito ay pagpunta upang makatulong sa iyo uri ng maisip kung saan 102 00:04:09,970 --> 00:04:11,860 bagay ay pumunta mali sa iyong code. 103 00:04:11,860 --> 00:04:15,370 Ito ay talagang lamang ng isang paraan para sa iyo sa hakbang sa pamamagitan ng iyong code bilang ito nangyayari, 104 00:04:15,370 --> 00:04:19,100 at makakapag-print ang mga variable o kung ano ang aktwal na nangyayari 105 00:04:19,100 --> 00:04:22,980 sa ilalim ng hood verses iyong programa tumatakbo lamang, tulad ng faulting, 106 00:04:22,980 --> 00:04:25,030 at ikaw ay tulad ng, walang ideya kung ano lamang ang nangyari dito. 107 00:04:25,030 --> 00:04:26,730 Hindi ko alam kung ano ang linya Nabigo ito sa. 108 00:04:26,730 --> 00:04:29,040 Hindi ko alam kung saan ito nangyaring mali. 109 00:04:29,040 --> 00:04:31,280 Kaya, GDB ay pupunta na tulungan ka sa na. 110 00:04:31,280 --> 00:04:35,240 Gayundin, kung magpasya kang magpatuloy oo, at 61, 111 00:04:35,240 --> 00:04:38,430 ito ay talagang, talagang maging pinakamatalik na kaibigan, dahilan ang maaari kong sabihin sa iyo 112 00:04:38,430 --> 00:04:40,840 dahil ako pupunta sa pamamagitan ng klase na iyon. 113 00:04:40,840 --> 00:04:43,620 >> Kami ay pagpunta sa tumingin sa binary paghahanap, na kung guys tandaan 114 00:04:43,620 --> 00:04:47,540 ang mahusay na halimbawa phone book palabas mula sa klase. 115 00:04:47,540 --> 00:04:50,620 Susubukan naming i-pagpapatupad na iyon, at paglalakad sa pamamagitan ng na ang isang kaunti pa, 116 00:04:50,620 --> 00:04:54,650 at pagkatapos kami ay pagpunta sa pamamagitan ng apat na iba't ibang mga klase, na Bubble, 117 00:04:54,650 --> 00:04:56,285 Pinili, Insertion, at Pagsamahin. 118 00:04:56,285 --> 00:04:57,830 119 00:04:57,830 --> 00:04:58,330 Ayos. 120 00:04:58,330 --> 00:05:00,390 Kaya, GDB bilang ko nabanggit, ay isang debugger. 121 00:05:00,390 --> 00:05:01,400 122 00:05:01,400 --> 00:05:09,370 At ang mga ito ay uri ng malaki mga bagay, ang malaking function o utos 123 00:05:09,370 --> 00:05:13,240 na gamitin mo sa loob ng GDB, at ako ay lumakad sa iyo sa pamamagitan ng isang demo ng ito sa isang segundo. 124 00:05:13,240 --> 00:05:15,360 >> Kaya, ito ay hindi lamang titira abstract. 125 00:05:15,360 --> 00:05:18,000 Kukunin ko subukan at gawin itong bilang kongkreto hangga't maaari para sa iyo guys. 126 00:05:18,000 --> 00:05:19,870 Kaya, masira. 127 00:05:19,870 --> 00:05:22,200 Ito alinman maging bakasyon tulad ng, ang ilang mga numero, na 128 00:05:22,200 --> 00:05:26,900 ay kumakatawan sa isang linya sa iyong programa, o maaari mong pangalanan ang isang function. 129 00:05:26,900 --> 00:05:30,150 Kaya, kung sinabi mo masira pangunahing, ito ay titigil sa pangunahing, 130 00:05:30,150 --> 00:05:32,400 at hayaan ang ituturo sa iyo na function. 131 00:05:32,400 --> 00:05:36,350 >> Gayundin, kung mayroon kang ilang mga panlabas na gumana tulad ng Pagpalitin o Cube, 132 00:05:36,350 --> 00:05:38,450 na itinuturing namin ang nakaraang linggo. 133 00:05:38,450 --> 00:05:41,780 Kung sinabi mong masira ang isa sa mga iyon, kailanman ang iyong programa sa mga hit na iyon, 134 00:05:41,780 --> 00:05:44,290 Makikita ito maghintay para sa iyo upang sabihin dito kung ano ang gagawin. 135 00:05:44,290 --> 00:05:47,860 Bago ito lamang isagawa kaya maaaring aktwal na hakbang sa loob ng function na 136 00:05:47,860 --> 00:05:49,020 at tingnan kung ano ang nangyayari sa. 137 00:05:49,020 --> 00:05:50,370 138 00:05:50,370 --> 00:05:53,515 Kaya, Susunod, skips lamang sa ibabaw ng susunod na linya, napupunta sa ibabaw ng mga pag-andar. 139 00:05:53,515 --> 00:05:54,730 140 00:05:54,730 --> 00:05:55,560 Hakbang. 141 00:05:55,560 --> 00:05:56,810 Ito ang lahat maliit na abstract. 142 00:05:56,810 --> 00:06:00,530 Kaya, lang ako pagpunta upang patakbuhin sa pamamagitan ng mga ito, ngunit makikita mo ang mga ito sa paggamit sa isang segundo. 143 00:06:00,530 --> 00:06:01,810 >> Hakbang sa isang function. 144 00:06:01,810 --> 00:06:04,170 Kaya bilang sinasabi ko, tulad ng may Swap, gagawin ito 145 00:06:04,170 --> 00:06:07,110 -daan sa iyo upang aktwal na bilang kung ikaw ay tulad ng pisikal na stepping sa loob, 146 00:06:07,110 --> 00:06:10,990 maaari mong gulo sa mga variable, i-print kung ano ang mga ito, tingnan kung ano ang nangyayari sa. 147 00:06:10,990 --> 00:06:12,140 148 00:06:12,140 --> 00:06:14,830 Listahan ay literal na i-print lamang ang nakapalibot na code. 149 00:06:14,830 --> 00:06:17,570 Kaya, kung uri ng kalimutan kung nasaan ka sa iyong programa, 150 00:06:17,570 --> 00:06:19,880 o naka-iisip kung ano ang nangyayari sa paligid nito, 151 00:06:19,880 --> 00:06:23,790 ito ay i-print lamang ang isang segment ng bang lima o anim na linya sa paligid nito. 152 00:06:23,790 --> 00:06:26,080 Kaya, maaari kang makakuha ng nakatuon tungkol sa kung nasaan ka. 153 00:06:26,080 --> 00:06:27,230 154 00:06:27,230 --> 00:06:28,650 >> I-print ang ilang mga variable. 155 00:06:28,650 --> 00:06:34,590 Kaya, kung mayroon kang mga key tulad ng sa Caesar, na titingnan namin. 156 00:06:34,590 --> 00:06:36,220 Maaari mong sabihin I-print ang Key sa anumang punto. 157 00:06:36,220 --> 00:06:40,070 Ito sabihin sa iyo kung ano ang halaga ay kaya iyon, marahil sa isang lugar sa kahabaan ng paraan, 158 00:06:40,070 --> 00:06:42,070 mo ay sinulatan papatong sa iyong key. 159 00:06:42,070 --> 00:06:45,495 Maaari mong aktwal na sabihin na dahil Maaari mong aktwal na obserbahan ang halaga. 160 00:06:45,495 --> 00:06:46,500 161 00:06:46,500 --> 00:06:48,780 >> Sa mga lokal, lamang ng mga kopya ang iyong lokal na variable. 162 00:06:48,780 --> 00:06:53,120 Kaya, anumang oras ikaw ay sa loob ng loop, at gusto mo lamang makita tulad ng, oh. 163 00:06:53,120 --> 00:06:54,270 Ano ang aking ko? 164 00:06:54,270 --> 00:06:57,020 Ano ang key na ito halaga na-initialize ko dito? 165 00:06:57,020 --> 00:06:58,537 Ano ang mensahe sa puntong ito? 166 00:06:58,537 --> 00:07:00,370 Ay i-print ito lamang ang lahat ng mga, sa gayon ay 167 00:07:00,370 --> 00:07:04,330 huwag nang paisa-isa kailangang sabihin, Print I. I-print ang mensahe. 168 00:07:04,330 --> 00:07:04,970 I-print Key. 169 00:07:04,970 --> 00:07:06,190 170 00:07:06,190 --> 00:07:07,700 At pagkatapos ay Ipakita ang. 171 00:07:07,700 --> 00:07:10,370 Ano na ang ginagawa ay tulad ng sa iyo magbasa-basa sa programa, 172 00:07:10,370 --> 00:07:13,980 Makikita ito lamang tiyakin na ito na nagpapakita ng ilang mga tiyak na variable 173 00:07:13,980 --> 00:07:14,780 sa bawat punto. 174 00:07:14,780 --> 00:07:17,160 Kaya na also-- mo --it ang uri ng isang shortcut kung saan 175 00:07:17,160 --> 00:07:19,530 Hindi mo na kailangang panatilihin ng pagpunta tulad ng, oh. 176 00:07:19,530 --> 00:07:23,150 I-print Key o I-print I. ito lamang ay awtomatikong gawin ito para sa iyo. 177 00:07:23,150 --> 00:07:25,959 >> Kaya, na may na, ipinapadala namin pagpunta upang makita kung paano ito napupunta. 178 00:07:25,959 --> 00:07:28,000 Pupunta ako sa subukan at switch sa ibabaw sa aking appliance. 179 00:07:28,000 --> 00:07:30,200 180 00:07:30,200 --> 00:07:31,271 Tingnan kung maaari kong gawin ito. 181 00:07:31,271 --> 00:07:31,770 Lahat. 182 00:07:31,770 --> 00:07:40,970 183 00:07:40,970 --> 00:07:42,370 Lamang kami ng pagpunta sa mirror ito. 184 00:07:42,370 --> 00:07:44,530 Walang basag ang pula ay sa aking laptop pa rin. 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 Ito ay kailangang maging isang ito. 189 00:08:01,054 --> 00:08:01,795 Ito ay kaya maliit na. 190 00:08:01,795 --> 00:08:03,730 191 00:08:03,730 --> 00:08:05,120 Tingnan natin kung maaari naming gawin ito Hayaan. 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 ay malinaw naman struggling dito lamang nang kaunti, 195 00:08:15,305 --> 00:08:17,995 ngunit susuriin namin ito sa isang 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 Kami ay lamang ng pagpunta sa taasan ito. 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 Maaari lahat uri ng makita na? 202 00:08:31,679 --> 00:08:32,470 Siguro kaunti? 203 00:08:32,470 --> 00:08:33,594 Alam ko ito ay isang maliit na maliit. 204 00:08:33,594 --> 00:08:34,570 205 00:08:34,570 --> 00:08:37,530 Hindi ka maaaring masyadong malaman kung paano gawin ang mas malaking. 206 00:08:37,530 --> 00:08:38,350 Kung alam ng sinuman. 207 00:08:38,350 --> 00:08:40,309 May nakakaalam ba kung paano gawin itong mas malaking? 208 00:08:40,309 --> 00:08:40,932 OK. 209 00:08:40,932 --> 00:08:42,140 Kami ay pagpunta sa roll sa mga ito. 210 00:08:42,140 --> 00:08:45,801 Hindi ba mahalaga pa rin dahil ito ay lamang na ang code na iyong guys dapat 211 00:08:45,801 --> 00:08:46,300 Mayroon. 212 00:08:46,300 --> 00:08:48,310 >> Ano ang mas mahalaga ay ang terminal dito. 213 00:08:48,310 --> 00:08:52,840 214 00:08:52,840 --> 00:08:58,690 At mayroon kaming dito Bakit ito ay kaya maliit? 215 00:08:58,690 --> 00:09:02,325 216 00:09:02,325 --> 00:09:02,825 Mga Setting. 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 Ang tunay na Ike. 220 00:09:09,500 --> 00:09:10,880 Paano ito? 221 00:09:10,880 --> 00:09:11,770 Out ng doon. 222 00:09:11,770 --> 00:09:19,370 223 00:09:19,370 --> 00:09:21,810 Iyan ba ay mas mahusay para sa lahat? 224 00:09:21,810 --> 00:09:22,525 OK ,. 225 00:09:22,525 --> 00:09:23,025 Ayos. 226 00:09:23,025 --> 00:09:25,830 227 00:09:25,830 --> 00:09:28,220 >> Alam mo kapag ikaw ay nasa isang CS class na teknikal na problema 228 00:09:28,220 --> 00:09:32,971 mga uri ng bahagi ng the-- Kaya, na i-clear ang ipaalam. 229 00:09:32,971 --> 00:09:33,470 OK. 230 00:09:33,470 --> 00:09:38,060 Kaya, dito mismo sa seksyon, na namin ay may dito. 231 00:09:38,060 --> 00:09:40,830 Caesar ay isang executable file. 232 00:09:40,830 --> 00:09:41,800 Kaya ginawa ko ito. 233 00:09:41,800 --> 00:09:46,370 Kaya, isang bagay upang mapagtanto na may GDB ay na gagana lamang ito sa mga maipapatupad na file. 234 00:09:46,370 --> 00:09:48,040 Kaya, hindi mo maaaring patakbuhin ito sa isang dotsy. 235 00:09:48,040 --> 00:09:50,532 Kailangan mong aktwal na gumawa ng mga Tiyakin na ang iyong code compiles, 236 00:09:50,532 --> 00:09:51,865 at maaari itong aktwal na patatakbuhin. 237 00:09:51,865 --> 00:09:52,970 238 00:09:52,970 --> 00:09:56,186 >> Kaya, tiyakin na kung hindi sumulat ng libro, kumuha ng mga ito upang makatipon, 239 00:09:56,186 --> 00:09:57,810 upang maaari mong uri ng tumakbo sa pamamagitan nito. 240 00:09:57,810 --> 00:10:04,590 Kaya, upang simulan ang GDB, ang lahat ng ginagawa mo, Gloria uri ng GDB, at pagkatapos lamang ng 241 00:10:04,590 --> 00:10:06,250 -file na gusto mo. 242 00:10:06,250 --> 00:10:08,240 Palagi akong bumaybay nang pamali Caesar. 243 00:10:08,240 --> 00:10:11,730 Ngunit nais mong tiyakin dahil ito ay isang executable, 244 00:10:11,730 --> 00:10:14,210 tuldok flash ti sa gayon na Nangangahulugan na iyong pupuntahan 245 00:10:14,210 --> 00:10:19,240 upang magpatakbo ng CSI na iyong pupuntahan upang maisagawa ang mga file na alinman sa debugger. 246 00:10:19,240 --> 00:10:19,910 OK. 247 00:10:19,910 --> 00:10:22,885 Kaya, mo na, makakakuha ka ng ang ganitong uri ng walang kuwentang. 248 00:10:22,885 --> 00:10:24,250 249 00:10:24,250 --> 00:10:25,750 Ito ay lamang ng lahat ng bagay tungkol sa debugger. 250 00:10:25,750 --> 00:10:28,200 Hindi mo ba talagang i- mag-alala tungkol dito sa ngayon. 251 00:10:28,200 --> 00:10:31,460 At tulad ng nakikita mo, mayroon kaming ito bukas parens, GDP, malapit parens, 252 00:10:31,460 --> 00:10:34,690 at lamang uri ng kamukha ang aming mga linya ng command, i-right? 253 00:10:34,690 --> 00:10:37,010 >> Kaya, kung ano ang gusto naming do-- --So, Ang unang bagay na 254 00:10:37,010 --> 00:10:39,570 ay nais naming piliin isang lugar upang masira ito. 255 00:10:39,570 --> 00:10:42,332 Kaya, mayroong isang bug sa Caesar programa 256 00:10:42,332 --> 00:10:44,290 na ipakilala ko, na kami ay pagpunta upang malaman. 257 00:10:44,290 --> 00:10:45,330 258 00:10:45,330 --> 00:10:56,350 Ito Ano ang ibig ito ay tumatagal ng pag-input Barfoo sa lahat ng mga pag-cap, at para sa ilang kadahilanan 259 00:10:56,350 --> 00:11:01,950 hindi ito baguhin A. nag-iiwan ito lamang ito nag-iisa, Ay iba tama ang lahat ng bagay, 260 00:11:01,950 --> 00:11:03,980 ngunit ang pangalawang sulat Isang nanatiling hindi nabago. 261 00:11:03,980 --> 00:11:07,120 Kaya, kami ay pagpunta sa subukan at malaman kung bakit na. 262 00:11:07,120 --> 00:11:10,440 Kaya, ang unang bagay na karaniwan mong nais gawin sa tuwing magsisimula ka sa GDB 263 00:11:10,440 --> 00:11:12,010 ay malaman kung saan masira ito. 264 00:11:12,010 --> 00:11:14,956 >> Kaya Caesar ay isang medyo maikling programa. 265 00:11:14,956 --> 00:11:16,330 Mayroon lamang namin ang isa function, tama? 266 00:11:16,330 --> 00:11:18,520 Ano ang aming mga sa Caesar? 267 00:11:18,520 --> 00:11:19,590 268 00:11:19,590 --> 00:11:24,350 Mayroon lamang isang function, Main tama? 269 00:11:24,350 --> 00:11:26,490 Pangunahing ay isang function para sa lahat ng iyong mga programa. 270 00:11:26,490 --> 00:11:29,230 Kung hindi ka magkaroon ng Main, maaari ko maging isang maliit na nag-aalala sa ngayon, 271 00:11:29,230 --> 00:11:31,000 ngunit Umaasa ako mo ang lahat ay nagkaroon ng Main doon. 272 00:11:31,000 --> 00:11:34,150 Kaya, ano ang maaari naming gawin ay namin masira lang Main, tulad ng iyon. 273 00:11:34,150 --> 00:11:35,190 Kaya, sinasabi nito, OK. 274 00:11:35,190 --> 00:11:37,430 Namin-set ang aming isa breakpoint doon. 275 00:11:37,430 --> 00:11:42,870 >> Kaya, ngayon ang bagay na dapat tandaan ay Caesar tumatagal ng isang linya ng command argumento karapatan 276 00:11:42,870 --> 00:11:45,150 at hindi pa kami tapos na kahit saan pa. 277 00:11:45,150 --> 00:11:47,560 Kaya, ano ang gagawin mo ay kapag aktwal mong pumunta sa tumakbo 278 00:11:47,560 --> 00:11:51,540 programa, ang anumang mga programa na ikaw ay tumatakbo sa GDB na nangangailangan ng command line 279 00:11:51,540 --> 00:11:55,010 argumento, ka ng pagpunta sa pag-input noong una mong simulan ang pagpapatakbo nito. 280 00:11:55,010 --> 00:11:59,280 Kaya, sa kasong ito, ang ginagawa namin Magpatakbo ng isang key ng tatlo. 281 00:11:59,280 --> 00:12:00,770 282 00:12:00,770 --> 00:12:02,040 At ito ay aktwal na magsimula. 283 00:12:02,040 --> 00:12:08,480 >> Kaya, kung makita mo rito, mayroon kaming Kung Remote-controlled ay hindi kapantay sa 2. 284 00:12:08,480 --> 00:12:12,210 Kaya kung guys ang lahat ng mayroon na file na aking ipinadala out hanggang 285 00:12:12,210 --> 00:12:15,100 makikita mo na na tulad ng aming pangunahing pag-andar unang linya, i-right? 286 00:12:15,100 --> 00:12:17,890 Ito ay pag-check upang makita kung kami ay ang tamang dami ng mga argument. 287 00:12:17,890 --> 00:12:20,620 Kaya, kung ikaw ay nagtataka kung Remote-controlled ay tama, 288 00:12:20,620 --> 00:12:23,250 maaari mong gawin ang isang bagay tulad ng Print Remote-controlled. 289 00:12:23,250 --> 00:12:24,380 290 00:12:24,380 --> 00:12:28,640 Remote-controlled ay dalawang, na kung ano ang inaasahan namin, tama? 291 00:12:28,640 --> 00:12:32,010 >> Kaya, maaari naming pumunta Susunod, at magpatuloy sa pamamagitan ng. 292 00:12:32,010 --> 00:12:33,200 Kaya, mayroon kaming ilang mga pangunahing doon. 293 00:12:33,200 --> 00:12:34,260 294 00:12:34,260 --> 00:12:37,090 At maaari naming i-print ang aming key upang matiyak na tama. 295 00:12:37,090 --> 00:12:38,380 296 00:12:38,380 --> 00:12:39,500 Kawili-wili. 297 00:12:39,500 --> 00:12:41,210 Hindi masyadong kung ano ang inaasahan namin. 298 00:12:41,210 --> 00:12:44,810 Kaya, isang bagay upang mapagtanto may GDB rin, ay 299 00:12:44,810 --> 00:12:49,000 na hindi ito hanggang sa aktwal mong pindutin ang Susunod, na ang mga line na nakita mo lamang 300 00:12:49,000 --> 00:12:50,720 ay aktwal na pinaandar. 301 00:12:50,720 --> 00:12:53,870 Kaya, sa kasong ito Key Hindi pa nakatalaga. 302 00:12:53,870 --> 00:12:57,050 Kaya, Key ay ilang mga halaga ng basura na nakikita mo sa ibaba doon. 303 00:12:57,050 --> 00:13:03,680 Negatibong $ 120-- --It ng isang bilyon at ng kakaiba mga bagay na tama? 304 00:13:03,680 --> 00:13:05,340 Hindi ito ang Key na aming inaasahan. 305 00:13:05,340 --> 00:13:10,720 Ngunit kung pindutin namin ang Susunod, at pagkatapos ay namin subukan at I-print key, ito ay tatlo. 306 00:13:10,720 --> 00:13:11,710 >> Ang bawat tao'y makita na? 307 00:13:11,710 --> 00:13:13,780 Kaya, kung makakuha ka ng isang bagay na ikaw ay tulad, maghintay. 308 00:13:13,780 --> 00:13:15,540 Ito ay ganap na mali, at hindi ko alam 309 00:13:15,540 --> 00:13:20,150 kung paano ito mangyayari dahil gusto ko ang lahat gawin ay magtalaga ng isang numero, isang variable, 310 00:13:20,150 --> 00:13:22,900 subukan ang pagpindot Susunod, subukan ang pag-print itong muli, at tingnan kung na gumagana. 311 00:13:22,900 --> 00:13:27,830 Dahil itong ibang mapupuntahan kundi upang maisagawa at aktwal na magtalaga ng isang bagay na pagkatapos mong 312 00:13:27,830 --> 00:13:29,340 pindutin ang Susunod. 313 00:13:29,340 --> 00:13:30,336 Magkaroon ng kahulugan sa lahat? 314 00:13:30,336 --> 00:13:30,836 Uh huh? 315 00:13:30,836 --> 00:13:33,220 >> Tagapagsalita 2: Kapag nag-random mga numero kung ano ang ibig sabihin na? 316 00:13:33,220 --> 00:13:34,790 >> Tagapagsalita 1: Ito ay lamang random. 317 00:13:34,790 --> 00:13:35,710 Ito ay basura lamang. 318 00:13:35,710 --> 00:13:38,320 Ito ay isang bagay lamang na iyong computer ay random na italaga. 319 00:13:38,320 --> 00:13:39,721 320 00:13:39,721 --> 00:13:40,220 Ayos. 321 00:13:40,220 --> 00:13:45,760 Kaya, ngayon, maaari naming ilipat sa pamamagitan, at sa gayon ngayon ay mayroon kaming na ito plain text GetString. 322 00:13:45,760 --> 00:13:48,600 Kaya, sabihin ipakilala sa akin kung ano ang ang mangyayari kapag pindutin namin Susunod dito. 323 00:13:48,600 --> 00:13:51,320 Ang aming GDB uri ng mawala, tama? 324 00:13:51,320 --> 00:13:55,720 Iyon ay dahil sa GetString ay isinasagawa ngayon, tama? 325 00:13:55,720 --> 00:14:01,460 Kaya, kapag nakita namin ang plain text ay katumbas ng GetString, buksan ang parens at parens, 326 00:14:01,460 --> 00:14:04,380 at pindutin namin Susunod, na may aktwal na isagawa ngayon. 327 00:14:04,380 --> 00:14:06,580 Kaya, ito ay naghihintay para sa amin na input ng isang bagay. 328 00:14:06,580 --> 00:14:13,560 >> Kaya, kami ay pagpunta sa input aming pagkain na ay kung ano ang hindi pagtupad ito bilang sinabi ko sa iyo 329 00:14:13,560 --> 00:14:18,020 at na lamang ang sinasabi na ito tapos na e-execute, na ang nagsara 330 00:14:18,020 --> 00:14:19,980 bracket ay nangangahulugan ito paglabas out sa na loop. 331 00:14:19,980 --> 00:14:21,170 332 00:14:21,170 --> 00:14:25,420 Kaya, maaari naming pindutin ang Susunod, at ngayon, bilang ako Tiyaking ikaw ay lahat ng mga pamilyar mula sa Caesar, 333 00:14:25,420 --> 00:14:27,260 ito ay, kung ano ang linyang ito ng pagpunta sa gawin. 334 00:14:27,260 --> 00:14:32,030 Ito ay para sa katumbas Int akong 0, N ay katumbas ng Strlen, plain na teksto, at pagkatapos ay 335 00:14:32,030 --> 00:14:33,960 Ako ay mas mababa kaysa n, ko, plus, plus. 336 00:14:33,960 --> 00:14:35,210 Ano ito loop pagpunta sa gawin? 337 00:14:35,210 --> 00:14:37,900 338 00:14:37,900 --> 00:14:39,160 Buksan ang iyong mensahe. 339 00:14:39,160 --> 00:14:39,770 Ayos. 340 00:14:39,770 --> 00:14:41,330 Kaya, magsimula ng paggawa na ipaalam. 341 00:14:41,330 --> 00:14:47,210 >> Kaya, dapat ang kundisyong ito tumugma sa, para sa aming unang isa? 342 00:14:47,210 --> 00:14:52,250 Kung ito ay isang B, ito ay plain text I. namin makakakuha ng impormasyon tungkol sa aming mga lokal. 343 00:14:52,250 --> 00:14:53,610 344 00:14:53,610 --> 00:14:57,970 Kaya, ako ay zero, at kung anim, na inaasahan namin, at ang aming key ay tatlong. 345 00:14:57,970 --> 00:14:59,227 Lahat ng na magkaroon ng kahulugan, tama? 346 00:14:59,227 --> 00:15:01,310 Ang mga numerong ito ay ang lahat ng nang eksakto kung ano ang dapat nilang maging. 347 00:15:01,310 --> 00:15:02,590 348 00:15:02,590 --> 00:15:03,870 Kaya, ugong? 349 00:15:03,870 --> 00:15:05,620 Tagapagsalita 3: Mayroon akong random na numero para sa minahan. 350 00:15:05,620 --> 00:15:09,156 351 00:15:09,156 --> 00:15:12,030 Tagapagsalita 1: Well, maaari naming check-- --we maaaring makipag-chat tungkol na sa isang segundo. 352 00:15:12,030 --> 00:15:14,110 353 00:15:14,110 --> 00:15:15,750 Ngunit dapat ay nakakakuha ito. 354 00:15:15,750 --> 00:15:17,700 355 00:15:17,700 --> 00:15:20,130 Kaya, kung mayroon kaming kapital B para sa aming unang isa, 356 00:15:20,130 --> 00:15:22,080 kondisyon na ito ay dapat mahuli ito, i-right? 357 00:15:22,080 --> 00:15:27,120 Kaya, kung pindutin namin Susunod, makikita natin na ito Kung talagang executes. 358 00:15:27,120 --> 00:15:29,220 Dahil kung sinusubaybayan mo kasama ang iyong code, 359 00:15:29,220 --> 00:15:33,460 ang linyang ito dito, kung saan plain text ko ay pinalitan ng mga ito palatuusan, 360 00:15:33,460 --> 00:15:35,720 executes lamang kung ang Kung kondisyon ay tama tama? 361 00:15:35,720 --> 00:15:36,905 362 00:15:36,905 --> 00:15:40,240 >> GDB ay pupunta lamang upang ipakita sa iyo mga bagay na aktwal na-e-execute. 363 00:15:40,240 --> 00:15:45,140 Kaya kung ito Kung ang kondisyon ay hindi pa nakikilala, ito ay lamang ng pagpunta sa lumaktaw sa susunod na linya. 364 00:15:45,140 --> 00:15:46,540 OK? 365 00:15:46,540 --> 00:15:48,510 Kaya, mayroon kaming na iyon. 366 00:15:48,510 --> 00:15:51,171 Bracket Ito ay nangangahulugan ito Sarado out sa na loop ngayon. 367 00:15:51,171 --> 00:15:52,420 Kaya, ito ay pagpunta sa simulan muli. 368 00:15:52,420 --> 00:15:54,760 369 00:15:54,760 --> 00:15:56,280 Tulad na iyon. 370 00:15:56,280 --> 00:15:59,120 Kaya, maaari naming makakuha ng impormasyon tungkol sa aming mga lokal dito, 371 00:15:59,120 --> 00:16:02,575 at nakita namin na ang aming unang sulat nagbago, tama? 372 00:16:02,575 --> 00:16:05,150 Ito ay ngayon isang E, pati na ito ay dapat. 373 00:16:05,150 --> 00:16:07,360 Kaya, maaari naming magpatuloy sa. 374 00:16:07,360 --> 00:16:08,500 >> At mayroon kaming ito tseke. 375 00:16:08,500 --> 00:16:09,916 At ang check ay dapat na gumana, tama? 376 00:16:09,916 --> 00:16:12,570 Ito ay A. Dapat itong baguhin tatlong titik pasulong. 377 00:16:12,570 --> 00:16:14,320 378 00:16:14,320 --> 00:16:16,530 Ngunit kung napansin mo, kami makakuha ng isang bagay na naiiba. 379 00:16:16,530 --> 00:16:17,580 380 00:16:17,580 --> 00:16:22,860 Kaya sa kasong ito dito, nahuli ito ito, at kaya ang linyang ito isagawa, 381 00:16:22,860 --> 00:16:28,620 na-modify na aming B. Subalit, sa kasong ito dito, 382 00:16:28,620 --> 00:16:32,860 mayroon kaming na nilaktawan lang ito dito, at nagpunta sa [? L siff. ?] 383 00:16:32,860 --> 00:16:34,660 Kaya isang bagay na nangyayari sa doon. 384 00:16:34,660 --> 00:16:37,780 Ano na nagsasabi sa iyo ay na, Alam namin na ito ay dapat mahuli dito, 385 00:16:37,780 --> 00:16:39,200 pero hindi. 386 00:16:39,200 --> 00:16:42,210 Maaari sinuman makita kung ano ang aming problema ay sa linya? 387 00:16:42,210 --> 00:16:45,380 388 00:16:45,380 --> 00:16:46,969 Ito ay isang napaka-minutong bagay. 389 00:16:46,969 --> 00:16:48,510 At maaari ka ring tumingin sa iyong mga code. 390 00:16:48,510 --> 00:16:49,980 391 00:16:49,980 --> 00:16:54,940 Ito ay line-- rin kalimutan kung ano ang line ito sa there-- ngunit sa [hindi marinig]. 392 00:16:54,940 --> 00:16:55,480 Oo? 393 00:16:55,480 --> 00:16:58,639 >> Tagapagsalita 4: Ito ay sa mas mataas kaysa sa pahina kung basahin mo ito sa aklat. 394 00:16:58,639 --> 00:16:59,430 Tagapagsalita 1: Eksaktong. 395 00:16:59,430 --> 00:17:02,620 Kaya, ang debugger ay hindi maaaring sabihin sa iyo na, ngunit ang debugger 396 00:17:02,620 --> 00:17:05,880 makakuha ka pababa sa isang linya na alam mo ay hindi gumagana. 397 00:17:05,880 --> 00:17:09,319 At kung minsan, kapag lalo na sa ibang pagkakataon sa semestre, kapag 398 00:17:09,319 --> 00:17:12,910 ka pagharap sa isang daang, isang daang ilang linya ng code, at 399 00:17:12,910 --> 00:17:16,190 hindi alam kung saan ito bagsak, ito ay isang mahusay na paraan upang gawin ito. 400 00:17:16,190 --> 00:17:17,900 401 00:17:17,900 --> 00:17:18,989 Kaya, nakita namin ang aming mga bug. 402 00:17:18,989 --> 00:17:21,530 Maaari mong ayusin ito sa iyong file, at pagkatapos ay maaari mo itong patakbuhing muli, 403 00:17:21,530 --> 00:17:23,029 at lahat ng bagay ay gumana nang perpekto. 404 00:17:23,029 --> 00:17:24,970 405 00:17:24,970 --> 00:17:30,590 At ang pinakamalaking bagay ay Maaari itong tila mas, OK. 406 00:17:30,590 --> 00:17:31,090 Oo. 407 00:17:31,090 --> 00:17:31,370 Ayos. 408 00:17:31,370 --> 00:17:32,744 Alam mo kung ano ang iyong hinahanap. 409 00:17:32,744 --> 00:17:34,910 Kaya, alam mo kung ano ang gagawin. 410 00:17:34,910 --> 00:17:39,021 >> GDB ay maaaring maging napaka-kapaki-pakinabang dahil ikaw maaaring mag-print out ang lahat ng mga bagay na ito na 411 00:17:39,021 --> 00:17:39,520 gagawin hindi. 412 00:17:39,520 --> 00:17:41,160 Ito ay mas kapaki-pakinabang kaysa PrintF. 413 00:17:41,160 --> 00:17:43,440 Ilan sa ginagamit mo tulad ng PrintF pahayag 414 00:17:43,440 --> 00:17:46,200 upang malaman kung saan ang isang bug ay, i-right? 415 00:17:46,200 --> 00:17:48,450 Kaya, sa ito, hindi mo gusto mayroon upang panatilihing bumabalik, 416 00:17:48,450 --> 00:17:51,139 at i pagkomento sa PrintF, o pagkomento out, 417 00:17:51,139 --> 00:17:52,930 at malaman kung ano dapat mong i-print. 418 00:17:52,930 --> 00:17:55,670 Ang aktwal na lamang ay nagbibigay-daan sa iyo upang magbasa-basa, mag-print ng mga bagay 419 00:17:55,670 --> 00:18:00,000 bilang ka ng pagpunta sa pamamagitan ng, sa gayon, maaari mong obserbahan kung paano baguhin ang mga ito sa real time, 420 00:18:00,000 --> 00:18:02,190 bilang iyong programa ay tumatakbo. 421 00:18:02,190 --> 00:18:04,390 >> At ito ay tumagal ng kaunti kaunting nagsisimula ginagamit upang. 422 00:18:04,390 --> 00:18:07,850 Gusto ko lubos na inirerekomenda uri lamang ng pagiging isang maliit na bigo dito 423 00:18:07,850 --> 00:18:08,930 para sa ngayon. 424 00:18:08,930 --> 00:18:13,450 Kung gumastos ka ng isang oras sa ibabaw ng susunod na linggo sa pag-aaral kung paano gamitin ang GDB, 425 00:18:13,450 --> 00:18:16,140 ay i-save mo ang iyong sarili kaya karaming oras sa ibang pagkakataon. 426 00:18:16,140 --> 00:18:18,750 At literal. sabihin namin ito sa mga tao sa bawat taon, 427 00:18:18,750 --> 00:18:23,890 at natatandaan ko noong kinuha ko ang klase, ako ay tulad ng, ako ay magiging multa. 428 00:18:23,890 --> 00:18:24,700 Hindi. 429 00:18:24,700 --> 00:18:27,030 Pset 6 ay dumating sa at ako ay tulad ng, gonna ako matuto 430 00:18:27,030 --> 00:18:29,500 kung paano gamitin ang GDB dahil gagawin ko hindi malaman kung ano ang nangyayari sa dito. 431 00:18:29,500 --> 00:18:32,940 >> Kaya kung maglaan ka ng oras upang gamitin ito sa mas maliit na mga programa 432 00:18:32,940 --> 00:18:35,697 na kayo ay magiging nagtatrabaho sa, tulad ng pagtatrabaho 433 00:18:35,697 --> 00:18:37,530 sa pamamagitan ng isang bagay tulad ng Visionare, tulad nito. 434 00:18:37,530 --> 00:18:38,800 435 00:18:38,800 --> 00:18:42,850 O kung gusto mo ba ng karagdagang kasanayan, ako sigurado Maaari akong makabuo ng maraming surot programa, 436 00:18:42,850 --> 00:18:45,300 para sa iyo upang i-debug kung gusto mo. 437 00:18:45,300 --> 00:18:49,300 >> Ngunit kung gagawin mo lang ng ilang oras upang makakuha ng ginagamit upang ito, i-play lamang sa paligid dito, 438 00:18:49,300 --> 00:18:50,550 ito ay talagang maghatid sa iyo na rin. 439 00:18:50,550 --> 00:18:52,591 At ito ay tunay na isa sa mga bagay na lamang 440 00:18:52,591 --> 00:18:57,340 Mayroon subukan, at makuha ang iyong mga kamay marumi sa, bago mo ba talagang maunawaan ito. 441 00:18:57,340 --> 00:19:02,090 Ko talaga maintindihan lamang ito nang isang beses Nagkaroon na ako upang i-debug ang mga bagay na may ito, 442 00:19:02,090 --> 00:19:08,170 at ito ay magkano nicer upang magkaroon ng ideya kung paano i-debug ang mas maaga kaysa sa ibang pagkakataon. 443 00:19:08,170 --> 00:19:08,850 OK. 444 00:19:08,850 --> 00:19:09,625 Ayos. 445 00:19:09,625 --> 00:19:12,960 Alam ko na uri ng tulad ng isang crash course sa GDB, 446 00:19:12,960 --> 00:19:16,400 at ako ay siguradong gagana sa pagkuha ng ang mga ito upang tumingin mas malaki susunod na pagkakataon. 447 00:19:16,400 --> 00:19:17,590 448 00:19:17,590 --> 00:19:18,280 Ayos. 449 00:19:18,280 --> 00:19:20,390 >> Kaya, kung pumunta namin pabalik sa aming mga PowerPoint. 450 00:19:20,390 --> 00:19:27,194 451 00:19:27,194 --> 00:19:28,110 Upang gumana ba ito ng pagpunta? 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 Oo. 455 00:19:31,101 --> 00:19:31,600 OK. 456 00:19:31,600 --> 00:19:35,480 Kaya, kung sakaling kailangan mo ng alinman sa mga muli, mayroong sa listahan. 457 00:19:35,480 --> 00:19:37,160 458 00:19:37,160 --> 00:19:40,830 Kaya Binary Paghahanap, na lahat Natatandaan ang mahusay na tanawin ng David 459 00:19:40,830 --> 00:19:42,259 sa nakagugulat aklat ng telepono sa kalahati. 460 00:19:42,259 --> 00:19:44,050 Hindi ko talaga makuha ang mga libro na ngayon sa telepono, 461 00:19:44,050 --> 00:19:46,530 dahil tulad ng kung saan gagawin mo makakuha ng mga araw na ito ng mga aklat ng telepono? 462 00:19:46,530 --> 00:19:48,220 Ko talagang hindi alam. 463 00:19:48,220 --> 00:19:49,840 464 00:19:49,840 --> 00:19:50,590 Ang Binary Search. 465 00:19:50,590 --> 00:19:52,464 Sinuman tandaan ang kung paano Binary Paghahanap gawa? 466 00:19:52,464 --> 00:19:54,380 467 00:19:54,380 --> 00:19:55,220 Sinuman sa lahat? 468 00:19:55,220 --> 00:19:56,325 Oo? 469 00:19:56,325 --> 00:19:58,283 Tagapagsalita 5: Alam mo kapag tumingin ka sa kung aling kalahati 470 00:19:58,283 --> 00:20:01,146 magiging in, Batay sa na, at mapupuksa ang iba pang kalahati. 471 00:20:01,146 --> 00:20:01,896 >> Tagapagsalita 1 Eksaktong. 472 00:20:01,896 --> 00:20:06,290 Kaya, Binary Search, ito ay uri ng a-- i --we na tumawag ito hatiin at mapaglabanan. 473 00:20:06,290 --> 00:20:09,170 Kaya, kung ano ang makikita mong gawin ay makikita mo tumingin sa gitna, 474 00:20:09,170 --> 00:20:11,990 at makikita mo kung tumutugma ito kung ano ang iyong hinahanap. 475 00:20:11,990 --> 00:20:15,420 At kung hindi, at pagkatapos ay subukang mong tayahin, ay ito pagpunta sa iwanang 476 00:20:15,420 --> 00:20:16,450 kalahati o ang karapatan sa kalahati. 477 00:20:16,450 --> 00:20:19,325 Kaya, ito ay maaaring maging kung naghahanap ka ng sa isang bagay na alphabetized, 478 00:20:19,325 --> 00:20:20,720 na nakikita mo, oh. 479 00:20:20,720 --> 00:20:22,750 Allison nagmumula ang bago M? 480 00:20:22,750 --> 00:20:23,250 Oo. 481 00:20:23,250 --> 00:20:25,030 Kaya, kami ay pagpunta sa tingnan ang unang kalahati. 482 00:20:25,030 --> 00:20:26,450 >> O maaari itong maging tulad ng may mga numero. 483 00:20:26,450 --> 00:20:28,830 Anumang bagay na maaari mong ihambing, maaari itong pinagsunod-sunod. 484 00:20:28,830 --> 00:20:29,920 485 00:20:29,920 --> 00:20:31,260 Maaari mong gamitin ang binary paghahanap sa. 486 00:20:31,260 --> 00:20:32,340 487 00:20:32,340 --> 00:20:37,455 Kaya, kahit sino tandaan na ito Ang graph o kung ano ito ay? 488 00:20:37,455 --> 00:20:39,520 Ito ay Asymptotic Pagiging kumplikado. 489 00:20:39,520 --> 00:20:42,830 Kaya, graph na ito lamang naglalarawan kung gaano katagal ito 490 00:20:42,830 --> 00:20:46,230 magdadala sa iyo upang malutas ang problema bilang dagdagan mo ang bilang ng mga bagay 491 00:20:46,230 --> 00:20:47,090 na ginagamit mo. 492 00:20:47,090 --> 00:20:51,260 >> Kaya, mayroon kaming H, na kung saan ay linear oras. 493 00:20:51,260 --> 00:20:54,560 Kung N higit sa dalawang, na kung saan ay bahagyang mas mahusay, lumalaki napakabilis pa rin. 494 00:20:54,560 --> 00:20:58,360 At pagkatapos ay ang pag-login namin, na kung ano ang itinuturing namin Binary Search. 495 00:20:58,360 --> 00:21:03,630 Kung napansin namin, pati na ang iyong problema nakakakuha ng mas at mas malaki, 496 00:21:03,630 --> 00:21:06,600 ang oras na ginugugol mo upang malutas ito Hindi talaga taasan ang ganoong karaming. 497 00:21:06,600 --> 00:21:09,010 Ito ay tulad maihahambing dito sa simula. 498 00:21:09,010 --> 00:21:10,060 Ikaw ay tulad, OK. 499 00:21:10,060 --> 00:21:13,000 Dito ay hindi talaga anumang bagay mahalaga kung aling isa na ginagamit namin, 500 00:21:13,000 --> 00:21:16,220 ngunit makakakuha ka out sa isang milyong, isang bilyon. 501 00:21:16,220 --> 00:21:20,010 Sinusubukan mong mahanap some-- --you're sinusubukan upang makahanap ng isang karayom ​​sa isang mandala ng dayami. 502 00:21:20,010 --> 00:21:21,550 >> Sa tingin ko gusto mong problemang ito. 503 00:21:21,550 --> 00:21:25,850 Gusto mong ito kumplikado, hindi linear dahil para sa lahat mo 504 00:21:25,850 --> 00:21:30,049 alam ang iyong gonna ay naghahanap sa pamamagitan ng bawat indibidwal na karayom, bagay ng dayami, 505 00:21:30,049 --> 00:21:31,340 sinusubukan mong hanapin ang iyong mga karayom. 506 00:21:31,340 --> 00:21:34,730 At na hindi masyadong masaya sa aking opinyon. 507 00:21:34,730 --> 00:21:35,500 Gusto ko mabilis. 508 00:21:35,500 --> 00:21:36,620 Gusto ko mahusay. 509 00:21:36,620 --> 00:21:40,450 At bilang hardworking mga mag-aaral mo guys ay, alam mong mas mahusay na makapagtrabaho, 510 00:21:40,450 --> 00:21:43,010 Hindi mahirap uri ng bagay, kung paano mo ay maaaring gumawa ng up ng mga algorithm. 511 00:21:43,010 --> 00:21:45,110 512 00:21:45,110 --> 00:21:47,910 >> Kaya, kami ay pagpunta sa maglakad sa pamamagitan lamang ng isang mabilis na halimbawa. 513 00:21:47,910 --> 00:21:51,090 Sa tingin ko mo guys ay dapat magkaroon isang kamay sa Binary Search, 514 00:21:51,090 --> 00:21:54,352 ngunit kung sakaling sinuman ay isang maliit na malabo, nais upang palakasin ito, 515 00:21:54,352 --> 00:21:56,310 kami ay pagpunta sa pumunta lamang sa pamamagitan ng isang halimbawa dito. 516 00:21:56,310 --> 00:21:59,490 Kaya, kami ay naghahanap ng kung ang array ay naglalaman ng pitong. 517 00:21:59,490 --> 00:22:00,540 518 00:22:00,540 --> 00:22:06,010 >> Kaya, ang unang bagay na aming ginagawa ay tumingin sa gitna, tama? 519 00:22:06,010 --> 00:22:09,340 At din na iyong pupuntahan ay coding Binary Hanapin sa isang segundo lang. 520 00:22:09,340 --> 00:22:11,310 Kaya, ito ay magiging masaya. 521 00:22:11,310 --> 00:22:13,710 Kaya tingnan natin sa gitna maliit na array 3. 522 00:22:13,710 --> 00:22:15,501 Ang 3 katumbas 7? 523 00:22:15,501 --> 00:22:16,000 Ay hindi. 524 00:22:16,000 --> 00:22:18,670 525 00:22:18,670 --> 00:22:19,550 Ito ay anim. 526 00:22:19,550 --> 00:22:21,480 Kaya, ay itong mas mababa sa o mas mataas sa pitong? 527 00:22:21,480 --> 00:22:23,080 528 00:22:23,080 --> 00:22:23,960 Mas mababa sa. 529 00:22:23,960 --> 00:22:24,570 Oo. 530 00:22:24,570 --> 00:22:25,170 Nice guys trabaho. 531 00:22:25,170 --> 00:22:25,569 532 00:22:25,569 --> 00:22:27,360 Pakiramdam ko gusto ko dapat kong Mayroon kendi dahil ako 533 00:22:27,360 --> 00:22:29,460 nais na dumura ito sa yarda. 534 00:22:29,460 --> 00:22:30,270 Ito ay kung ano ako pagpunta sa gawin sa susunod na linggo. 535 00:22:30,270 --> 00:22:31,436 Ito ay panatilihin kang guys matalim. 536 00:22:31,436 --> 00:22:32,560 537 00:22:32,560 --> 00:22:34,690 >> Kaya, itapon namin ang layo na unang kalahati, tama? 538 00:22:34,690 --> 00:22:35,670 ito ay mas mababa kaysa. 539 00:22:35,670 --> 00:22:39,325 Alam namin na ang lahat ng bagay sa na kaliwang bahagi 540 00:22:39,325 --> 00:22:41,700 ay magiging mas mababa kaysa sa kung ano aktwal kaming naghahanap ng para sa. 541 00:22:41,700 --> 00:22:43,491 Kaya, hindi na kailangang i- bigyang-pansin ito. 542 00:22:43,491 --> 00:22:45,120 Makalimutan lang ang tungkol dito. 543 00:22:45,120 --> 00:22:48,720 Kaya, ngayon tinitingnan namin ang aming kanang bahagi, at inaasahan naming sa gitna doon, 544 00:22:48,720 --> 00:22:50,510 at ngayon ito ay siyam. 545 00:22:50,510 --> 00:22:55,510 Kaya, 9 is-- --Everyone? 546 00:22:55,510 --> 00:22:57,470 Mas mataas kaysa sa kung ano kami ay naghahanap ng, tama? 547 00:22:57,470 --> 00:22:59,860 Kaya, kami ay pagpunta sa magtapon layo ng lahat ng bagay sa kanan. 548 00:22:59,860 --> 00:23:00,970 549 00:23:00,970 --> 00:23:01,940 Tulad na iyon. 550 00:23:01,940 --> 00:23:03,700 Ngayon, ang lahat ng namin ang natitira sa ay isa. 551 00:23:03,700 --> 00:23:07,760 Kaya naming suriin, ay ang isang ito kung ano ang kami iyong hinahanap? ito ay. 552 00:23:07,760 --> 00:23:08,970 Nakita namin kung ano ang gusto naming. 553 00:23:08,970 --> 00:23:10,440 554 00:23:10,440 --> 00:23:11,690 Kaya tapos na kami. 555 00:23:11,690 --> 00:23:12,550 Bilinear Search. 556 00:23:12,550 --> 00:23:15,740 >> At kung napansin mo, kami nagkaroon ng pitong input doon. 557 00:23:15,740 --> 00:23:24,320 Tatagal lamang sa amin tulad ng tatlong beses, ngunit kung gumagawa ka ng tulad ng isang bilyon, 558 00:23:24,320 --> 00:23:28,190 ka guys malaman kung gaano karaming mga hakbang na gagawin ito tumagal kung nagkaroon kami 4000000000 bagay? 559 00:23:28,190 --> 00:23:29,940 560 00:23:29,940 --> 00:23:30,455 Ang anumang mga hula? 561 00:23:30,455 --> 00:23:32,286 562 00:23:32,286 --> 00:23:33,960 Ito ay 32. 563 00:23:33,960 --> 00:23:37,110 32 mga hakbang upang makahanap ng isang bagay sa isang 4000000000 564 00:23:37,110 --> 00:23:39,650 element ng array dahil sa kapangyarihan ng dalawa. 565 00:23:39,650 --> 00:23:43,550 Kaya dalawang ay upang 32, ay sa apat na bilyon. 566 00:23:43,550 --> 00:23:50,430 >> Kaya medyo mabaliw kung paano ka pa rin sa loob ng tulad ng isang medyo maliit na bilang ng mga hakbang 567 00:23:50,430 --> 00:23:52,650 makahanap ng isang bagay sa 4000000000 elemento. 568 00:23:52,650 --> 00:23:55,730 Kaya sa na tala, kami ay pagpunta sa code na ito 569 00:23:55,730 --> 00:23:58,950 kaya ka guys maaari talagang uri ng makita kung paano ito gumagana. 570 00:23:58,950 --> 00:24:01,520 Ang lahat ng mga karapatan, sa gayon ay maaari code na guys. 571 00:24:01,520 --> 00:24:04,100 Pupunta ako upang ipaalam sa iyo guys makipag-usap para sa ilang sandali. 572 00:24:04,100 --> 00:24:07,970 Kilalanin ang mga tao sa paligid mo, na kung saan ay kung ano ang isang tao Nais mula sa huling seksyon. 573 00:24:07,970 --> 00:24:10,280 >> Kaya makakuha ng malaman ang mga tao sa paligid mo. 574 00:24:10,280 --> 00:24:11,305 Makipag-usap para sa ilang sandali. 575 00:24:11,305 --> 00:24:12,580 576 00:24:12,580 --> 00:24:15,730 At lahat ng gusto ko mula sa iyo guys ngayon lamang 577 00:24:15,730 --> 00:24:17,575 subukan upang lumikha ng isang balangkas ng pseudocode. 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 Whoa. 581 00:24:21,325 --> 00:24:23,320 582 00:24:23,320 --> 00:24:29,520 Lahat ng gusto ko mula sa iyo guys ay ikaw pagpunta lamang upang punan ang mga ito habang kaso. 583 00:24:29,520 --> 00:24:32,170 Kaya ako nag-set ang mga mas mataas na at mas mababang mga hangganan na 584 00:24:32,170 --> 00:24:35,250 Kumakatawan sa simula at pagtatapos ng aming array. 585 00:24:35,250 --> 00:24:40,440 At pupunta ka sa aktwal loop sa pamamagitan ng at malaman 586 00:24:40,440 --> 00:24:42,470 kung ano ang aming ginagawa sa loob ng ito habang loop. 587 00:24:42,470 --> 00:24:45,810 >> Kaya kung maaari mong malaman out-- Mayroon akong isang pahiwatig there-- ano ang mga kaso 588 00:24:45,810 --> 00:24:46,640 mayroon kaming dito? 589 00:24:46,640 --> 00:24:48,100 590 00:24:48,100 --> 00:24:51,560 Kaya kung nais mong malaman kung ang kaso, aalisin namin pseudocode mga 591 00:24:51,560 --> 00:24:53,350 at pagkatapos ay gagamitin namin ang aktwal na code sa kanila. 592 00:24:53,350 --> 00:24:55,330 At ito ay magiging, ako Sa tingin, sana ay idedetalye ito 593 00:24:55,330 --> 00:24:56,788 maging isang maliit na mas madali kaysa sa iyong inaasahan. 594 00:24:56,788 --> 00:24:57,554 595 00:24:57,554 --> 00:25:00,220 Dahil ito ay hindi na magkano ang code, talaga, na talagang cool. 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 >> MAG-AARAL: [hindi marinig]? 599 00:25:35,893 --> 00:25:36,984 600 00:25:36,984 --> 00:25:37,650 Instruktor: Oo. 601 00:25:37,650 --> 00:25:38,595 Nagkaroon ng isang bagay hanapin sa gitna. 602 00:25:38,595 --> 00:25:39,552 >> MAG-AARAL: Kaya maaari naming gamitin iyon. 603 00:25:39,552 --> 00:25:39,770 OK. 604 00:25:39,770 --> 00:25:40,603 >> Instruktor: Perpekto. 605 00:25:40,603 --> 00:25:42,950 Kaya iyon ang unang bagay na kailangan naming gawin. 606 00:25:42,950 --> 00:25:44,330 Kaya mahanap ang gitna. 607 00:25:44,330 --> 00:25:45,415 608 00:25:45,415 --> 00:25:45,915 Mahusay. 609 00:25:45,915 --> 00:25:47,770 610 00:25:47,770 --> 00:25:55,010 Kaya huwag kang magkaroon ng ideya kung paano namin maaari aktwal na mahanap ang gitna na may code? 611 00:25:55,010 --> 00:25:55,980 >> MAG-AARAL: Oo. 612 00:25:55,980 --> 00:25:57,000 n sa 2? 613 00:25:57,000 --> 00:25:58,500 614 00:25:58,500 --> 00:25:59,500 Instruktor: Kaya n sa 2. 615 00:25:59,500 --> 00:26:05,170 Kaya isang bagay upang tandaan ay ang baguhin ang iyong mga upper at lower mga hangganan. 616 00:26:05,170 --> 00:26:08,110 Patuloy naming constricting ang bahagi ng array kaming naghahanap sa. 617 00:26:08,110 --> 00:26:11,970 Kaya n sa 2 Gagana lamang para sa unang bagay na aming ginagawa. 618 00:26:11,970 --> 00:26:17,810 Kaya pagkuha ng upper at lower-alang, kung paano maaaring namin na gitnang elemento? 619 00:26:17,810 --> 00:26:20,640 Dahil gusto naming gitna sa pagitan ng mga upper at lower, tama? 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 >> MAG-AARAL: [hindi marinig]. 623 00:26:23,369 --> 00:26:26,170 624 00:26:26,170 --> 00:26:28,080 >> Instruktor: Kaya mayroon kaming ilang gitna. 625 00:26:28,080 --> 00:26:32,730 At makikita itong maging mas mataas na plus mas mababa sa 2. 626 00:26:32,730 --> 00:26:34,740 627 00:26:34,740 --> 00:26:35,690 Kahanga-hanga. 628 00:26:35,690 --> 00:26:36,570 May pumunta namin. 629 00:26:36,570 --> 00:26:37,280 Isang linya pababa. 630 00:26:37,280 --> 00:26:38,560 Ikaw guys ay sa iyong paraan. 631 00:26:38,560 --> 00:26:41,400 Kaya ngayon na mayroon namin ang aming gitna, ano ang gusto naming gawin? 632 00:26:41,400 --> 00:26:45,050 633 00:26:45,050 --> 00:26:45,900 In lamang pangkalahatang. 634 00:26:45,900 --> 00:26:47,734 Hindi mo na kailangang mag-code ito. 635 00:26:47,734 --> 00:26:48,335 Oo. 636 00:26:48,335 --> 00:26:49,210 MAG-AARAL: [hindi marinig]? 637 00:26:49,210 --> 00:27:00,310 638 00:27:00,310 --> 00:27:10,310 Instruktor: Kaya plus dahil ikaw ay paghahanap ng average na sa pagitan ng dalawang 639 00:27:10,310 --> 00:27:10,810 ng mga ito. 640 00:27:10,810 --> 00:27:11,890 641 00:27:11,890 --> 00:27:17,370 Kaya kung sa tingin mo ng mga ito bilang uri ng pagtaas sa mula sa gilid, 642 00:27:17,370 --> 00:27:21,640 isipin ang tungkol ito habang paparating ka sa gitna, gusto mo ba ng mga iyon. 643 00:27:21,640 --> 00:27:27,150 Kaya kung ikaw ay nasa magkabilang panig ng gitna, at mayroon kaming tulad ng 5 at 7. 644 00:27:27,150 --> 00:27:31,440 Kapag nagdagdag ka ng mga iyon nang magkakasama sa iyo makakuha ng 12, hatiin mo sa pamamagitan ng 2, 6. 645 00:27:31,440 --> 00:27:33,726 >> Minsan mahirap na kung bakit gumagana, 646 00:27:33,726 --> 00:27:35,600 ngunit kung nagtatrabaho ka sa pamamagitan ng isang halimbawa kung minsan, 647 00:27:35,600 --> 00:27:37,962 Makikita ito matulungan kang malaman kung dapat itong maging plus o minus. 648 00:27:37,962 --> 00:27:38,846 Oo. 649 00:27:38,846 --> 00:27:40,830 >> MAG-AARAL: [hindi marinig] nang eksakto sa gitna 650 00:27:40,830 --> 00:27:43,950 kung mayroon sila ng isang kaso kung saan maraming ng mas maliit na mga numero 651 00:27:43,950 --> 00:27:45,860 at tulad ng isang malaking bilang? 652 00:27:45,860 --> 00:27:49,750 >> Instruktor: Kaya ang kailangan mo ay sa gitna ng array. 653 00:27:49,750 --> 00:27:53,010 Kaya kung mayroon kang isang bungkos ng mga maliliit na mga numero at pagkatapos ay isang talagang malaking bilang 654 00:27:53,010 --> 00:27:54,799 sa dulo, hindi ito mahalaga. 655 00:27:54,799 --> 00:27:56,840 Lahat na mahalaga ay ang sila ay pinagsunod-sunod, tulad mo 656 00:27:56,840 --> 00:27:59,339 Gusto upang tumingin sa gitna ng ang array dahil hindi mo pa rin 657 00:27:59,339 --> 00:28:00,700 pagpipiraso ang iyong problema sa kalahati. 658 00:28:00,700 --> 00:28:03,020 659 00:28:03,020 --> 00:28:03,680 Ayos. 660 00:28:03,680 --> 00:28:06,430 Kaya ngayon na mayroon kami sa gitna, ano ang gagawin namin susunod? 661 00:28:06,430 --> 00:28:07,150 >> MAG-AARAL: Ihambing. 662 00:28:07,150 --> 00:28:08,150 Instruktor: ihambing ang. 663 00:28:08,150 --> 00:28:11,670 Kaya ihambing ang gitnang sa value_wanted. 664 00:28:11,670 --> 00:28:14,300 665 00:28:14,300 --> 00:28:15,160 Ayos. 666 00:28:15,160 --> 00:28:17,950 Kaya nakikita mo dito mayroon kaming ang halaga na ito nais naming dito. 667 00:28:17,950 --> 00:28:22,012 668 00:28:22,012 --> 00:28:23,095 Tandaan na ito ay isang array. 669 00:28:23,095 --> 00:28:24,100 670 00:28:24,100 --> 00:28:26,970 Kaya gitna ay tumutukoy sa index. 671 00:28:26,970 --> 00:28:29,785 Kaya gusto naming gawin ang mga halaga ng gitna. 672 00:28:29,785 --> 00:28:32,380 673 00:28:32,380 --> 00:28:35,650 Huwag kalimutan kung nais mong upang ihambing, i-double equals. 674 00:28:35,650 --> 00:28:38,250 Gawin mong single katumbas ikaw ay lamang ng pagpunta sa reassign ito, 675 00:28:38,250 --> 00:28:41,090 at pagkatapos, siyempre, ito ay magiging ang halaga na gusto mo. 676 00:28:41,090 --> 00:28:42,300 Kaya huwag gawin iyon. 677 00:28:42,300 --> 00:28:44,350 >> Kaya kami ng pagpunta upang makita kung ang mga halaga sa gitna 678 00:28:44,350 --> 00:28:46,460 ay katumbas ng halaga na gusto namin. 679 00:28:46,460 --> 00:28:47,749 680 00:28:47,749 --> 00:28:48,790 Huwag kalimutan ang iyong brace. 681 00:28:48,790 --> 00:28:50,520 682 00:28:50,520 --> 00:28:52,235 Dropbox dapat pumunta ang layo. 683 00:28:52,235 --> 00:28:54,140 684 00:28:54,140 --> 00:28:56,200 Kaya ano ang gagawin natin sa kasong ito? 685 00:28:56,200 --> 00:28:59,360 Kung ito ay kung ano ang nais naming ibalik? 686 00:28:59,360 --> 00:29:01,510 687 00:29:01,510 --> 00:29:02,626 Sinusubukan naming sabihin. 688 00:29:02,626 --> 00:29:03,440 >> MAG-AARAL: I-print off. 689 00:29:03,440 --> 00:29:05,314 >> Instruktor: Well, namin ayaw mong i-print. 690 00:29:05,314 --> 00:29:08,220 Kaya ito ay isang bool dito, kaya kami Gusto upang bumalik true o false. 691 00:29:08,220 --> 00:29:12,280 Sinasabi namin, ay ang bilang na ito isang [? RRA? ?] Kaya kung ito ay, 692 00:29:12,280 --> 00:29:13,788 bumalik lang namin ito totoo. 693 00:29:13,788 --> 00:29:16,780 694 00:29:16,780 --> 00:29:17,760 Kung ang maaari kong spell totoo. 695 00:29:17,760 --> 00:29:18,830 696 00:29:18,830 --> 00:29:20,805 >> MAG-AARAL: Bakit hindi mo bumalik sa zero? 697 00:29:20,805 --> 00:29:22,930 Instruktor: Kaya maaari mo bumalik sa zero kung ginusto mo. 698 00:29:22,930 --> 00:29:26,780 Ngunit sa kasong ito dahil Ibinabalik ng aming mga isang bool, 699 00:29:26,780 --> 00:29:28,962 kailangan namin upang bumalik alinman true o false. 700 00:29:28,962 --> 00:29:30,920 MAG-AARAL: Kapag handa ka sinasabi boolean expression, 701 00:29:30,920 --> 00:29:33,450 maaari mo itong itakda katumbas ng false? 702 00:29:33,450 --> 00:29:39,860 Tulad kapag gusto kong sabihin, kung ang kundisyong ito Hindi nakilala, tulad ng ay katumbas ng mas mataas na false. 703 00:29:39,860 --> 00:29:42,332 Maaapektuhan ba nito ang maunawaan kung mo lamang ilagay false sa kabilang panig? 704 00:29:42,332 --> 00:29:43,040 Instruktor: Oo. 705 00:29:43,040 --> 00:29:44,820 Kaya talagang kung ikaw ay kailanman paggawa ng isang bagay 706 00:29:44,820 --> 00:29:49,600 tulad ay mas mataas o mas mababa, na nagbabalik totoo o hindi 707 00:29:49,600 --> 00:29:53,850 at ito ay talagang maganda ang estilo sa sabihin nating katumbas ay katumbas ng totoo o equals 708 00:29:53,850 --> 00:29:54,840 ay katumbas ng false. 709 00:29:54,840 --> 00:30:00,210 Na gusto mong gamitin sa resultang iyon bilang sarili nito bilang iyong tseke. 710 00:30:00,210 --> 00:30:04,720 711 00:30:04,720 --> 00:30:05,860 Hindi kung ano ang nais ko. 712 00:30:05,860 --> 00:30:08,150 713 00:30:08,150 --> 00:30:09,240 Iyon ay kung ano ang nais ko. 714 00:30:09,240 --> 00:30:13,205 Kaya sa kaso ng ka nagtatanong tungkol sa isang bagay tulad ng i-save ito sa c. 715 00:30:13,205 --> 00:30:16,320 716 00:30:16,320 --> 00:30:25,150 >> Kaya kung mayroon kaming int pangunahing (walang bisa) at isang bagay na katulad nito. 717 00:30:25,150 --> 00:30:31,922 At mayroon kang kung ang itaas ng ilang mga input at ikaw ay 718 00:30:31,922 --> 00:30:33,630 na nagtatanong kung maaari mong gawin isang bagay na tulad nito? 719 00:30:33,630 --> 00:30:35,010 720 00:30:35,010 --> 00:30:35,679 Mag-right? 721 00:30:35,679 --> 00:30:37,470 MAG-AARAL: ako ay sinusubukan upang gawin ito [hindi marinig]. 722 00:30:37,470 --> 00:30:38,450 Dahil kung it's-- 723 00:30:38,450 --> 00:30:39,200 Instruktor: I-right. 724 00:30:39,200 --> 00:30:41,197 Kaya gusto mo ito upang maging totoo, tama? 725 00:30:41,197 --> 00:30:41,780 MAG-AARAL: Oo. 726 00:30:41,780 --> 00:30:45,960 Instruktor: Kaya sa kasong ito sa iyo Gusto ito upang maisagawa kung ito ay hindi totoo. 727 00:30:45,960 --> 00:30:50,510 Kaya ang mga cool na bagay na gagawin mo mayroong ito. 728 00:30:50,510 --> 00:30:52,900 729 00:30:52,900 --> 00:30:55,650 Kaya tandaan tandang point negates bagay? 730 00:30:55,650 --> 00:30:58,270 Sinasabi nito [hindi marinig] ay nangangahulugang hindi. 731 00:30:58,270 --> 00:31:03,590 Kaya kung tinitingnan namin ang lang ito bahagi dito, ikaw ay 732 00:31:03,590 --> 00:31:05,740 sabihin na sinusuri upang false hangga't gusto mo. 733 00:31:05,740 --> 00:31:06,790 734 00:31:06,790 --> 00:31:09,880 Hindi totoo ay totoo na Nangangahulugan ito ay maisagawa. 735 00:31:09,880 --> 00:31:11,037 Ay na magkaroon ng kahulugan? 736 00:31:11,037 --> 00:31:11,620 MAG-AARAL: Oo. 737 00:31:11,620 --> 00:31:12,453 Instruktor: Kahanga-hanga. 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 Kaya maaari naming ibalik lamang tunay na sa kasong ito. 741 00:31:16,330 --> 00:31:20,357 Kaya ngayon ay mayroon kaming dalawang iba pang mga kaso sa kasong ito. 742 00:31:20,357 --> 00:31:21,565 Ano ang aming dalawang iba pang mga kaso? 743 00:31:21,565 --> 00:31:31,610 744 00:31:31,610 --> 00:31:32,900 Hayaan gawin ito sa ganitong paraan ni lamang. 745 00:31:32,900 --> 00:31:40,660 Kaya simulan na may iba ipaalam sa kung halaga sa gitna 746 00:31:40,660 --> 00:31:43,230 ay mas mababa sa halaga na gusto namin. 747 00:31:43,230 --> 00:31:47,200 748 00:31:47,200 --> 00:31:52,020 Kaya ang aming halaga sa gitna Mababa kaysa sa halaga na kaming naghahanap ng para sa. 749 00:31:52,020 --> 00:31:53,765 750 00:31:53,765 --> 00:31:56,720 >> Kaya kung saan nakagapos gagawin mo Sa tingin gusto naming i-update? 751 00:31:56,720 --> 00:31:57,870 752 00:31:57,870 --> 00:31:58,780 Upper o mas mababa? 753 00:31:58,780 --> 00:32:01,440 754 00:32:01,440 --> 00:32:01,940 Upper? 755 00:32:01,940 --> 00:32:03,230 756 00:32:03,230 --> 00:32:06,470 Kaya kung aling mga bahagi ng array pupunta kami sa tumitingin ka sa? 757 00:32:06,470 --> 00:32:07,500 >> MAG-AARAL: Ang mas mababa. 758 00:32:07,500 --> 00:32:09,750 >> Instruktor: Aming kami makapupunta na tumitingin sa kaliwa. 759 00:32:09,750 --> 00:32:11,120 Kaya iba kung maliit na halaga ay mas mababa. 760 00:32:11,120 --> 00:32:14,730 Kaya ang gitnang halaga dito Mas mababa sa kung ano ang gusto namin. 761 00:32:14,730 --> 00:32:17,202 Kaya gusto naming gawin ang kanang bahagi ng aming array. 762 00:32:17,202 --> 00:32:18,910 Kaya kami ng pagpunta sa -update ang aming mas mababang bound. 763 00:32:18,910 --> 00:32:20,210 764 00:32:20,210 --> 00:32:23,020 Kaya gagamitin namin reassign aming mas mababa. 765 00:32:23,020 --> 00:32:25,221 At kung ano ang iyong palagay mas mababang ay dapat na? 766 00:32:25,221 --> 00:32:26,304 MAG-AARAL: Ang gitnang halaga? 767 00:32:26,304 --> 00:32:27,446 768 00:32:27,446 --> 00:32:28,820 Instruktor: Kaya gitna value-- 769 00:32:28,820 --> 00:32:30,136 MAG-AARAL: Plus 1. 770 00:32:30,136 --> 00:32:31,010 Instruktor: --plus 1. 771 00:32:31,010 --> 00:32:32,300 772 00:32:32,300 --> 00:32:34,380 Maaari sinuman sabihin sa akin kung bakit mayroon kaming na plus 1? 773 00:32:34,380 --> 00:32:35,730 >> MAG-AARAL: [? Walang halaga?] ay mas pantay-pantay dito. 774 00:32:35,730 --> 00:32:36,120 >> Instruktor: I-right. 775 00:32:36,120 --> 00:32:38,661 Dahil alam namin na ang aming gitnang halaga ay hindi katumbas ng 776 00:32:38,661 --> 00:32:42,750 ito at gusto naming ibukod ito mula sa lahat ng mga kasunod na mga paghahanap. 777 00:32:42,750 --> 00:32:46,360 Kung nakalimutan na plus 1, ito ay i loop walang katiyakan. 778 00:32:46,360 --> 00:32:49,620 At makikita mo lamang ay nahuli sa isang walang katapusang loop at pagkatapos ay makikita mo segfault 779 00:32:49,620 --> 00:32:50,370 at mga bagay maging masama. 780 00:32:50,370 --> 00:32:54,780 Kaya laging tiyakin na ikaw ay hindi kabilang ang halaga na iyong lang 781 00:32:54,780 --> 00:32:55,380 tumingin sa. 782 00:32:55,380 --> 00:32:58,530 Kaya kami na ang bahala ng na ng plus 1. 783 00:32:58,530 --> 00:33:04,840 >> Kaya ngayon ay may namin ang aming huling kondisyon na ako palagi para sa kapanan ng kaligtasan 784 00:33:04,840 --> 00:33:12,664 maaari mong tingnan dito, iba kung halaga sa sa gitna ay mas malaki sa halaga 785 00:33:12,664 --> 00:33:13,163 gusto naming. 786 00:33:13,163 --> 00:33:16,260 787 00:33:16,260 --> 00:33:20,230 Iyon ay nangangahulugan na gusto naming kaliwang kalahati. 788 00:33:20,230 --> 00:33:21,350 789 00:33:21,350 --> 00:33:23,260 Kaya kung saan ang isa ay namin pagpunta upang i-update? 790 00:33:23,260 --> 00:33:23,760 Itaas. 791 00:33:23,760 --> 00:33:25,470 792 00:33:25,470 --> 00:33:26,970 At kung ano ang isang ito ng pagpunta sa kasing-halaga? 793 00:33:26,970 --> 00:33:31,630 794 00:33:31,630 --> 00:33:33,690 Gitnang minus 1 dahil, siyempre, gusto naming 795 00:33:33,690 --> 00:33:38,370 upang matiyak na hindi kami ng pagtingin sa na halaga gitna muli. 796 00:33:38,370 --> 00:33:41,830 797 00:33:41,830 --> 00:33:45,110 At pagkatapos ay may namin ito. 798 00:33:45,110 --> 00:33:45,610 Iyan na ang lahat. 799 00:33:45,610 --> 00:33:46,820 Iyon lang ang binary paghahanap ay. 800 00:33:46,820 --> 00:33:48,190 Hindi na masama, tama? 801 00:33:48,190 --> 00:33:51,590 Ito ay tulad ng 10 mga linya ng code sa white space. 802 00:33:51,590 --> 00:33:57,510 Kaya napaka-makapangyarihan, napaka-kapaki-pakinabang, ay sa iyo maging ang paggamit nito sa isa sa iyong ibang pagkakataon psets. 803 00:33:57,510 --> 00:33:59,360 Siguro hindi ang isang ito, ngunit sa ibang pagkakataon. 804 00:33:59,360 --> 00:34:00,670 Kaya matuto ito. 805 00:34:00,670 --> 00:34:01,510 Pag-ibig ito. 806 00:34:01,510 --> 00:34:02,980 Ito ay ituturing mo din. 807 00:34:02,980 --> 00:34:05,370 Kaya ang sinuman ay may anumang tanong sa binary paghahanap? 808 00:34:05,370 --> 00:34:06,196 Oo. 809 00:34:06,196 --> 00:34:09,840 >> MAG-AARAL: ito mahalaga ba kung ang iyong n ay kahit na o kakaiba? 810 00:34:09,840 --> 00:34:10,750 >> Instruktor: Hindi. 811 00:34:10,750 --> 00:34:18,150 Dahil cast namin ito sa gitna ng isang int, ito ay pungusan lamang ito. 812 00:34:18,150 --> 00:34:21,600 Kaya mananatili itong isang integer at magpo ito Sa kalaunan-uri-uriin sa pamamagitan ng lahat. 813 00:34:21,600 --> 00:34:23,909 Kaya hindi mo kailangang mag-alala tungkol sa na. 814 00:34:23,909 --> 00:34:24,580 Ang bawat tao'y magandang? 815 00:34:24,580 --> 00:34:25,659 816 00:34:25,659 --> 00:34:26,850 Kahanga-hanga. 817 00:34:26,850 --> 00:34:27,919 Ayos. 818 00:34:27,919 --> 00:34:30,836 Kaya, mo guys nakuha ko ito. 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 Kaya bilang pakikipag-usap namin ay tungkol sa, alam ko Binanggit ni David ang pagiging kumplikado runtimes. 823 00:34:43,270 --> 00:34:44,420 824 00:34:44,420 --> 00:34:50,340 >> Kaya sa pinakamahusay na mga kaso, ito lamang isa, na tinatawag naming tuluy-tuloy na oras. 825 00:34:50,340 --> 00:34:51,909 Maaari sinuman sabihin sa akin kung bakit na maaaring maging? 826 00:34:51,909 --> 00:34:52,969 827 00:34:52,969 --> 00:34:55,800 Anong uri ng sitwasyon ay nilalagay na? 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 >> MAG-AARAL: [hindi marinig] first-- 831 00:34:59,926 --> 00:35:00,789 832 00:35:00,789 --> 00:35:03,830 Instruktor: Kaya sa gitna pagiging unang elemento na nanggaling naming, tama? 833 00:35:03,830 --> 00:35:08,167 Kaya alinman sa isang hanay ng mga isa o anumang kaming naghahanap ng para lamang 834 00:35:08,167 --> 00:35:09,750 ang mangyayari sa maging bahagyang lasa magdutdot sa gitna. 835 00:35:09,750 --> 00:35:11,190 836 00:35:11,190 --> 00:35:13,380 Kaya na ang aming pinakamahusay na kaso. 837 00:35:13,380 --> 00:35:17,540 Makakakuha ka sa tunay na problema, malamang na hindi pagpunta sa maabot [hindi marinig] na madalas. 838 00:35:17,540 --> 00:35:18,667 839 00:35:18,667 --> 00:35:19,750 Ano ang tungkol sa aming mga pinakamasamang sitwasyon? 840 00:35:19,750 --> 00:35:21,270 Ang aming mga pinakamasamang sitwasyon ay log n. 841 00:35:21,270 --> 00:35:25,360 At iyon ay gagawin sa buong kapangyarihan ng dalawang bagay na usapan ko ang tungkol. 842 00:35:25,360 --> 00:35:30,930 >> Kaya sa mga pinakamasamang sitwasyon ay ito ibig sabihin na namin ay may upang tumaga ang array pababa 843 00:35:30,930 --> 00:35:33,270 hanggang sa ito ay isang elemento ng isa. 844 00:35:33,270 --> 00:35:34,810 845 00:35:34,810 --> 00:35:38,930 Kaya nagkaroon kami upang tumaga ito pababa sa kalahati nang maraming beses hangga't posibleng namin ng dati. 846 00:35:38,930 --> 00:35:41,430 Iyon ang dahilan kung bakit ito log n dahil panatilihin ang paghahati ng dalawang mo lamang. 847 00:35:41,430 --> 00:35:42,890 848 00:35:42,890 --> 00:35:45,830 Kaya pagpapalagay, bagay na kailangang malaman kung ikaw ay kailanman 849 00:35:45,830 --> 00:35:48,050 pagpunta sa gumamit ng binary paghahanap. 850 00:35:48,050 --> 00:35:50,680 Dapat na pinagsunod-sunod sa iyong mga elemento. 851 00:35:50,680 --> 00:35:53,890 Ang mga ito ay na pinagsunod-sunod dahil iyon ang tanging paraan sa iyo 852 00:35:53,890 --> 00:35:57,060 malalaman kung ikaw ay magagawang itapon ang kalahati nito. 853 00:35:57,060 --> 00:36:00,260 >> Kung nagkaroon ka ng ito ginulo bag ng mga numero at iyong sinasabi, 854 00:36:00,260 --> 00:36:05,380 OK, pupunta ako upang suriin ang gitnang number at ang numero Naghahanap ako 855 00:36:05,380 --> 00:36:08,510 Mas mababa na, lamang pupunta ako sa nagkataon dumura isang kalahati. 856 00:36:08,510 --> 00:36:11,130 Hindi mo malalaman kung ang iyong numero sa na ang ibang kalahati. 857 00:36:11,130 --> 00:36:12,655 Ang iyong listahan ay dapat pinagsunod-sunod. 858 00:36:12,655 --> 00:36:14,030 859 00:36:14,030 --> 00:36:16,560 Pati na rin, maaaring ito ay pagpunta nang maaga nang kaunti, 860 00:36:16,560 --> 00:36:18,360 ngunit kailangan mong magkaroon ng random na pag-access. 861 00:36:18,360 --> 00:36:21,940 Kailangan mong magagawang lamang pumunta sa gitna na elemento. 862 00:36:21,940 --> 00:36:25,110 Kung mayroon kang upang tumawid sa pamamagitan ng isang bagay 863 00:36:25,110 --> 00:36:28,630 o ito ay magdadala sa iyo ng dagdag na hakbang upang makapunta sa gitna na elemento, 864 00:36:28,630 --> 00:36:31,750 hindi ito mag-log n ngayon dahil nagdaragdag ka pang trabaho ito. 865 00:36:31,750 --> 00:36:34,800 At ito ay gumawa ng isang maliit na higit pang kahulugan sa dalawang linggo, 866 00:36:34,800 --> 00:36:37,950 ngunit ko lang ang uri ng nais na maglagay ng paunang salita, magbibigay sa iyo ng guys ng ideya ng kung ano ang 867 00:36:37,950 --> 00:36:38,999 darating. 868 00:36:38,999 --> 00:36:40,790 Ngunit ang mga ay ang dalawang Mahalaga pagpapalagay 869 00:36:40,790 --> 00:36:44,804 na kailangan mo para sa isang binary listahan. 870 00:36:44,804 --> 00:36:45,720 Tiyakin na ito ay pinagsunod-sunod. 871 00:36:45,720 --> 00:36:47,920 Iyan ang malaking isa para sa ka guys ngayon. 872 00:36:47,920 --> 00:36:52,170 At sa na maaari naming pumunta sa ang natitirang bahagi ng aming mga klase. 873 00:36:52,170 --> 00:36:56,444 Kaya apat na sorts-- bubble, pagpapasok, pagpili, at pag-merge. 874 00:36:56,444 --> 00:36:57,485 Ang mga ito ang lahat ng uri ng mga cool. 875 00:36:57,485 --> 00:37:02,860 Kung guys magpasya upang kumuha ng CS 124, Matututunan mo ang tungkol sa lahat ng uri ng mga klase. 876 00:37:02,860 --> 00:37:07,575 At kung ikaw ay isang XKCD fan, may ay isang talagang cool na comic tungkol sa 877 00:37:07,575 --> 00:37:11,530 tulad ng talagang hindi epektibong mga uri, na aking lubos na inirerekomenda ka ng pagpunta sa tumingin sa. 878 00:37:11,530 --> 00:37:16,170 Ang isa sa mga ito ay tulad ng sindak-uri-uriin, na ay tulad ng, oh hindi, bumalik random na array. 879 00:37:16,170 --> 00:37:16,991 Pag-shutdown system. 880 00:37:16,991 --> 00:37:17,490 Mag-iwan. 881 00:37:17,490 --> 00:37:19,070 882 00:37:19,070 --> 00:37:21,500 Kaya geeky katatawanan ay palaging mabuti. 883 00:37:21,500 --> 00:37:22,620 884 00:37:22,620 --> 00:37:25,750 >> Kaya ang tandaan sinuman uri ng tulad lamang ng isang pangkalahatang ideya 885 00:37:25,750 --> 00:37:27,810 ng kung paano gumagana bubble-uuri. 886 00:37:27,810 --> 00:37:31,130 887 00:37:31,130 --> 00:37:32,155 Tandaan mo? 888 00:37:32,155 --> 00:37:32,755 >> MAG-AARAL: Oo. 889 00:37:32,755 --> 00:37:33,970 >> Instruktor: Pumunta para dito. 890 00:37:33,970 --> 00:37:38,980 >> MAG-AARAL: Kaya ka ng pagpunta sa pamamagitan at kung ito ay mas malaki, pagkatapos ay i-swap mo ang dalawa. 891 00:37:38,980 --> 00:37:39,820 >> Instruktor: MM-Hm. 892 00:37:39,820 --> 00:37:40,564 Mismong. 893 00:37:40,564 --> 00:37:41,730 Kaya umulit sa pamamagitan mo lamang. 894 00:37:41,730 --> 00:37:43,050 Tingnan kang dalawang numero. 895 00:37:43,050 --> 00:37:46,510 Kung ang isa bago ay mas malaki kaysa sa isa pagkatapos, 896 00:37:46,510 --> 00:37:50,230 lamang-swap mo ang mga ito upang sa sa ganitong paraan ang lahat ng mga mas mataas na mga numero 897 00:37:50,230 --> 00:37:54,990 bubble up patungo sa dulo ng listahan at ang lahat ng mga mas mababang mga bilang bubble pababa. 898 00:37:54,990 --> 00:37:59,355 >> Ipakita mo ba siya guys ang cool na tunog ng epekto sa pag-uuri ng video? 899 00:37:59,355 --> 00:38:00,480 Ito ay uri ng cool. 900 00:38:00,480 --> 00:38:01,510 901 00:38:01,510 --> 00:38:05,200 Kaya tulad ng sinabi ni Robert, ang algorithm na hakbang mo pa lamang sa listahan, 902 00:38:05,200 --> 00:38:07,930 pagpapalit ang katabing mga halaga kung wala ang mga ito sa pagkakasunud-sunod. 903 00:38:07,930 --> 00:38:10,975 At pagkatapos ay magpatuloy lang sa pag-uulit hanggang hindi mo na gumawa ng anumang mga swaps. 904 00:38:10,975 --> 00:38:11,990 905 00:38:11,990 --> 00:38:12,740 Kaya hindi masama, tama? 906 00:38:12,740 --> 00:38:14,080 907 00:38:14,080 --> 00:38:16,319 Kaya mayroon lang namin ng isang mabilis na halimbawa dito. 908 00:38:16,319 --> 00:38:18,360 Kaya ito ay pagpunta sa uri-uriin ang mga ito sa pataas na pagkakasunod-sunod. 909 00:38:18,360 --> 00:38:19,470 910 00:38:19,470 --> 00:38:23,470 Kaya kapag pumunta kami sa pamamagitan ng mga unang panahon, inaasahan naming sa pamamagitan ng walong 911 00:38:23,470 --> 00:38:26,880 at anim ay malinaw naman hindi sa pagkakasunud-sunod, swap namin ang mga ito. 912 00:38:26,880 --> 00:38:27,985 >> Kaya tingnan ang susunod na isa. 913 00:38:27,985 --> 00:38:29,430 Eight at apat na wala sa pagkakasunud-sunod. 914 00:38:29,430 --> 00:38:30,450 Magpalit ang mga ito. 915 00:38:30,450 --> 00:38:32,530 At pagkatapos ay walong at dalawang, magpalit ang mga ito. 916 00:38:32,530 --> 00:38:33,470 May pumunta namin. 917 00:38:33,470 --> 00:38:39,519 Kaya pagkatapos ng iyong unang pass, mo malaman na ang iyong pinakamalaking bilang 918 00:38:39,519 --> 00:38:41,810 ay magiging lahat ng mga paraan sa itaas dahil ito ay lamang 919 00:38:41,810 --> 00:38:44,210 magiging palagiang mas malaki kaysa sa lahat ng iba pa 920 00:38:44,210 --> 00:38:46,810 at ito lamang ang pagpunta sa bubble hanggang ang lahat ng mga paraan sa dulo doon. 921 00:38:46,810 --> 00:38:48,226 Sinusuportahan ba na saysay sa lahat? 922 00:38:48,226 --> 00:38:48,560 923 00:38:48,560 --> 00:38:49,060 Ayos. 924 00:38:49,060 --> 00:38:51,310 925 00:38:51,310 --> 00:38:53,920 >> Kaya pagkatapos ay tinitingnan namin ang aming ikalawang pass. 926 00:38:53,920 --> 00:38:54,980 Anim at apat na, lumipat. 927 00:38:54,980 --> 00:38:55,920 Anim at dalawang, lumipat. 928 00:38:55,920 --> 00:38:58,700 At ngayon ay mayroon kaming ilang mga bagay sa pagkakasunud-sunod. 929 00:38:58,700 --> 00:39:02,240 Kaya para sa bawat pass na namin gumawa sa pamamagitan ng aming buong listahan, 930 00:39:02,240 --> 00:39:06,320 alam namin na tulad na maraming mga numero sa pagtatapos ay na-pinagsunod-sunod. 931 00:39:06,320 --> 00:39:07,690 932 00:39:07,690 --> 00:39:09,610 Kaya ang ginagawa namin sa isang third pass, na kung saan ay isa swap. 933 00:39:09,610 --> 00:39:10,860 934 00:39:10,860 --> 00:39:15,910 At pagkatapos ay sa aming ika-apat na pumasa, mayroon kaming zero slot. 935 00:39:15,910 --> 00:39:18,570 At alam namin na ang aming array ay pinagsunod-sunod. 936 00:39:18,570 --> 00:39:20,900 >> At iyon ay ang malaki bagay na may bubble-uuri. 937 00:39:20,900 --> 00:39:23,720 Alam namin na kung kailan namin may zero swaps, na 938 00:39:23,720 --> 00:39:26,497 ay nangangahulugan na ang lahat ng bagay ay nasa kumpletong order. 939 00:39:26,497 --> 00:39:27,580 Ito ay uri ng kung paano namin tingnan. 940 00:39:27,580 --> 00:39:28,740 941 00:39:28,740 --> 00:39:36,480 Kaya tayo ay pupunta rin sa code ng bubble -uri-uriin na rin ay hindi na masama. 942 00:39:36,480 --> 00:39:38,120 Wala sa mga ito ay na masama. 943 00:39:38,120 --> 00:39:40,210 Alam ko maaari silang tila isang maliit na nakakatakot. 944 00:39:40,210 --> 00:39:42,124 Alam ko noong kinuha ko klase, kahit na ako 945 00:39:42,124 --> 00:39:44,290 ay nagtuturo ng klase para sa sa unang pagkakataon noong nakaraang taon, 946 00:39:44,290 --> 00:39:46,165 Ako ay tulad ng, kung paano ang gagawin ko ito? 947 00:39:46,165 --> 00:39:48,540 Nag-saysay sa teorya, ngunit paano namin talagang gawin ito? 948 00:39:48,540 --> 00:39:51,420 Aling ang dahilan kung bakit gusto ko ring maglakad sa pamamagitan ng code sa iyo guys dito. 949 00:39:51,420 --> 00:39:54,915 Kaya ba akong magkaroon ng isang pseudocode para sa iyo guys oras na ito. 950 00:39:54,915 --> 00:39:55,950 951 00:39:55,950 --> 00:39:58,970 Kaya panatilihin ito lamang sa isip bilang Ikinalulungkot namin na sa pagbabago sa paglipas. 952 00:39:58,970 --> 00:40:04,210 Kaya mayroon kaming ilang mga sagot na Sinusubaybayan ng aming swaps, 953 00:40:04,210 --> 00:40:08,370 dahil kailangan namin upang matiyak na na Sinusuri namin iyon. 954 00:40:08,370 --> 00:40:11,830 At umulit namin ang buong array tulad ng ginawa lang namin sa halimbawang ito. 955 00:40:11,830 --> 00:40:12,900 956 00:40:12,900 --> 00:40:17,325 Kung ang elemento ng bago ay mas malaki sa ang elemento pagkatapos kung saan kami ay sa, 957 00:40:17,325 --> 00:40:20,760 swap namin ang mga ito at kami dinagdagan aming counter dahil sa lalong madaling swap namin, 958 00:40:20,760 --> 00:40:23,850 Gusto naming ipaalam sa aming mga counter alam na. 959 00:40:23,850 --> 00:40:26,247 Ang anumang mga katanungan doon? 960 00:40:26,247 --> 00:40:27,580 Isang bagay na tila nakakatawa sa paglipas dito. 961 00:40:27,580 --> 00:40:29,225 962 00:40:29,225 --> 00:40:32,350 MAG-AARAL: Huwag mong itakda ang counter sa zero sa tuwing pumupunta ka sa pamamagitan ng loop? 963 00:40:32,350 --> 00:40:34,339 Huwag mong panatilihin ang pagpunta pabalik sa zero sa bawat panahon? 964 00:40:34,339 --> 00:40:35,505 Instruktor: Hindi kinakailangan. 965 00:40:35,505 --> 00:40:39,710 Kaya kung ano ang mangyayari ay pumunta kami sa pamamagitan dito. 966 00:40:39,710 --> 00:40:43,830 Kaya gawin habang, tandaan, ito ay nagsasagawa ng isang beses nang walang mabibigo. 967 00:40:43,830 --> 00:40:46,480 Kaya ito ang nangyayari upang itakda ang counter katumbas ng zero, 968 00:40:46,480 --> 00:40:48,070 pagkatapos ito ay pagpunta upang umulit sa pamamagitan ng. 969 00:40:48,070 --> 00:40:50,590 Bilang ito iterates sa pamamagitan ng, Maa-update ito counter. 970 00:40:50,590 --> 00:40:51,870 971 00:40:51,870 --> 00:40:56,900 Bilang ito ina-update ng counter, kapag ito ay tapos na, kapag naabot ang dulo ng array, 972 00:40:56,900 --> 00:41:00,830 kung ang aming listahan ay hindi na pinagsunod-sunod, ay na-update counter. 973 00:41:00,830 --> 00:41:01,840 974 00:41:01,840 --> 00:41:07,150 >> Kaya gayon ito sumusuri ang kundisyon at ito sabi, OK, ang counter mas mataas sa zero. 975 00:41:07,150 --> 00:41:09,290 Kung ito ay, gawin itong muli. 976 00:41:09,290 --> 00:41:14,340 Gusto mong i-reset nang sa gayon ay kapag pumunta sa pamamagitan, ng counter ay katumbas ng zero. 977 00:41:14,340 --> 00:41:18,240 Kung pumunta ka sa pamamagitan ng isang Pinagbukud-bukod array, walang magbabago, 978 00:41:18,240 --> 00:41:21,355 ito nabigo, at ibalik ang pinagsunod-sunod na listahan. 979 00:41:21,355 --> 00:41:23,104 980 00:41:23,104 --> 00:41:24,020 Sinusuportahan ba na saysay? 981 00:41:24,020 --> 00:41:24,940 982 00:41:24,940 --> 00:41:26,356 MAG-AARAL: Ito maaari sa ilang sandali. 983 00:41:26,356 --> 00:41:27,147 Instruktor: OK. 984 00:41:27,147 --> 00:41:28,980 Kung mayroong anumang iba pang tanong na ito ay up. 985 00:41:28,980 --> 00:41:30,180 986 00:41:30,180 --> 00:41:30,680 Oo. 987 00:41:30,680 --> 00:41:33,760 >> MAG-AARAL: Ano ang gagawin ang pag-andar maging para sa pagpapalit ng mga elemento? 988 00:41:33,760 --> 00:41:36,900 >> Instruktor: Kaya maaari naming aktwal na magsulat na kung kami ay pagpunta sa ngayon. 989 00:41:36,900 --> 00:41:37,801 990 00:41:37,801 --> 00:41:38,300 Ayos. 991 00:41:38,300 --> 00:41:42,155 Kaya sa na tala, Alison ay pagpunta upang bumalik sa appliance. 992 00:41:42,155 --> 00:41:43,080 Ito ay magiging masaya. 993 00:41:43,080 --> 00:41:45,170 994 00:41:45,170 --> 00:41:47,390 At mayroon kaming magandang bubble-uri-uriin bagay dito. 995 00:41:47,390 --> 00:41:50,800 Kaya na ginawa ko sa pagbibisikleta sa pamamagitan ng array. 996 00:41:50,800 --> 00:41:53,030 Mayroon kaming aming swaps na ay katumbas ng zero. 997 00:41:53,030 --> 00:41:54,480 998 00:41:54,480 --> 00:41:58,440 Kaya gusto namin magpalit ng katabing mga elemento kung sila ay sira. 999 00:41:58,440 --> 00:42:03,020 Kaya ang unang bagay na kailangan namin upang huwag ay umulit sa pamamagitan ng aming array. 1000 00:42:03,020 --> 00:42:04,500 1001 00:42:04,500 --> 00:42:08,260 >> Kaya kung paano sa tingin mo maaari naming umulit sa pamamagitan ng aming array? 1002 00:42:08,260 --> 00:42:09,720 1003 00:42:09,720 --> 00:42:13,990 Mayroon kaming para sa at i ay katumbas ng 0. 1004 00:42:13,990 --> 00:42:16,950 1005 00:42:16,950 --> 00:42:22,454 Gusto naming i upang maging mas mababa kaysa n minus 1 minus k. 1006 00:42:22,454 --> 00:42:23,870 At Ipapaliwanag ko na sa isang segundo. 1007 00:42:23,870 --> 00:42:26,280 1008 00:42:26,280 --> 00:42:32,830 Kaya ito ay isang pag-optimize dito kung saan, tandaan kung paano sinabi ko pagkatapos ng bawat pass 1009 00:42:32,830 --> 00:42:36,655 sa pamamagitan ng array namin malaman na ang kahit anong on-- 1010 00:42:36,655 --> 00:42:43,590 1011 00:42:43,590 --> 00:42:46,295 >> Kaya pagkatapos ng isang pass namin malaman na ito ay pinagsunod-sunod. 1012 00:42:46,295 --> 00:42:47,370 1013 00:42:47,370 --> 00:42:50,060 Pagkatapos ng dalawang pass namin alam na ang lahat ng ito ay pinagsunod-sunod. 1014 00:42:50,060 --> 00:42:52,750 Pagkatapos ng tatlong pass namin Alam na pinagsunod-sunod. 1015 00:42:52,750 --> 00:42:55,620 Kaya ang paraan ako iterating sa pamamagitan ng array dito, 1016 00:42:55,620 --> 00:43:01,090 ay ang ginagawa itong bang pumunta lamang sa pamamagitan ng kung ano ang alam namin ay unsorted. 1017 00:43:01,090 --> 00:43:01,644 OK? 1018 00:43:01,644 --> 00:43:02,810 Iyon ang isang pag-optimize lamang. 1019 00:43:02,810 --> 00:43:04,430 1020 00:43:04,430 --> 00:43:08,210 Maaari mo itong isulat naively lamang iterating sa pamamagitan ng lahat ng bagay, 1021 00:43:08,210 --> 00:43:09,970 Gusto tumagal lamang nang mas matagal. 1022 00:43:09,970 --> 00:43:12,470 Gamit ang apat na loop ito lamang sa isang masarap na pag-optimize 1023 00:43:12,470 --> 00:43:18,460 dahil alam namin na pagkatapos ng bawat buong pag-ulit sa pamamagitan ng array dito, 1024 00:43:18,460 --> 00:43:24,050 tulad ng bawat buong loop dito, alam namin na ang isa higit pa sa mga elemento 1025 00:43:24,050 --> 00:43:25,760 ay pinagsunod-sunod sa dulo. 1026 00:43:25,760 --> 00:43:28,294 >> Kaya hindi namin kailangang mag-alala tungkol sa mga iyon. 1027 00:43:28,294 --> 00:43:29,710 Sinusuportahan ba na saysay sa lahat? 1028 00:43:29,710 --> 00:43:30,950 Iyon cool na maliit na nanlilinlang ng? 1029 00:43:30,950 --> 00:43:32,060 1030 00:43:32,060 --> 00:43:37,270 Kaya sa kasong iyon, kung kami ay iterating sa pamamagitan ng, 1031 00:43:37,270 --> 00:43:50,590 Alam namin na gusto naming suriin kung array n at n plus 1 ay nasa order. 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 Kaya narito ang pseudocode. 1035 00:43:54,600 --> 00:43:57,540 Gusto naming suriin kung array n at n plus 1 ay nasa order. 1036 00:43:57,540 --> 00:43:59,520 Kaya kung ano ang maaaring mayroon kaming doon? 1037 00:43:59,520 --> 00:44:01,090 1038 00:44:01,090 --> 00:44:03,120 Ito ay pagpunta sa ilang mga kondisyon. 1039 00:44:03,120 --> 00:44:04,220 Ito ay magiging isang kung. 1040 00:44:04,220 --> 00:44:07,066 >> MAG-AARAL: Kung array n ay mas mababa sa array n plus 1. 1041 00:44:07,066 --> 00:44:07,816 Instruktor: MM-Hm. 1042 00:44:07,816 --> 00:44:09,000 1043 00:44:09,000 --> 00:44:10,699 Well, mas mababa o mas mataas kaysa sa. 1044 00:44:10,699 --> 00:44:11,615 MAG-AARAL: Mas mataas sa. 1045 00:44:11,615 --> 00:44:15,850 1046 00:44:15,850 --> 00:44:17,620 Pagkatapos ay nais naming magpalit ang mga ito. 1047 00:44:17,620 --> 00:44:18,570 Mismong. 1048 00:44:18,570 --> 00:44:23,570 Kaya ngayon makuha namin sa kung ano ang mekanismo para sa pagpapalit ang mga ito? 1049 00:44:23,570 --> 00:44:24,840 1050 00:44:24,840 --> 00:44:28,137 Kaya nagpunta kami sa pamamagitan ng mabilis, isang uri ng swap function na noong nakaraang linggo. 1051 00:44:28,137 --> 00:44:29,595 Sinuman tandaan ba kung paano ito nagtrabaho? 1052 00:44:29,595 --> 00:44:32,300 1053 00:44:32,300 --> 00:44:34,950 Kaya hindi namin lamang ay maaaring reassign ang mga ito, i-right? 1054 00:44:34,950 --> 00:44:36,640 Dahil isa sa mga ito ay mawala. 1055 00:44:36,640 --> 00:44:41,696 Kung sinabi namin A ay katumbas ng B at pagkatapos ay B ay katumbas ng A, lahat ng pareho ng mga ito biglaang 1056 00:44:41,696 --> 00:44:43,150 ay pantay-pantay lang sa B. 1057 00:44:43,150 --> 00:44:45,720 >> Kaya kung ano ang dapat nating gawin ay namin may isang pansamantalang variable na 1058 00:44:45,720 --> 00:44:49,055 pagpunta upang i-hold ang isa sa atin habang kami ay nasa proseso ng pagpapalit. 1059 00:44:49,055 --> 00:44:50,200 1060 00:44:50,200 --> 00:44:56,464 Kaya kung ano ang mayroon kami ay makakakita kami ng ilang int temp ay katumbas to-- maaari mo itong magtalaga 1061 00:44:56,464 --> 00:44:59,130 sa alinman sa isa gusto mo, lamang tiyaking mong subaybayan it-- 1062 00:44:59,130 --> 00:45:01,840 kaya sa kasong ito, pupuntahan ko italaga ito upang array n plus 1. 1063 00:45:01,840 --> 00:45:03,360 1064 00:45:03,360 --> 00:45:07,674 Kaya na pupuntahan pindutin nang matagal ang anumang halaga ay nasa ikalawang na bloke 1065 00:45:07,674 --> 00:45:08,590 na kaming naghahanap sa. 1066 00:45:08,590 --> 00:45:09,700 1067 00:45:09,700 --> 00:45:13,240 >> At pagkatapos ay maaari naming gawin ay maaari naming pumunta Magpatuloy at reassign array n plus 1, 1068 00:45:13,240 --> 00:45:14,990 dahil alam namin kami Mayroon na halaga na naka-imbak. 1069 00:45:14,990 --> 00:45:16,645 1070 00:45:16,645 --> 00:45:19,270 Ito ay din isa sa mga malaki things-- Hindi ko alam kung ang alinman sa iyo 1071 00:45:19,270 --> 00:45:23,780 Nagkaroon isyu kung saan kung lumipat ka ng dalawang linya ng code bigla bagay nagtrabaho. 1072 00:45:23,780 --> 00:45:25,880 Order ay napakahalaga sa CS. 1073 00:45:25,880 --> 00:45:29,450 Kaya tiyaking ang diagram sa iyo mga bagay kung posible 1074 00:45:29,450 --> 00:45:31,230 bilang sa kung ano ang aktwal na nangyayari. 1075 00:45:31,230 --> 00:45:34,256 Kaya ngayon kami ay pagpunta sa reassign array n plus 1, 1076 00:45:34,256 --> 00:45:36,005 dahil alam namin kami Mayroon na halaga na naka-imbak. 1077 00:45:36,005 --> 00:45:37,090 1078 00:45:37,090 --> 00:45:41,560 >> At kami ay maaaring magtalaga na sa array n o sa kasong ito array i. 1079 00:45:41,560 --> 00:45:50,540 1080 00:45:50,540 --> 00:45:51,465 Masyadong maraming mga variable. 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 Kaya ngayon na reassigned namin array i plus 1 upang pumatas kung ano ang sa array i. 1084 00:46:01,500 --> 00:46:08,240 At ngayon maaari naming bumalik at magtalaga array i upang ano? 1085 00:46:08,240 --> 00:46:10,680 1086 00:46:10,680 --> 00:46:11,180 Sinuman? 1087 00:46:11,180 --> 00:46:13,490 1088 00:46:13,490 --> 00:46:14,010 >> MAG-AARAL: 10. 1089 00:46:14,010 --> 00:46:14,680 >> Instruktor: 10. 1090 00:46:14,680 --> 00:46:15,180 Mismong. 1091 00:46:15,180 --> 00:46:16,930 1092 00:46:16,930 --> 00:46:18,640 At isa huling bagay. 1093 00:46:18,640 --> 00:46:21,840 Kung kami ay swapped ito ngayon, kung ano ang kailangan namin upang gawin? 1094 00:46:21,840 --> 00:46:23,740 Ano ang isang bagay na pupuntahan sabihin sa amin 1095 00:46:23,740 --> 00:46:27,542 kung wakasan namin kailanman programang ito? 1096 00:46:27,542 --> 00:46:29,250 Ano ang sinasabi sa atin na tayo magkaroon ng isang pinagsunod-sunod na listahan? 1097 00:46:29,250 --> 00:46:31,560 1098 00:46:31,560 --> 00:46:33,750 Kung hindi kami magsagawa ng anumang mga swaps, tama? 1099 00:46:33,750 --> 00:46:36,900 Kung swaps ay katumbas ng ZERO sa dulo ng ito. 1100 00:46:36,900 --> 00:46:42,975 Kaya sa tuwing kang magsagawa ng isang magpalitan, bilang namin ginawa lang dito, gusto naming i-update ang swaps. 1101 00:46:42,975 --> 00:46:45,002 1102 00:46:45,002 --> 00:46:47,210 At alam ko nagkaroon ng tanong mas maaga tungkol sa maaari mong 1103 00:46:47,210 --> 00:46:49,689 gamitin sa zero o isa sa halip ng totoo o hindi. 1104 00:46:49,689 --> 00:46:50,980 At iyon ang kung ano ang ginagawa dito. 1105 00:46:50,980 --> 00:46:52,750 Kaya ito ang sinasabi kung hindi swaps. 1106 00:46:52,750 --> 00:47:01,310 Kaya kung swaps ay zero, na is-- ako palagi ang aking katotohanan at ang aking falses halo-halong up. 1107 00:47:01,310 --> 00:47:03,960 Gusto naming suriin namin sa totoo at hindi. 1108 00:47:03,960 --> 00:47:07,680 1109 00:47:07,680 --> 00:47:09,630 Kaya kung ito ay zero, pagkatapos ito ay hindi totoo. 1110 00:47:09,630 --> 00:47:12,560 Kung magkaila mo ito gamit ang isang [? Bang?] ito ay nagiging totoo. 1111 00:47:12,560 --> 00:47:13,975 Kaya pagkatapos ay ang linyang ito executes. 1112 00:47:13,975 --> 00:47:15,060 1113 00:47:15,060 --> 00:47:17,370 >> Katotohanan at mali at mga zero at mga makakuha ng mabaliw. 1114 00:47:17,370 --> 00:47:20,690 Kung lang mo mabagal maglakad sa pamamagitan nito ito ay magkaroon ng kahulugan. 1115 00:47:20,690 --> 00:47:23,320 Ngunit iyon kung ano ito kaunti dito ang kaunting code. 1116 00:47:23,320 --> 00:47:26,490 Kaya ito sumusuri upang makita na namin nagawa ang anumang mga swaps. 1117 00:47:26,490 --> 00:47:30,054 Kaya kung ito ay anumang bagay bukod sa zero, ito ay magiging hindi totoo 1118 00:47:30,054 --> 00:47:31,970 at ang buong bagay ay pagpunta upang maisagawa muli. 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 >> MAG-AARAL: Ano ang bakasyon gawin? 1123 00:47:36,000 --> 00:47:38,990 >> Instruktor: Hatiin lamang Pinaghihiwa-out ng loop sa iyo. 1124 00:47:38,990 --> 00:47:41,570 Kaya sa kasong ito gagawin ito gusto lang tapusin ang programa 1125 00:47:41,570 --> 00:47:43,828 at gagawin mo lang Mayroon iyong pinagsunod-sunod na listahan. 1126 00:47:43,828 --> 00:47:44,536 MAG-AARAL: kamangha-manghang. 1127 00:47:44,536 --> 00:47:48,094 1128 00:47:48,094 --> 00:47:49,010 Instruktor: Sorry? 1129 00:47:49,010 --> 00:47:52,110 MAG-AARAL: Dahil dati namin ginagamit ang nakasulat 1 sa paglipas ng nakasulat na zero 1130 00:47:52,110 --> 00:47:54,170 ipakita na kung na gagana o hindi. 1131 00:47:54,170 --> 00:47:54,878 >> Instruktor: Oo. 1132 00:47:54,878 --> 00:47:56,410 Kaya maaari kang bumalik sa zero o 1. 1133 00:47:56,410 --> 00:47:58,950 Sa kasong ito, dahil hindi namin talaga paggawa ng anumang bagay na may pag-andar, 1134 00:47:58,950 --> 00:48:00,150 nais lamang namin ito upang masira. 1135 00:48:00,150 --> 00:48:02,680 Hindi namin talagang pakialam tungkol dito. 1136 00:48:02,680 --> 00:48:06,960 Preno ay mabuti kung din ito ay ginagamit para breaking out 1137 00:48:06,960 --> 00:48:10,710 ng apat na mga loop o kundisyon na hindi mo nais na panatilihin ang e-execute. 1138 00:48:10,710 --> 00:48:12,110 Lamang Tatagal ka na ng mga ito. 1139 00:48:12,110 --> 00:48:13,587 1140 00:48:13,587 --> 00:48:14,795 Ito ay isang bit ng isang pananarinari bagay. 1141 00:48:14,795 --> 00:48:16,737 1142 00:48:16,737 --> 00:48:18,445 Nararamdaman kong mayroong ng maraming kamay waving, 1143 00:48:18,445 --> 00:48:19,740 tulad ng makikita mo matuto nang higit pa tungkol sa ito sa lalong madaling panahon. 1144 00:48:19,740 --> 00:48:20,955 >> Ngunit matutunan mo ang tungkol sa lalong madaling panahon. 1145 00:48:20,955 --> 00:48:21,500 Nangangako ako. 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 Kaya ang lahat makakuha ng bubble-uuri-uri? 1149 00:48:24,840 --> 00:48:25,550 Huwag masyadong masama. 1150 00:48:25,550 --> 00:48:31,910 Umulit sa pamamagitan, magpalitan ng mga bagay na gamit ang isang temp variable, at kami ay lahat ng set doon? 1151 00:48:31,910 --> 00:48:32,960 Ayos. 1152 00:48:32,960 --> 00:48:34,080 Kahanga-hanga. 1153 00:48:34,080 --> 00:48:34,807 OK. 1154 00:48:34,807 --> 00:48:35,765 Bumalik sa PowerPoint. 1155 00:48:35,765 --> 00:48:38,140 1156 00:48:38,140 --> 00:48:40,130 Ang anumang mga katanungan sa pangkalahatan tungkol sa mga ngayon? 1157 00:48:40,130 --> 00:48:41,200 1158 00:48:41,200 --> 00:48:41,700 Ayos. 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 >> MAG-AARAL: [hindi marinig] int pangunahing karaniwang. 1162 00:48:45,279 --> 00:48:46,695 Mayroon ka bang magkaroon ng na para sa ito? 1163 00:48:46,695 --> 00:48:48,400 1164 00:48:48,400 --> 00:48:53,550 >> Instruktor: Kaya tayo ay naghahanap lamang lamang sa aktwal na-uuri-uri algorithm. 1165 00:48:53,550 --> 00:48:54,559 1166 00:48:54,559 --> 00:48:56,350 Kung nagkaroon ka ng ito sa loob ng tulad ng isang mas malaking programa, 1167 00:48:56,350 --> 00:48:57,891 magkakaroon ka ng isang int pangunahing lugar. 1168 00:48:57,891 --> 00:49:00,070 1169 00:49:00,070 --> 00:49:02,880 Depende sa kung saan mo gamitin ang algorithm na ito, 1170 00:49:02,880 --> 00:49:05,860 Gusto ito matukoy kung ano ang na ibinalik ng mga ito. 1171 00:49:05,860 --> 00:49:09,960 Ngunit para sa aming kaso, kami ay mahigpit na ng pagtingin sa kung paano gumagana ang aktwal na 1172 00:49:09,960 --> 00:49:11,300 umulit sa pamamagitan ng isang array. 1173 00:49:11,300 --> 00:49:12,570 Kaya naming huwag mag-alala tungkol dito. 1174 00:49:12,570 --> 00:49:14,150 1175 00:49:14,150 --> 00:49:19,830 >> Kaya tayo ay pakikipag-usap tungkol sa mga pinakamahusay na kaso at pinakamasamang sitwasyon kaso para sa binary paghahanap. 1176 00:49:19,830 --> 00:49:22,470 Kaya mahalaga ding gawin na para sa bawat isa sa aming mga klase. 1177 00:49:22,470 --> 00:49:24,200 1178 00:49:24,200 --> 00:49:27,560 Kaya kung ano ang tingin mo ay ang pinakamasamang kaso runtime ng bubble-uuri-uri? 1179 00:49:27,560 --> 00:49:29,560 1180 00:49:29,560 --> 00:49:30,700 Ikaw guys tandaan? 1181 00:49:30,700 --> 00:49:31,784 >> MAG-AARAL: N minus 1. 1182 00:49:31,784 --> 00:49:32,700 Instruktor: N minus 1. 1183 00:49:32,700 --> 00:49:35,070 Kaya nangangahulugan na mayroong n minus 1 paghahambing. 1184 00:49:35,070 --> 00:49:40,060 Kaya isang bagay upang mapagtanto ay na sa unang pag-ulit, 1185 00:49:40,060 --> 00:49:43,360 pumunta namin sa pamamagitan ng, ihambing namin mga two-- kaya na 1. 1186 00:49:43,360 --> 00:49:46,685 Ang mga dalawa, tatlo, apat. 1187 00:49:46,685 --> 00:49:48,070 1188 00:49:48,070 --> 00:49:55,050 Kaya pagkatapos ng isang pag-ulit namin Mayroon na apat na mga paghahambing. 1189 00:49:55,050 --> 00:49:58,230 Kapag ako pinag-uusapan ng runtime at n. 1190 00:49:58,230 --> 00:50:04,680 N kumakatawan sa bilang ng mga paghahambing bilang isang katangian ng kung gaano karaming mga elemento 1191 00:50:04,680 --> 00:50:05,570 mayroon kaming. 1192 00:50:05,570 --> 00:50:06,430 OK? 1193 00:50:06,430 --> 00:50:08,860 >> Kaya pumunta kami sa pamamagitan ng, mayroon kaming apat. 1194 00:50:08,860 --> 00:50:11,780 Ang susunod na oras na alam mo na hindi namin kailangang alagaan ito. 1195 00:50:11,780 --> 00:50:15,140 Inihambing namin ang dalawang, ang dalawang, ang dalawang, 1196 00:50:15,140 --> 00:50:20,050 at kung hindi namin ginawa magkaroon ng pag-optimize na may apat na loop na sinulat ni ko, 1197 00:50:20,050 --> 00:50:22,750 Gusto ka ng paghahambing in dito pa rin. 1198 00:50:22,750 --> 00:50:26,170 Kaya magkakaroon ka ng upang tumakbo sa pamamagitan ng array 1199 00:50:26,170 --> 00:50:34,380 at gumawa ng mga paghahambing n n beses, dahil sa tuwing namin 1200 00:50:34,380 --> 00:50:36,670 tumagos ito namin uri-uriin ang isang bagay. 1201 00:50:36,670 --> 00:50:38,300 1202 00:50:38,300 --> 00:50:41,475 >> At sa bawat oras na patakbuhin namin sa pamamagitan ng ang array, gumawa kami n mga paghahambing. 1203 00:50:41,475 --> 00:50:42,920 1204 00:50:42,920 --> 00:50:46,330 Kaya aming runtime para sa ito ay talaga n nakalapat, na 1205 00:50:46,330 --> 00:50:48,400 ay mas mas masahol pa sa aming pagtatapos dahil na mag-log 1206 00:50:48,400 --> 00:50:51,965 nangangahulugan kung nagkaroon kami ng apat na bilyon mga elemento, ito ay 1207 00:50:51,965 --> 00:50:55,260 pagpunta sa tumagal kami 4000000000 nakalapat sa halip na 32. 1208 00:50:55,260 --> 00:51:01,240 Kaya hindi ang pinakamahusay na runtime, ngunit para sa ilang mga bagay, 1209 00:51:01,240 --> 00:51:04,610 alam mo na, kung ikaw ay sa loob ng sa isang tiyak na hanay ng mga elemento 1210 00:51:04,610 --> 00:51:06,540 bubble-uuri-uri ay maaaring fine gamitin. 1211 00:51:06,540 --> 00:51:07,530 >> OK. 1212 00:51:07,530 --> 00:51:12,290 Kaya ngayon kung ano ang pinakamahusay na kaso runtime? 1213 00:51:12,290 --> 00:51:14,357 1214 00:51:14,357 --> 00:51:14,940 MAG-AARAL: Zero? 1215 00:51:14,940 --> 00:51:16,420 O 1? 1216 00:51:16,420 --> 00:51:18,140 >> Instruktor: Kaya 1 gagawin maging isa sa paghahambing. 1217 00:51:18,140 --> 00:51:19,114 I-right. 1218 00:51:19,114 --> 00:51:20,002 >> MAG-AARAL: N minus 1? 1219 00:51:20,002 --> 00:51:21,380 1220 00:51:21,380 --> 00:51:22,320 >> Instruktor: Kaya, oo. 1221 00:51:22,320 --> 00:51:22,990 Kaya n minus 1. 1222 00:51:22,990 --> 00:51:26,510 Sa tuwing mayroon kang isang konsepto tulad n minus 1, ay may posibilidad naming i-drop lang ito off 1223 00:51:26,510 --> 00:51:31,680 at kami sabihin lang n dahil mayroon kang upang ihambing ang bawat isa sa these-- bawat pares. 1224 00:51:31,680 --> 00:51:36,470 Kaya magiging n minus 1, na kung saan namin nais naming sabihin lamang ay humigit-kumulang n. 1225 00:51:36,470 --> 00:51:39,280 Kapag tapos ka pagharap sa runtime, ang lahat ng bagay ay nasa nagtataya. 1226 00:51:39,280 --> 00:51:43,860 Hangga't ang exponent ay tama, ikaw ay mahusay. 1227 00:51:43,860 --> 00:51:45,700 >> Iyon ay kung paano namin haharapin ang mga ito. 1228 00:51:45,700 --> 00:51:47,410 1229 00:51:47,410 --> 00:51:51,780 Kaya na ang pinakamahusay na kaso ay n, na ay nangangahulugan na ang listahan ay naka-pinagsunod-sunod, 1230 00:51:51,780 --> 00:51:54,320 at lahat ng aming ginagawa ay tumatakbo sa pamamagitan ng at suriin na ito ay pinagsunod-sunod. 1231 00:51:54,320 --> 00:51:56,110 1232 00:51:56,110 --> 00:51:56,855 Ayos. 1233 00:51:56,855 --> 00:51:57,355 Lahat ng karapatan. 1234 00:51:57,355 --> 00:51:58,980 1235 00:51:58,980 --> 00:52:01,920 Kaya bilang na iyong nakikita dito, namin Mayroon lamang ilan pang mga graph. 1236 00:52:01,920 --> 00:52:02,660 Kaya n nakalapat. 1237 00:52:02,660 --> 00:52:03,780 1238 00:52:03,780 --> 00:52:05,120 Masaya. 1239 00:52:05,120 --> 00:52:09,730 Karamihan mas masahol kaysa n tulad ng nakikita namin, at magkano, magkano ang mas masahol kaysa log 2n. 1240 00:52:09,730 --> 00:52:12,060 At pagkatapos mong makakuha rin sa mga log ng log. 1241 00:52:12,060 --> 00:52:18,020 At dadalhin ka 124, makakakuha ka sa tulad log star, na kung saan ay tulad ng nakatutuwang. 1242 00:52:18,020 --> 00:52:20,172 Kaya kung interesado ka, star paghahanap ng log. 1243 00:52:20,172 --> 00:52:20,880 Ito ay uri ng masaya. 1244 00:52:20,880 --> 00:52:22,800 1245 00:52:22,800 --> 00:52:24,220 Kaya mayroon kaming ito mahusay na chart. 1246 00:52:24,220 --> 00:52:25,360 1247 00:52:25,360 --> 00:52:28,720 Lang ng babala, ang isang kahanga-hangang chart upang magkaroon 1248 00:52:28,720 --> 00:52:31,350 para sa iyong mga mid-matagalang dahil namin mahaba upang hilingin sa iyo ng mga thins. 1249 00:52:31,350 --> 00:52:36,090 Kaya lamang babala, mayroon na ito sa iyong mid-terminong ginamit sa iyong maganda impostor sheet 1250 00:52:36,090 --> 00:52:36,616 doon. 1251 00:52:36,616 --> 00:52:37,990 Kaya kami ay tumingin lang sa bubble-uuri. 1252 00:52:37,990 --> 00:52:39,510 1253 00:52:39,510 --> 00:52:42,370 Pinakamahina ang kaso, n nakalapat, pinakamahusay na kaso, n. 1254 00:52:42,370 --> 00:52:43,367 1255 00:52:43,367 --> 00:52:44,950 At kami ay pagpunta sa tumingin sa iba. 1256 00:52:44,950 --> 00:52:47,940 >> At tulad ng nakikita mo, ang tanging isa na tunay na ginagawa rin 1257 00:52:47,940 --> 00:52:50,910 ay pag-uuri-merge, na susuriin namin kung bakit. 1258 00:52:50,910 --> 00:52:52,690 1259 00:52:52,690 --> 00:52:55,215 Kaya kami ay pagpunta sa pumunta sa sa tabi ng isa here---uri-uriin pagpipilian. 1260 00:52:55,215 --> 00:52:56,360 1261 00:52:56,360 --> 00:52:58,420 Sinuman tandaan ba kung paano pagpili ng uri-uriin nagtrabaho? 1262 00:52:58,420 --> 00:53:05,200 1263 00:53:05,200 --> 00:53:05,700 Pumunta para dito. 1264 00:53:05,700 --> 00:53:08,210 >> MAG-AARAL: talaga pumunta sa pamamagitan ng isang order at lumikha ng isang bagong listahan. 1265 00:53:08,210 --> 00:53:11,001 At tulad naglalagay ka ng mga elemento sa, ilagay ang mga ito sa tamang lugar 1266 00:53:11,001 --> 00:53:11,750 sa bagong listahan. 1267 00:53:11,750 --> 00:53:14,040 >> Instruktor: Kaya na tunog higit na katulad ng pag-uuri ng pagpapasok ng. 1268 00:53:14,040 --> 00:53:15,040 Ngunit kung ikaw talaga malapit. 1269 00:53:15,040 --> 00:53:15,915 Ang mga ito ay halos katulad na. 1270 00:53:15,915 --> 00:53:17,440 Kahit na makakuha ang mga ito halo-halong up minsan. 1271 00:53:17,440 --> 00:53:18,981 Bago ito seksyon ko ay tulad, maghintay. 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 Kaya kung ano ang nais mong gawin ay-uri-uriin pagpili, 1275 00:53:24,141 --> 00:53:25,890 ang paraan na maaari mong isipin ang tungkol dito at ang paraan ng 1276 00:53:25,890 --> 00:53:30,140 Ko masisiguro na sinusubukan kong hindi upang makakuha ng ang mga ito halo-halong up, ito napupunta sa pamamagitan ng 1277 00:53:30,140 --> 00:53:33,280 at ito pinipili ang pinakamaliliit na numero at ito 1278 00:53:33,280 --> 00:53:36,070 naglalagay na sa simula ng iyong listahan. 1279 00:53:36,070 --> 00:53:37,730 Swaps itong ito sa na unang puwesto. 1280 00:53:37,730 --> 00:53:42,600 1281 00:53:42,600 --> 00:53:45,370 Talaga mayroon silang isang halimbawa para sa akin. 1282 00:53:45,370 --> 00:53:46,540 Kahanga-hanga. 1283 00:53:46,540 --> 00:53:50,130 Kaya lamang ng isang paraan upang isipin ang it-- seleksyon uri, piliin ang pinakamaliit na halaga. 1284 00:53:50,130 --> 00:53:51,940 At kami ay pagpunta sa tumakbo sa pamamagitan ng isang halimbawa 1285 00:53:51,940 --> 00:53:55,320 na sa tingin ko ay makakatulong dahil Sa tingin ko laging makatulong visual. 1286 00:53:55,320 --> 00:53:58,510 Kaya magsimula kami sa isang bagay na ganap na unsorted. 1287 00:53:58,510 --> 00:54:00,730 Red ay unsorted, berde ay pinagsunod-sunod. 1288 00:54:00,730 --> 00:54:02,190 Ang lahat ng ito magkaroon ng kahulugan sa isang segundo. 1289 00:54:02,190 --> 00:54:08,950 >> Kaya pumunta kami sa pamamagitan ng at umulit namin mula sa simula hanggang sa dulo. 1290 00:54:08,950 --> 00:54:12,320 At sabihin namin, OK, 2 ay ang aming pinakamaliit na numero. 1291 00:54:12,320 --> 00:54:15,680 Kaya kami ay pagpunta sa tumagal ng 2 at kami ay pagpunta upang ilipat ito sa harap ng aming array 1292 00:54:15,680 --> 00:54:17,734 dahil ito ay ang pinakamaliliit na numero na mayroon kami. 1293 00:54:17,734 --> 00:54:19,150 Kaya na kung ano ang ginagawa ito dito. 1294 00:54:19,150 --> 00:54:20,820 Lamang Ito ay pagpunta sa swap ang dalawang. 1295 00:54:20,820 --> 00:54:21,850 1296 00:54:21,850 --> 00:54:25,450 Kaya ngayon kami ng pinagsunod-sunod bahagi at unsorted bahagi. 1297 00:54:25,450 --> 00:54:27,810 At kung ano ang mahusay na tandaan tungkol sa pag-uuri seleksyon 1298 00:54:27,810 --> 00:54:30,690 lamang kami ng pagpili mula sa unsorted bahagi. 1299 00:54:30,690 --> 00:54:32,220 1300 00:54:32,220 --> 00:54:34,527 >> Ang Pinagbukud-bukod bahagi iwanang mag-isa ka lamang. 1301 00:54:34,527 --> 00:54:35,660 Mm-Hm? 1302 00:54:35,660 --> 00:54:38,452 >> MAG-AARAL: Paano malaman kung ano ang ang pinakamaliit na walang paghahambing nito 1303 00:54:38,452 --> 00:54:39,868 sa bawat iba pang mga halaga sa array. 1304 00:54:39,868 --> 00:54:41,250 Instruktor: Ginagawa ihambing ito. 1305 00:54:41,250 --> 00:54:42,041 Namin gustong nilaktawan ito. 1306 00:54:42,041 --> 00:54:43,850 Ito ay pangkalahatang lamang sa pangkalahatan. 1307 00:54:43,850 --> 00:54:44,831 Oo. 1308 00:54:44,831 --> 00:54:47,205 Kapag isulat namin ang code na ako ay Tiyaking makikita mo maging mas nasiyahan. 1309 00:54:47,205 --> 00:54:48,696 1310 00:54:48,696 --> 00:54:53,030 Ngunit una kang i-store na ito elemento bilang na ang pinakamaliit na. 1311 00:54:53,030 --> 00:54:56,110 Ihambing mo at mo sabihin, OK, ito sa mas maliliit? 1312 00:54:56,110 --> 00:54:56,660 Oo. 1313 00:54:56,660 --> 00:54:57,460 Panatilihin itong. 1314 00:54:57,460 --> 00:54:58,640 Narito ang mas maliit na ito? 1315 00:54:58,640 --> 00:54:59,660 Walang? 1316 00:54:59,660 --> 00:55:02,510 >> Ito ang iyong pinakamaliit, reassign ito sa iyong halaga. 1317 00:55:02,510 --> 00:55:06,340 At magagawa mong mas mas masaya kapag pumunta namin sa pamamagitan ng code. 1318 00:55:06,340 --> 00:55:07,510 1319 00:55:07,510 --> 00:55:13,970 Kaya pumunta kami sa pamamagitan ng, swap namin ito, kaya pagkatapos tinitingnan namin ang ito unsorted bahagi. 1320 00:55:13,970 --> 00:55:15,810 Kaya kami ay pagpunta upang piliin ang tatlong out. 1321 00:55:15,810 --> 00:55:18,890 Kami ay pagpunta sa ilagay ito sa sa Sa dulo ng aming pinagsunod-sunod na bahagi. 1322 00:55:18,890 --> 00:55:20,267 1323 00:55:20,267 --> 00:55:23,100 At lamang kami ng pagpunta sa panatilihin ang paggawa na, kapag ginawa iyon, at ginagawa iyon. 1324 00:55:23,100 --> 00:55:24,130 1325 00:55:24,130 --> 00:55:27,420 Kaya ito ay ang aming uri ng pseudocode dito. 1326 00:55:27,420 --> 00:55:29,470 1327 00:55:29,470 --> 00:55:31,380 Susubukan naming code ito dito sa isang segundo. 1328 00:55:31,380 --> 00:55:34,140 1329 00:55:34,140 --> 00:55:37,270 Ngunit isang bagay lamang upang maglakad sa pamamagitan ng sa isang mataas na antas. 1330 00:55:37,270 --> 00:55:40,275 Na iyong pupuntahan upang pumunta mula sa i ay katumbas ng 0 hanggang n minus 2. 1331 00:55:40,275 --> 00:55:41,570 1332 00:55:41,570 --> 00:55:43,530 Iyon ang isa pang pag-optimize. 1333 00:55:43,530 --> 00:55:45,020 Huwag mag-alala masyadong maraming tungkol dito. 1334 00:55:45,020 --> 00:55:46,620 Kaya bilang na iyong sinasabi. 1335 00:55:46,620 --> 00:55:49,660 1336 00:55:49,660 --> 00:55:54,406 Tulad ng sinasabi ni Jacob, kung paano ginagawa namin subaybayan kung ano ang aming minimum ay? 1337 00:55:54,406 --> 00:55:55,030 Paano ko malalaman namin? 1338 00:55:55,030 --> 00:55:57,060 Mayroon kaming upang ihambing lahat ng bagay sa aming listahan. 1339 00:55:57,060 --> 00:55:59,600 >> Kaya minimum na katumbas ng i. 1340 00:55:59,600 --> 00:56:03,870 Lamang Ito ay nagsasabi sa kasong ito sa index ng aming pinakamaliit na halaga. 1341 00:56:03,870 --> 00:56:07,660 Kaya pagkatapos ito ay pagpunta upang umulit sa pamamagitan ng at ito napupunta mula sa j katumbas i plus 1. 1342 00:56:07,660 --> 00:56:11,420 Kaya alam namin na na aming unang elemento. 1343 00:56:11,420 --> 00:56:13,240 Hindi namin kailangang ihambing ito sa sarili nito. 1344 00:56:13,240 --> 00:56:16,970 Kaya magsisimulang namin paghahambing nito sa susunod na isa siyang dahilan kung bakit ito ay i plus 1 sa n 1345 00:56:16,970 --> 00:56:20,110 minus 1, na kung saan ay ang dulo ng array doon. 1346 00:56:20,110 --> 00:56:25,090 At sinabi namin kung array sa j ay mas mababa sa array min, 1347 00:56:25,090 --> 00:56:29,200 pagkatapos namin reassign kung saan sa aming minimum na mga indeks ay. 1348 00:56:29,200 --> 00:56:37,470 >> At kung min ay hindi kapantay sa i, bilang sa kung saan kami ay bumalik sa paglipas dito. 1349 00:56:37,470 --> 00:56:38,950 1350 00:56:38,950 --> 00:56:41,790 Kaya gusto noong una naming ginawa ng isang ito. 1351 00:56:41,790 --> 00:56:49,310 Sa kasong ito, ito ay magsisimula sa zero, ito ay nagtatapos up pagiging dalawa. 1352 00:56:49,310 --> 00:56:53,010 Kaya min gagawin hindi katumbas i sa dulo. 1353 00:56:53,010 --> 00:56:55,720 Na hinahayaan alam sa amin na ang kailangan naming i-swap ang mga ito. 1354 00:56:55,720 --> 00:56:57,420 1355 00:56:57,420 --> 00:57:00,470 Pakiramdam ko ay tulad ng isang kongkreto halimbawa ay makakatulong sa higit pa kaysa ito. 1356 00:57:00,470 --> 00:57:04,970 Kaya makikita ko ang code na ito up sa iyo guys ngayon at sa tingin ko makikita itong maging mas mahusay. 1357 00:57:04,970 --> 00:57:07,380 1358 00:57:07,380 --> 00:57:11,350 >> Mga uri ay may posibilidad na gumana ang na paraan sa na ito ay madalas na mas mahusay na lamang upang makita ang mga ito. 1359 00:57:11,350 --> 00:57:12,780 1360 00:57:12,780 --> 00:57:17,280 Kaya kung ano ang gusto naming gawin ay muna naming gusto na ang pinakamaliit na 1361 00:57:17,280 --> 00:57:19,890 sangkap sa posisyon nito sa array. 1362 00:57:19,890 --> 00:57:21,280 Kung ano mismo ang sinasabi ni Jacob. 1363 00:57:21,280 --> 00:57:23,090 Kailangan mong mag-imbak na kahit papaano. 1364 00:57:23,090 --> 00:57:25,900 Kaya kami ay pagpunta sa simulan dito iterating sa ibabaw ng array. 1365 00:57:25,900 --> 00:57:28,970 Kami ay pagpunta sa sabihin ito sa aming una upang simulan lamang sa. 1366 00:57:28,970 --> 00:57:38,308 Kaya pupunta kaming magkaroon int pinakamaliit ay katumbas ng array sa i. 1367 00:57:38,308 --> 00:57:40,500 1368 00:57:40,500 --> 00:57:45,050 >> Kaya isang bagay na napansin, ang bawat oras na ito loop executes, 1369 00:57:45,050 --> 00:57:48,550 ay nagsisimula kami ng isang hakbang sa karagdagang kasama. 1370 00:57:48,550 --> 00:57:54,780 1371 00:57:54,780 --> 00:57:57,440 Kapag sinimulan namin tinitingnan namin ang isang ito. 1372 00:57:57,440 --> 00:58:00,840 Sa susunod na umulit namin sa pamamagitan ng, kami ay nagsisimula sa isang ito 1373 00:58:00,840 --> 00:58:02,680 at nagtatalaga ito sa aming pinakamaliit na halaga. 1374 00:58:02,680 --> 00:58:10,450 Kaya ito ay halos kapareho sa bubble-uuri-uri kung saan alam namin na pagkatapos ng isang pass, 1375 00:58:10,450 --> 00:58:11,700 ang huling elemento ay pinagsunod-sunod. 1376 00:58:11,700 --> 00:58:12,810 1377 00:58:12,810 --> 00:58:15,120 Sa pag-uuri ng pagpili, ito lamang ng kabaligtaran. 1378 00:58:15,120 --> 00:58:18,950 >> Sa bawat pass, alam namin na ang una ay pinagsunod-sunod. 1379 00:58:18,950 --> 00:58:21,360 Matapos ang pangalawang pass, ang pangalawang isa ay pinagsunod-sunod. 1380 00:58:21,360 --> 00:58:26,470 At bilang na nakita mo sa mga halimbawang slide, ang aming pinagsunod-sunod na bahagi ay nagpapanatili lamang lumalaki. 1381 00:58:26,470 --> 00:58:34,020 Kaya sa pamamagitan ng pagtatakda ng aming pinakamaliit na isa sa array ko, ang lahat ng mga ito ang ginagawa 1382 00:58:34,020 --> 00:58:37,340 ay constricting kung ano naghahanap kami sa gayon ay 1383 00:58:37,340 --> 00:58:40,164 upang i-minimize ang bilang ng paghahambing ginagawa namin. 1384 00:58:40,164 --> 00:58:41,770 Ay na magkaroon ng kahulugan sa lahat? 1385 00:58:41,770 --> 00:58:42,920 1386 00:58:42,920 --> 00:58:46,380 Kailangan ba ninyo sa akin upang tumakbo sa pamamagitan ng na muli mas mabagal o sa ibang salita? 1387 00:58:46,380 --> 00:58:47,180 Ikinagagalak kong. 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 >> Kaya naka-iimbak ng namin ang halaga sa puntong ito, 1392 00:58:55,540 --> 00:58:57,840 ngunit gusto rin naming iimbak ang index. 1393 00:58:57,840 --> 00:59:01,010 Kaya kami ay pagpunta upang mag-imbak ang posisyon ng pinakamaliit 1394 00:59:01,010 --> 00:59:02,770 isa, na kung saan ay lamang ng pagpunta sa maging i. 1395 00:59:02,770 --> 00:59:04,357 1396 00:59:04,357 --> 00:59:05,440 Kaya ngayon Jacob ay nasiyahan. 1397 00:59:05,440 --> 00:59:06,870 Mayroon kaming mga bagay na naka-imbak. 1398 00:59:06,870 --> 00:59:08,240 1399 00:59:08,240 --> 00:59:11,870 At ngayon ay kailangan naming pag-isipan sa pamamagitan ng ang unsorted bahagi ng array. 1400 00:59:11,870 --> 00:59:18,170 Kaya sa kasong ito na ito ay magiging aming unsorted. 1401 00:59:18,170 --> 00:59:20,980 1402 00:59:20,980 --> 00:59:22,462 Ito ay 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 >> Kaya kung ano ang namin ang pagpunta sa gawin ay magiging para sa isang loop. 1406 00:59:30,040 --> 00:59:32,066 Sa tuwing kailangan mong umulit sa pamamagitan ng isang array, 1407 00:59:32,066 --> 00:59:33,440 ang iyong isip ay maaaring pumunta sa para sa isang loop. 1408 00:59:33,440 --> 00:59:34,760 1409 00:59:34,760 --> 00:59:38,090 Kaya para sa ilang mga int k equals-- ano ang sa tingin namin 1410 00:59:38,090 --> 00:59:39,700 k ay pagpunta sa katumbas na magsimula sa? 1411 00:59:39,700 --> 00:59:41,580 1412 00:59:41,580 --> 00:59:44,766 Ito ay kung ano ang itinakda namin ang aming pinakamaliit halaga at namin nais na ihambing ito. 1413 00:59:44,766 --> 00:59:47,090 Ano ang gusto namin upang ihambing ang mga ito sa? 1414 00:59:47,090 --> 00:59:48,730 Ito ay magiging ang susunod na isa, i-right? 1415 00:59:48,730 --> 00:59:53,200 Kaya gusto namin k na nasimulan upang i plus 1 upang magsimula. 1416 00:59:53,200 --> 00:59:55,350 1417 00:59:55,350 --> 01:00:02,800 >> At gusto naming k sa kasong ito namin nai laki na nakaimbak dito, 1418 01:00:02,800 --> 01:00:03,930 upang maaari naming lamang gamitin ang laki. 1419 01:00:03,930 --> 01:00:06,240 Sukat ng pagiging ang laki ng array. 1420 01:00:06,240 --> 01:00:09,620 At gusto lang namin sa -update k sa pamamagitan ng isa sa bawat oras. 1421 01:00:09,620 --> 01:00:17,410 1422 01:00:17,410 --> 01:00:17,910 Ayos. 1423 01:00:17,910 --> 01:00:19,650 1424 01:00:19,650 --> 01:00:23,430 Kaya ngayon ay kailangan naming hanapin ang pinakamaliit na elemento dito. 1425 01:00:23,430 --> 01:00:24,470 1426 01:00:24,470 --> 01:00:31,380 Kaya kung umulit namin sa pamamagitan ng, namin gustong sabihin, kung array sa k 1427 01:00:31,380 --> 01:00:37,080 Mababa sa aming pinakamaliit na value-- ito ay kung saan kami ay talagang 1428 01:00:37,080 --> 01:00:42,950 pagpapanatili ng track ng kung ano ang ang pinakamaliit na here-- 1429 01:00:42,950 --> 01:00:47,740 pagkatapos ay nais naming reassign kung ano ang aming pinakamaliit na halaga ay. 1430 01:00:47,740 --> 01:00:50,645 >> Nangangahulugan ito na, oh, kami ay iterating sa pamamagitan dito. 1431 01:00:50,645 --> 01:00:51,699 1432 01:00:51,699 --> 01:00:53,740 Anuman ang halaga ay dito ay Hindi aming pinakamaliit na bagay. 1433 01:00:53,740 --> 01:00:54,448 Hindi namin gusto ito. 1434 01:00:54,448 --> 01:00:56,100 Gusto naming reassign ito. 1435 01:00:56,100 --> 01:01:02,050 Kaya kung kami ay reassigning ito, kung ano ang ginagawa tingin mo ay maaaring maging sa code na ito dito? 1436 01:01:02,050 --> 01:01:04,160 Gusto naming reassign pinakamaliit at posisyon. 1437 01:01:04,160 --> 01:01:05,740 1438 01:01:05,740 --> 01:01:07,010 Kaya kung ano ang pinakamaliit na ngayon? 1439 01:01:07,010 --> 01:01:08,422 1440 01:01:08,422 --> 01:01:09,130 MAG-AARAL: Ang array k. 1441 01:01:09,130 --> 01:01:09,963 Instruktor: Ang array k. 1442 01:01:09,963 --> 01:01:13,480 1443 01:01:13,480 --> 01:01:15,956 At kung ano ang posisyon ngayon? 1444 01:01:15,956 --> 01:01:20,940 1445 01:01:20,940 --> 01:01:23,000 Ano ang mga indeks ng ang aming pinakamaliit na halaga? 1446 01:01:23,000 --> 01:01:24,030 1447 01:01:24,030 --> 01:01:24,530 Ito ay k lamang. 1448 01:01:24,530 --> 01:01:25,690 1449 01:01:25,690 --> 01:01:27,790 Kaya array k, k, tutugma ang mga ito. 1450 01:01:27,790 --> 01:01:31,670 1451 01:01:31,670 --> 01:01:33,120 Kaya gusto naming reassign iyon. 1452 01:01:33,120 --> 01:01:34,390 1453 01:01:34,390 --> 01:01:39,950 At pagkatapos ay pagkatapos naming nakita ng aming mga pinakamaliliit na, kaya sa dulo ng ito para sa loop 1454 01:01:39,950 --> 01:01:45,100 dito nakita namin kung ano ang aming pinakamaliit halaga ay, upang magpalit namin ito lamang. 1455 01:01:45,100 --> 01:01:47,100 1456 01:01:47,100 --> 01:01:50,816 Sa kasong ito, tulad ng sinasabi ng ating pinakamaliit na halaga ay wala dito. 1457 01:01:50,816 --> 01:01:51,940 Ito ang aming pinakamaliit na halaga. 1458 01:01:51,940 --> 01:01:57,690 >> Gusto lang namin na magpalit ito dito, na ano na magpalitan ng function sa ibaba 1459 01:01:57,690 --> 01:02:01,270 ginawa, na nagsulat up namin lamang -sama ng ilang minuto ang nakalipas. 1460 01:02:01,270 --> 01:02:02,775 Kaya dapat itong pamilyar. 1461 01:02:02,775 --> 01:02:04,320 1462 01:02:04,320 --> 01:02:08,030 At pagkatapos ay lamang umulit sa pamamagitan ng hanggang umabot sa lahat ng mga paraan 1463 01:02:08,030 --> 01:02:13,100 sa dulo, na nangangahulugan na ang mo may zero na mga elemento na unsorted 1464 01:02:13,100 --> 01:02:14,800 at lahat ng iba pa ay pinagsunod-sunod. 1465 01:02:14,800 --> 01:02:16,216 1466 01:02:16,216 --> 01:02:16,715 Magkaroon ng kahulugan? 1467 01:02:16,715 --> 01:02:18,010 1468 01:02:18,010 --> 01:02:19,280 Isang kaunti pa concretely? 1469 01:02:19,280 --> 01:02:19,990 Ang code na tulong? 1470 01:02:19,990 --> 01:02:21,720 1471 01:02:21,720 --> 01:02:26,410 >> MAG-AARAL: Para sa isang sukat, hindi ka talagang tukuyin ito o baguhin ito, 1472 01:02:26,410 --> 01:02:27,340 kung paano ang kilala ito? 1473 01:02:27,340 --> 01:02:32,380 >> Instruktor: Kaya ang isang bagay sa mapansin dito ay ang laki ng int. 1474 01:02:32,380 --> 01:02:35,680 Kaya namin ang iyong sinasabi sa sort-- pag-uuri ay isang pagpapaandar sa case-- ito 1475 01:02:35,680 --> 01:02:40,770 -uri pagpipilian, ito ay lumipas na in gamit ang pag-andar. 1476 01:02:40,770 --> 01:02:43,460 Kaya kung hindi ito pumasa sa sa, gusto mong gawin ang isang bagay 1477 01:02:43,460 --> 01:02:47,840 tulad ng haba ng array o gusto mong umulit sa pamamagitan ng 1478 01:02:47,840 --> 01:02:49,390 upang mahanap ang haba. 1479 01:02:49,390 --> 01:02:52,680 Ngunit dahil ito ay lumipas na in, maaari naming gamitin lamang ito. 1480 01:02:52,680 --> 01:02:55,720 Ipagpalagay mo lang na ang gumagamit nagbigay sa iyo ng wastong laki na 1481 01:02:55,720 --> 01:02:57,698 aktwal na kumakatawan sa isang laki ng iyong array. 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 >> Kung guys ay may anumang problema sa mga o gusto ng higit pang mga kasanayan sa coding uri 1486 01:03:05,870 --> 01:03:08,050 sa iyong sarili, dapat mong pumunta sa study.cs50. 1487 01:03:08,050 --> 01:03:11,560 1488 01:03:11,560 --> 01:03:12,670 Ito ay isang tool. 1489 01:03:12,670 --> 01:03:15,040 Ang mga ito ay isang checker na Maaari mong aktwal na magsulat. 1490 01:03:15,040 --> 01:03:16,180 Ginagawa nila pseudocode. 1491 01:03:16,180 --> 01:03:19,310 Ang mga ito ay higit pang mga video at mga slide kabilang ang mga ginagamit ko dito. 1492 01:03:19,310 --> 01:03:23,150 Kaya kung nararamdaman pa rin ng isang maliit na malabo, subukan na out. 1493 01:03:23,150 --> 01:03:25,670 Tulad ng nakasanayan, ay makipag-usap sa akin, masyadong. 1494 01:03:25,670 --> 01:03:26,320 Tanong? 1495 01:03:26,320 --> 01:03:28,611 >> MAG-AARAL: Sigurado ka sinasabi sa laki ay dati nang tinukoy? 1496 01:03:28,611 --> 01:03:29,234 1497 01:03:29,234 --> 01:03:29,900 Instruktor: Oo. 1498 01:03:29,900 --> 01:03:35,570 Laki ay dati nang tinukoy up dito sa function na pagpapahayag. 1499 01:03:35,570 --> 01:03:39,060 Kaya ipagpalagay mo na itong ma-ipinasa sa sa pamamagitan ng user, at alang-alang sa pagiging simple, ang 1500 01:03:39,060 --> 01:03:41,896 kami ay pagpunta sa ipinapalagay na ang nagbigay sa amin ng gumagamit ang tamang laki. 1501 01:03:41,896 --> 01:03:43,240 Ayos. 1502 01:03:43,240 --> 01:03:44,390 Kaya na-uri-uriin pagpipilian. 1503 01:03:44,390 --> 01:03:45,590 1504 01:03:45,590 --> 01:03:47,640 Guys, alam ko namin ang pag-aaral ng maraming ngayon. 1505 01:03:47,640 --> 01:03:49,710 Ito ay isang siksikan na data para seksyon. 1506 01:03:49,710 --> 01:03:51,880 1507 01:03:51,880 --> 01:03:57,340 Kaya sa na, kami ay pagpunta upang pumunta sa pag-uuri ng pagpapasok ng. 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 Kaya bago na mayroon kaming gawin aming runtime pag-aaral dito. 1511 01:04:06,100 --> 01:04:10,190 Kaya sa pinakamahusay na kaso, Binigyan dahil nagpakita ako sa iyo 1512 01:04:10,190 --> 01:04:11,960 ang talahanayan na ako uri ng ibinigay ito ang layo. 1513 01:04:11,960 --> 01:04:15,430 Ngunit pinakamahusay na kaso runtime, ano ang gagawin namin sa tingin? 1514 01:04:15,430 --> 01:04:17,310 1515 01:04:17,310 --> 01:04:18,130 Pinagsunod-sunod ang lahat. 1516 01:04:18,130 --> 01:04:21,040 1517 01:04:21,040 --> 01:04:22,070 Nakalapat N. 1518 01:04:22,070 --> 01:04:24,780 Kahit sino ay may isang paliwanag para sa kung bakit ang iyong palagay? 1519 01:04:24,780 --> 01:04:29,060 1520 01:04:29,060 --> 01:04:30,519 >> MAG-AARAL: Nagpapatakbo ka ng paghahambing through-- 1521 01:04:30,519 --> 01:04:31,268 Instruktor: I-right. 1522 01:04:31,268 --> 01:04:32,540 Naghahambing ka sa pamamagitan ng. 1523 01:04:32,540 --> 01:04:35,630 Sa bawat pag-ulit, kahit na naka-decrementing namin ito sa pamamagitan ng isa, 1524 01:04:35,630 --> 01:04:38,950 pa rin naghahanap ka sa pamamagitan ng lahat ng bagay upang mahanap ang pinakamaliit na isa. 1525 01:04:38,950 --> 01:04:42,390 Kaya kahit na ang iyong pinakamaliit na halaga Nandito sa simula, 1526 01:04:42,390 --> 01:04:44,710 naghahambing ka pa rin ito laban sa lahat ng iba pa 1527 01:04:44,710 --> 01:04:46,550 upang tiyakin na ito ay ang pinakamaliit na bagay. 1528 01:04:46,550 --> 01:04:49,820 Kaya makakapunta ka tumatakbo sa pamamagitan ng humigit-kumulang n nakalapat ulit. 1529 01:04:49,820 --> 01:04:51,090 1530 01:04:51,090 --> 01:04:51,590 Lahat ng karapatan. 1531 01:04:51,590 --> 01:04:52,785 At ano ang pinakamasamang sitwasyon? 1532 01:04:52,785 --> 01:04:54,350 1533 01:04:54,350 --> 01:04:57,980 Gayundin n nakalapat dahil na iyong pupuntahan na ginagawa na parehong pamamaraan. 1534 01:04:57,980 --> 01:05:01,670 Kaya sa kasong ito, seleksyon -uri-uriin ay may isang bagay 1535 01:05:01,670 --> 01:05:04,010 na tinatawag din namin inaasahang runtime. 1536 01:05:04,010 --> 01:05:07,400 Kaya sa iba, alam namin lamang ang upper at lower mga hangganan. 1537 01:05:07,400 --> 01:05:11,180 Depende sa kung paano mabaliw ang aming list o kung paano unsorted ito ay, 1538 01:05:11,180 --> 01:05:15,350 mag-iba ang mga ito sa pagitan ng n o n nakalapat. 1539 01:05:15,350 --> 01:05:16,550 Hindi namin alam. 1540 01:05:16,550 --> 01:05:22,820 >> Ngunit dahil sort pagpili ay may parehong pinakamasama at pinakamahusay na kaso, na sinasabi sa atin na 1541 01:05:22,820 --> 01:05:25,880 kung ano man ang uri ng pag-input namin mayroon, kung ito ay ang ganap na 1542 01:05:25,880 --> 01:05:29,130 pinagsunod-sunod o ganap na baligtarin pinagsunod-sunod, ito ay 1543 01:05:29,130 --> 01:05:30,740 pagpunta sa gawin ang parehong dami ng oras. 1544 01:05:30,740 --> 01:05:33,760 Kaya sa kasong iyon, kung tandaan mula sa aming mga talahanayan, 1545 01:05:33,760 --> 01:05:38,610 ito talaga ay nagkaroon ng isang halaga na ang dalawang uri ay walang, 1546 01:05:38,610 --> 01:05:40,390 na kung saan ay inaasahan runtime. 1547 01:05:40,390 --> 01:05:43,350 Kaya alam namin na sa tuwing nagsasagawa kami ng pag-uuri ng pagpili, 1548 01:05:43,350 --> 01:05:45,380 ito ay garantisadong magpatakbo ng isang n nakalapat oras. 1549 01:05:45,380 --> 01:05:46,630 Walang pagbabagu-bago doon. 1550 01:05:46,630 --> 01:05:47,630 Lamang Ito ay inaasahan. 1551 01:05:47,630 --> 01:05:48,820 1552 01:05:48,820 --> 01:05:52,140 At, muli, kung gusto mong matuto nang higit pa, kumuha ng CS 124 sa Spring. 1553 01:05:52,140 --> 01:05:55,370 1554 01:05:55,370 --> 01:05:56,712 Lahat ng karapatan. 1555 01:05:56,712 --> 01:05:57,545 Nakita namin na ang isang ito. 1556 01:05:57,545 --> 01:05:58,530 1557 01:05:58,530 --> 01:05:59,030 Ayos. 1558 01:05:59,030 --> 01:06:00,930 -Uri-uriin Kaya pagpapasok. 1559 01:06:00,930 --> 01:06:03,330 At marahil ako pupunta sa pamamagitan ng alab na ito. 1560 01:06:03,330 --> 01:06:05,440 Hindi ko ay magkakaroon ka guys code ito. 1561 01:06:05,440 --> 01:06:06,580 Makikita lang namin maglakad sa pamamagitan nito. 1562 01:06:06,580 --> 01:06:10,500 Kaya pag-uuri ng pagpapasok ng uri ay ng mga katulad na uri-uriin seleksyon 1563 01:06:10,500 --> 01:06:14,460 sa na mayroon kami ng parehong unsorted at pinagsunod-sunod na bahagi ng array. 1564 01:06:14,460 --> 01:06:20,260 >> Ngunit kung ano ang iba't ibang ay na bilang pumunta kami sa pamamagitan ng isa isa, 1565 01:06:20,260 --> 01:06:24,210 tumagal lamang namin ang anumang bilang ang susunod sa aming unsorted, 1566 01:06:24,210 --> 01:06:28,507 at tama ang uri-uriin ito sa aming pinagsunod-sunod array. 1567 01:06:28,507 --> 01:06:30,090 Ito gawing mas kamalayan sa isang halimbawa. 1568 01:06:30,090 --> 01:06:31,140 1569 01:06:31,140 --> 01:06:35,430 Kaya lahat ay nagsisimula bilang unsorted, nais lamang na may-uri-uriin pagpipilian. 1570 01:06:35,430 --> 01:06:38,740 At kami ay pagpunta sa uri-uriin ito sa Pataas na pagkakasunud-sunod ng aming naging. 1571 01:06:38,740 --> 01:06:40,360 1572 01:06:40,360 --> 01:06:43,340 Kaya sa aming mga unang pass kumuha namin ang unang halaga 1573 01:06:43,340 --> 01:06:46,700 at sabihin namin, OK, ikaw ay ngayon sa isang listahan sa pamamagitan ng iyong sarili. 1574 01:06:46,700 --> 01:06:49,150 >> Dahil ikaw ay nasa isang listahan sa pamamagitan ng iyong sarili, ikaw ay pinagsunod-sunod. 1575 01:06:49,150 --> 01:06:52,460 Binabati kita sa pagiging ang unang elemento sa array. 1576 01:06:52,460 --> 01:06:54,800 Ginagamit mo na pinagsunod-sunod sa lahat sa inyong sarili. 1577 01:06:54,800 --> 01:06:58,900 Kaya ngayon kami ng pinagsunod-sunod at isang unsorted array. 1578 01:06:58,900 --> 01:07:01,760 Kaya ngayon kumuha namin ang unang. 1579 01:07:01,760 --> 01:07:05,600 Ano ang mangyayari sa pagitan dito at dito ay ang sasabihin namin, 1580 01:07:05,600 --> 01:07:08,890 OK, kami ay pagpunta sa tumingin sa unang halaga ng aming unsorted array 1581 01:07:08,890 --> 01:07:13,270 at kami ay pagpunta sa pag-input na ito sa sarili tamang lugar sa Pinagbukud-bukod ng array. 1582 01:07:13,270 --> 01:07:21,460 >> Kaya ano ang gagawin namin ay nagsasagawa kami ng 5 at sabihin namin, OK, 5 ay mas malaki kaysa sa 3, 1583 01:07:21,460 --> 01:07:24,630 kaya magpasok lamang namin ito ng tama sa kanan ng iyon. 1584 01:07:24,630 --> 01:07:25,130 Humihingi kami ng mabuti. 1585 01:07:25,130 --> 01:07:26,200 1586 01:07:26,200 --> 01:07:28,420 Kaya pagkatapos ay pumunta sa kami sa aming susunod na isa. 1587 01:07:28,420 --> 01:07:29,720 At nagsasagawa kami ng 2. 1588 01:07:29,720 --> 01:07:34,330 Sabihin namin, OK, 2 Mababa sa 3, upang malaman namin na ito 1589 01:07:34,330 --> 01:07:36,220 kailangang maging sa harap ng aming listahan ngayon. 1590 01:07:36,220 --> 01:07:41,800 Kaya kung ano ang ginagawa namin ay itulak namin ang 3 at 5 pababa at ilipat namin 2 sa ang unang slot. 1591 01:07:41,800 --> 01:07:42,990 1592 01:07:42,990 --> 01:07:45,870 Kaya namin ang pagpapasok lamang ito sa tamang lugar dapat itong maging. 1593 01:07:45,870 --> 01:07:46,960 1594 01:07:46,960 --> 01:07:49,470 >> Pagkatapos ay tinitingnan namin ang aming sa tabi ng isa, at sabihin namin 6. 1595 01:07:49,470 --> 01:07:53,620 OK, 6 ay mas malaki sa lahat ng bagay sa aming pinagsunod-sunod array, 1596 01:07:53,620 --> 01:07:56,000 kaya i-tag namin lang ito sa sa dulo. 1597 01:07:56,000 --> 01:07:56,960 At pagkatapos ay tinitingnan namin ang 4. 1598 01:07:56,960 --> 01:07:58,130 1599 01:07:58,130 --> 01:08:03,020 4 ay mas mababa sa 6, ito ay mas mababa sa 5 ngunit ito ay mas malaki kaysa sa 3. 1600 01:08:03,020 --> 01:08:06,270 Kaya ipasok namin lang ito pakanan papunta sa gitna sa pagitan ng 3 at 5. 1601 01:08:06,270 --> 01:08:07,380 1602 01:08:07,380 --> 01:08:10,530 Kaya upang gumawa ng na ang isang maliit na kaunti pa kongkreto, 1603 01:08:10,530 --> 01:08:12,280 narito ang uri ng ideya ng kung ano ang nangyari. 1604 01:08:12,280 --> 01:08:16,430 Kaya para sa bawat unsorted elemento, namin matukoy kung saan sa Pinagbukud-bukod bahagi 1605 01:08:16,430 --> 01:08:17,090 ito ay. 1606 01:08:17,090 --> 01:08:20,680 >> Kaya isinasaisip ang pinagsunod-sunod at unsorted, 1607 01:08:20,680 --> 01:08:26,080 mayroon kaming upang tumawid sa pamamagitan ng at figure kung saan ito umaangkop sa Pinagbukud-bukod ng array. 1608 01:08:26,080 --> 01:08:31,460 At ipasok namin ito sa pamamagitan ng paglilipat ng mga mga elemento sa kanan ng ito pababa. 1609 01:08:31,460 --> 01:08:34,910 At pagkatapos naming panatilihin lamang iterating sa pamamagitan ng hanggang namin 1610 01:08:34,910 --> 01:08:39,270 magkaroon ng isang ganap na pinagsunod-sunod na listahan kung saan unsorted ngayon ay zero 1611 01:08:39,270 --> 01:08:41,720 at Pinagbukud-bukod tumatagal ng hanggang sa kabuuan ng aming listahan. 1612 01:08:41,720 --> 01:08:43,146 1613 01:08:43,146 --> 01:08:45,854 Kaya, muli, upang gumawa ng mga bagay kahit na higit pa kongkreto, mayroon kaming pseudocode. 1614 01:08:45,854 --> 01:08:47,979 1615 01:08:47,979 --> 01:08:52,410 >> Kaya isa lamang para i ay katumbas ng 0 hanggang n minus 1, 1616 01:08:52,410 --> 01:08:54,790 ito lamang ay ang haba ng aming array. 1617 01:08:54,790 --> 01:09:00,979 Mayroon kaming ilang mga elemento na katumbas ng ang unang array o unang mga indeks. 1618 01:09:00,979 --> 01:09:03,200 Itinakda namin j katumbas na iyon. 1619 01:09:03,200 --> 01:09:04,649 1620 01:09:04,649 --> 01:09:09,210 Kaya habang j ay mas malaki sa zero at ang array, j minus 1 1621 01:09:09,210 --> 01:09:11,660 ay mas malaki sa elemento, kaya ang lahat na ang ginagawa 1622 01:09:11,660 --> 01:09:17,479 ay tinitiyak na talaga kumakatawan sa iyong j 1623 01:09:17,479 --> 01:09:20,010 ang unsorted bahagi ng array. 1624 01:09:20,010 --> 01:09:30,745 >> Kaya habang mayroong mga bagay pa rin upang pagbukud-bukurin at j minus isa is-- kung ano 1625 01:09:30,745 --> 01:09:31,840 ay siya ng elemento? 1626 01:09:31,840 --> 01:09:34,760 J ay hindi kailanman tinukoy dito. 1627 01:09:34,760 --> 01:09:35,677 Ito ay uri ng nakakainis. 1628 01:09:35,677 --> 01:09:36,176 OK. 1629 01:09:36,176 --> 01:09:36,689 Pa rin. 1630 01:09:36,689 --> 01:09:39,899 Kaya j minus 1, naka-check ang elemento bago ito. 1631 01:09:39,899 --> 01:09:46,460 Sinasabi mo, OK, ay ang elemento bago nasaan ako am-- sabihin 1632 01:09:46,460 --> 01:09:47,540 talaga gumuhit ito. 1633 01:09:47,540 --> 01:09:52,580 1634 01:09:52,580 --> 01:09:56,830 Kaya sabihin nating ito ay tulad ng sa aming ikalawang pass. 1635 01:09:56,830 --> 01:09:59,525 Kaya i ay magiging katumbas sa 1, na kung saan ay dito. 1636 01:09:59,525 --> 01:10:03,310 1637 01:10:03,310 --> 01:10:06,025 >> Kaya i ay magiging katumbas ng 1. 1638 01:10:06,025 --> 01:10:09,510 1639 01:10:09,510 --> 01:10:13,702 Ito ay magiging 2, 4, 5, 6, 7. 1640 01:10:13,702 --> 01:10:16,060 1641 01:10:16,060 --> 01:10:16,750 Lahat ng karapatan. 1642 01:10:16,750 --> 01:10:20,945 Kaya aming mga elemento sa kasong ito ay magiging katumbas ng 4. 1643 01:10:20,945 --> 01:10:22,110 1644 01:10:22,110 --> 01:10:24,946 At mayroon kaming ilang j na magiging katumbas ng 1. 1645 01:10:24,946 --> 01:10:29,770 1646 01:10:29,770 --> 01:10:30,971 Oh, j ay decrementing. 1647 01:10:30,971 --> 01:10:31,720 Iyon ay kung ano ito. 1648 01:10:31,720 --> 01:10:35,680 Kaya j ay katumbas ng i, kaya kung ano ito ay sinasabi ay ang bilang ilipat naming inaabangan ang panahon, 1649 01:10:35,680 --> 01:10:37,530 ginagawa lang namin sigurado na hindi namin sa paglipas ng 1650 01:10:37,530 --> 01:10:43,520 pag-index ng paraang ito kung kailan namin sinusubukan magpasok ng mga bagay sa aming pinagsunod-sunod na listahan. 1651 01:10:43,520 --> 01:10:49,850 >> Kaya kapag j ay katumbas ng 1 sa kasong ito at array j minus one-- kaya array j minus 1 1652 01:10:49,850 --> 01:10:54,610 2 sa case-- kung na mas malaki kaysa sa elemento, 1653 01:10:54,610 --> 01:10:57,700 pagkatapos ang lahat ng ito ay ginagawa ay nagbabagong mga bagay pababa. 1654 01:10:57,700 --> 01:11:04,790 Kaya sa kasong ito, array j minus isa magiging array zero, na kung saan ay 2. 1655 01:11:04,790 --> 01:11:08,430 2 ay hindi mas mataas kaysa sa 4, kaya ito ay hindi maisagawa. 1656 01:11:08,430 --> 01:11:11,460 Kaya hindi ilipat ang shift pababa. 1657 01:11:11,460 --> 01:11:18,790 Ano ang ginagawa dito ay lamang paglipat ng iyong Pinagbukud-bukod array pababa. 1658 01:11:18,790 --> 01:11:22,340 1659 01:11:22,340 --> 01:11:26,400 Sa kasong ito, talaga, namin maaaring do-- gumawa ng ang 3 ipaalam. 1660 01:11:26,400 --> 01:11:28,080 1661 01:11:28,080 --> 01:11:31,970 Kaya, kung hindi kami upang maglakad sa pamamagitan ng sa halimbawang ito, hindi namin ngayon dito. 1662 01:11:31,970 --> 01:11:32,740 Ito ay pinagsunod-sunod. 1663 01:11:32,740 --> 01:11:34,492 1664 01:11:34,492 --> 01:11:35,200 Ito ay unsorted. 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 Kaya i ay katumbas ng 2, kaya ang aming elemento ay katumbas ng 3. 1668 01:11:46,620 --> 01:11:47,920 1669 01:11:47,920 --> 01:11:52,270 At ang aming j ay katumbas ng 2. 1670 01:11:52,270 --> 01:12:00,620 Kaya umaasa kaming sa pamamagitan at kami sabihin, OK, ay array j minus isa 1671 01:12:00,620 --> 01:12:03,470 mas malaki kaysa sa elemento na kaming naghahanap sa? 1672 01:12:03,470 --> 01:12:05,540 At ang sagot ay oo, tama? 1673 01:12:05,540 --> 01:12:11,275 4 ay mas mataas kaysa sa 3 at j 2, kaya executes ang code na ito. 1674 01:12:11,275 --> 01:12:12,510 1675 01:12:12,510 --> 01:12:18,550 >> Kaya ngayon kung ano ang ginagawa namin ang isang array sa 2, kaya dito mismo, swap namin ang mga ito. 1676 01:12:18,550 --> 01:12:25,620 Kaya sabihin lang namin, OK, array sa 2 ay pupunta na ngayon upang maging 3. 1677 01:12:25,620 --> 01:12:28,130 1678 01:12:28,130 --> 01:12:32,340 At j ay pagpunta upang pumatas j minus 1, na kung saan ay 1. 1679 01:12:32,340 --> 01:12:34,590 1680 01:12:34,590 --> 01:12:37,200 Iyon ay kasindak-sindak, ngunit mo guys makakuha ng ideya. 1681 01:12:37,200 --> 01:12:38,360 J ay katumbas ng 1 ngayon. 1682 01:12:38,360 --> 01:12:44,360 At array j ay lamang ng pagpunta sa maging katumbas ng aming mga elemento, na kung saan ay 4. 1683 01:12:44,360 --> 01:12:45,950 1684 01:12:45,950 --> 01:12:48,570 Mabubura ko ng isang bagay na hindi ko dapat mayroon o miswrote isang bagay, 1685 01:12:48,570 --> 01:12:49,910 ngunit guys makuha ang ideya. 1686 01:12:49,910 --> 01:12:50,640 >> Ito ilipat sa n. 1687 01:12:50,640 --> 01:12:51,920 1688 01:12:51,920 --> 01:12:57,960 At pagkatapos ay kung ito ay, gagawin ito loop muli at nais itong sabihin, OK, j ay 1 ngayon. 1689 01:12:57,960 --> 01:13:00,665 At array j minus 1 2 ngayon. 1690 01:13:00,665 --> 01:13:01,750 1691 01:13:01,750 --> 01:13:03,760 2 mas mababa sa aming mga elemento? 1692 01:13:03,760 --> 01:13:04,540 Walang? 1693 01:13:04,540 --> 01:13:07,970 Nangangahulugan iyon na hindi namin Ipinasok ang elementong ito 1694 01:13:07,970 --> 01:13:10,110 sa tamang lugar sa aming pinagsunod-sunod array. 1695 01:13:10,110 --> 01:13:14,400 Pagkatapos ay maaari naming tumagal ito at sabihin namin, OK, ang aming pinagsunod-sunod array ay dito. 1696 01:13:14,400 --> 01:13:19,940 At nais itong tumagal ito bilang 6 at maging tulad ng, OK, 6 na mas mababa ang bilang na ito? 1697 01:13:19,940 --> 01:13:20,480 Walang? 1698 01:13:20,480 --> 01:13:21,080 Ayos. 1699 01:13:21,080 --> 01:13:22,680 Humihingi kami ng multa. 1700 01:13:22,680 --> 01:13:23,530 >> Gawin itong muli. 1701 01:13:23,530 --> 01:13:24,740 Sabihin namin 7. 1702 01:13:24,740 --> 01:13:29,010 7 mas mababa sa dulo sa aming mga Pinagbukud-bukod array? 1703 01:13:29,010 --> 01:13:29,520 Hindi. 1704 01:13:29,520 --> 01:13:30,430 Kaya hindi namin pinong. 1705 01:13:30,430 --> 01:13:32,760 Kaya ito ay pinagsunod-sunod. 1706 01:13:32,760 --> 01:13:38,610 Talaga ginagawa ang lahat ng ito ay nagsasabing ito ay tumagal 1707 01:13:38,610 --> 01:13:42,060 sa unang elemento ng ang iyong unsorted array, 1708 01:13:42,060 --> 01:13:46,010 malaman kung saan ito napupunta sa iyong Pinagbukud-bukod ng array. 1709 01:13:46,010 --> 01:13:48,780 At ito lamang ay tumatagal ng pag-aalaga ng swaps upang gawin iyon. 1710 01:13:48,780 --> 01:13:51,300 Talaga ka lamang pagpapalit hanggang sa ito ay nasa tamang lugar. 1711 01:13:51,300 --> 01:13:53,600 1712 01:13:53,600 --> 01:13:56,990 Ang visual na imahe ay na ikaw ay paglipat ng lahat ng bagay down na sa pamamagitan ng paggawa na. 1713 01:13:56,990 --> 01:13:59,420 >> Kaya tulad ng kalahati ng bubble-uuri-esque. 1714 01:13:59,420 --> 01:14:02,280 1715 01:14:02,280 --> 01:14:03,420 Tingnan ang pag-aaral 50. 1716 01:14:03,420 --> 01:14:06,000 Masidhing kong inirerekumendang sinusubukan sa code na ito sa iyong sariling. 1717 01:14:06,000 --> 01:14:07,220 1718 01:14:07,220 --> 01:14:12,450 Kung mayroon kang anumang mga isyu o nais mong makita ang mga sample code para sa isang pag-uuri ng pagpapasok ng, 1719 01:14:12,450 --> 01:14:13,750 mangyaring ipaalam sa akin. 1720 01:14:13,750 --> 01:14:14,500 Ako ay palaging sa paligid. 1721 01:14:14,500 --> 01:14:16,600 1722 01:14:16,600 --> 01:14:20,200 Kaya pinakamasama kaso runtime at pinakamahusay na kaso runtime. 1723 01:14:20,200 --> 01:14:30,700 Habang ikaw tao Nakita mula sa talahanayan ko na Nagpakita sa iyo, ito ay pareho n nakalapat at n. 1724 01:14:30,700 --> 01:14:35,590 >> Kaya uri ng pagpunta off ng kung ano ang namin ang usapan tungkol sa aming mga nakaraang mga uri, pinakamalala 1725 01:14:35,590 --> 01:14:38,760 kaso runtime ay kung ganap na ito ay unsorted, 1726 01:14:38,760 --> 01:14:42,530 mayroon kaming upang ihambing ang lahat ng mga oras na ito n. 1727 01:14:42,530 --> 01:14:47,020 Ginagawa namin ang isang buong maraming mga paghahambing dahil kung ito ay sa reverse pagkakasunud-sunod, 1728 01:14:47,020 --> 01:14:50,360 kami ay pagpunta sa sabihin, OK, ito ay pareho, ito ay mabuti, 1729 01:14:50,360 --> 01:14:54,650 at ang isang ito ay magkakaroon upang maihambing laban sa unang isa upang ilipat pabalik. 1730 01:14:54,650 --> 01:14:56,710 At bilang makuha namin patungo sa ang huli, mayroon kaming 1731 01:14:56,710 --> 01:14:59,440 upang ihambing, ihambing, at ihambing kumpara sa lahat ng bagay. 1732 01:14:59,440 --> 01:15:03,030 >> Kaya ito ay nagtatapos up pagiging humigit-kumulang n nakalapat. 1733 01:15:03,030 --> 01:15:09,510 Kung ito ay tama pagkatapos mong sabihin, OK, 2, ikaw ay mabuti. 1734 01:15:09,510 --> 01:15:11,330 3, naka-kumpara sa 2. 1735 01:15:11,330 --> 01:15:12,310 Kayo ay mabuti. 1736 01:15:12,310 --> 01:15:14,150 4, ihambing mo lamang na ang buntot. 1737 01:15:14,150 --> 01:15:14,990 Kayo ay mabuti. 1738 01:15:14,990 --> 01:15:17,140 6, nakakasabay sa likod o hulihan, ikaw ay multa. 1739 01:15:17,140 --> 01:15:20,870 Kaya para sa bawat lugar kung ito ay nasa pinagsunod-sunod, nagsasagawa ka ng isang paghahambing. 1740 01:15:20,870 --> 01:15:22,320 Kaya n lamang. 1741 01:15:22,320 --> 01:15:26,840 At dahil mayroon kaming pinakamahusay na kaso runtime ng n at isang pinakamasama kaso runtime ng n 1742 01:15:26,840 --> 01:15:28,680 nakalapat, wala kaming inaasahang runtime. 1743 01:15:28,680 --> 01:15:31,290 1744 01:15:31,290 --> 01:15:34,020 >> Depende lang ito sa kaguluhan ng aming listahan doon. 1745 01:15:34,020 --> 01:15:35,860 1746 01:15:35,860 --> 01:15:39,530 At muli, isa pang graph at isa pang table. 1747 01:15:39,530 --> 01:15:41,170 Kaya pagkakaiba sa pagitan ng mga uri. 1748 01:15:41,170 --> 01:15:44,180 Lamang ako ng pagpunta sa Breeze sa pamamagitan, ako parang na-usapan natin ang malawakan 1749 01:15:44,180 --> 01:15:46,570 tungkol sa kung paano nila ang lahat ng uri ng mag-iba at i-link nang magkasama. 1750 01:15:46,570 --> 01:15:50,564 Kaya magsamang bumaybay-uri-uriin na ang huli Dapat kong mayamot mo guys sa. 1751 01:15:50,564 --> 01:15:52,105 Kami ay may kaakit-akit na makulay na larawan. 1752 01:15:52,105 --> 01:15:53,860 1753 01:15:53,860 --> 01:15:56,040 Kaya sumanib-uuri ay isang recursive algorithm. 1754 01:15:56,040 --> 01:15:59,910 Kaya alam mo kung ano ang guys isang recursive function ay? 1755 01:15:59,910 --> 01:16:01,550 1756 01:16:01,550 --> 01:16:03,320 >> Sinuman gustong sabihin? 1757 01:16:03,320 --> 01:16:04,739 Gusto mong subukan? 1758 01:16:04,739 --> 01:16:07,280 Kaya isang recursive function ay lamang isang function na tawag mismo. 1759 01:16:07,280 --> 01:16:08,570 1760 01:16:08,570 --> 01:16:11,590 Kaya kung guys ay pamilyar sa pagkakasunud-sunod Fibonacci, 1761 01:16:11,590 --> 01:16:15,670 na itinuring na recursive dahil Dadalhin ka sa nakaraang dalawang 1762 01:16:15,670 --> 01:16:17,530 at idagdag ang mga ito nang sama-sama upang makuha ang iyong susunod na isa. 1763 01:16:17,530 --> 01:16:21,440 Kaya recursive, ako palaging tingin ng Rekursiyon bilang tulad ng isang spiral 1764 01:16:21,440 --> 01:16:24,430 kaya ikaw ay tulad ng spiraling down sa mga ito. 1765 01:16:24,430 --> 01:16:27,150 Ngunit ito ay isang function na lamang na pagtawag mismo. 1766 01:16:27,150 --> 01:16:32,660 >> At, talaga, talagang mabilis ako maaaring ipakita sa iyo kung ano na kamukha. 1767 01:16:32,660 --> 01:16:34,260 1768 01:16:34,260 --> 01:16:41,840 Kaya recursive dito, kung tiningnan namin, ito ay ang recursive na paraan upang sabihin sa ilang sa ibabaw ng isang array. 1769 01:16:41,840 --> 01:16:45,900 1770 01:16:45,900 --> 01:16:47,880 Kaya lahat na ginagawa namin ay mayroon kaming kabuuan ng function 1771 01:16:47,880 --> 01:16:52,210 kabuuan na tumatagal ng isang sukat at isang array. 1772 01:16:52,210 --> 01:16:55,210 At kung napansin mo, laki decrements sa pamamagitan ng isa sa bawat oras. 1773 01:16:55,210 --> 01:17:00,365 At lahat ng ginagawa nito ay kung ang x ay katumbas ng zero-- kaya kung ang laki ng array 1774 01:17:00,365 --> 01:17:02,710 ay katumbas ng zero-- ay nagbalik ito sa zero. 1775 01:17:02,710 --> 01:17:10,440 >> Kung hindi man sums ito sa ganitong huling elemento ng array, 1776 01:17:10,440 --> 01:17:14,790 at pagkatapos ay tumatagal ng isang kabuuan ng ang natitirang bahagi ng array. 1777 01:17:14,790 --> 01:17:17,555 Kaya lang nagbabagang ito pababa sa mas maliit at mas maliit na problema. 1778 01:17:17,555 --> 01:17:18,990 1779 01:17:18,990 --> 01:17:21,890 Long kuwento maikli, Rekursiyon, function na tawag mismo. 1780 01:17:21,890 --> 01:17:25,740 Kung iyon ang lahat na nakuha sa labas ng ito, iyon ang isang recursive function ay. 1781 01:17:25,740 --> 01:17:29,870 Kung kumuha ka ng 51, makakakuha ka ng napaka, napaka-kumportable sa Rekursiyon. 1782 01:17:29,870 --> 01:17:31,110 1783 01:17:31,110 --> 01:17:32,370 Ito ay talagang cool. 1784 01:17:32,370 --> 01:17:34,660 Ito ginawa kahulugan sa tulad ng 03:00 isang gabi out. 1785 01:17:34,660 --> 01:17:37,900 At ako ay tulad ng, kung bakit na Hindi ko kailanman gamitin ito? 1786 01:17:37,900 --> 01:17:39,170 1787 01:17:39,170 --> 01:17:42,430 >> Kaya para sa pag-uuri-merge, talaga kung ano ang pagpunta sa gawin ay ito 1788 01:17:42,430 --> 01:17:45,620 pagpunta sa masira ito down at masira ito pababa hanggang sa ito lamang ang nag-iisang elemento. 1789 01:17:45,620 --> 01:17:47,570 Ang nag-iisang elemento ay madaling ayusin. 1790 01:17:47,570 --> 01:17:48,070 Nakita namin na. 1791 01:17:48,070 --> 01:17:50,760 Kung mayroon kang isang elemento, ito ay na itinuturing na pinagsunod-sunod. 1792 01:17:50,760 --> 01:17:53,800 Kaya sa isang input ng n elemento, kung n ay mas mababa sa 2, 1793 01:17:53,800 --> 01:17:58,120 bumalik lamang dahil paraan na ito ay alinman sa 0 o 1 bilang nasaksihan namin. 1794 01:17:58,120 --> 01:18:00,050 Yaong ay itinuturing na pinagsunod-sunod ng mga elemento. 1795 01:18:00,050 --> 01:18:02,170 >> Kung hindi man masira ito sa kalahati. 1796 01:18:02,170 --> 01:18:06,336 -Uri-uriin ang unang kalahati, uri-uriin ang pangalawang kalahati, at pagkatapos ay pagsamahin ang mga ito nang magkakasama. 1797 01:18:06,336 --> 01:18:07,460 Bakit ay tinatawag na ito-uri-uriin merge. 1798 01:18:07,460 --> 01:18:08,700 1799 01:18:08,700 --> 01:18:12,155 Kaya mayroon kaming dito namin uri-uriin ang mga ito. 1800 01:18:12,155 --> 01:18:13,410 1801 01:18:13,410 --> 01:18:17,210 Kaya panatilihin namin ang pagkakaroon ng mga ito hanggang sa laki ng array ay 1. 1802 01:18:17,210 --> 01:18:20,790 Kaya kapag 1, bumalik lang kami dahil ito ay isang Pinagbukud-bukod array, 1803 01:18:20,790 --> 01:18:23,940 at ito ay isang Pinagbukud-bukod array, at iyon ang Pinagbukud-bukod ng array, lahat kami ay pinagsunod-sunod. 1804 01:18:23,940 --> 01:18:25,390 1805 01:18:25,390 --> 01:18:29,420 Kaya pagkatapos ay kung ano ang ginagawa namin ay namin simulan pinagsasama ang mga iyon nang magkakasama. 1806 01:18:29,420 --> 01:18:31,820 >> Kaya ang paraan na makakaya mo isipin ang tungkol sa pagsasama ay 1807 01:18:31,820 --> 01:18:36,240 alisin mo lamang ang mas maliit bilang ng bawat isa sa mga sub array 1808 01:18:36,240 --> 01:18:38,330 at ikabit lamang ito sa lumitaw array. 1809 01:18:38,330 --> 01:18:44,290 Kaya't kung tiningnan mo dito, kapag mayroon kami mga hanay ng mayroon kaming 4, 6, at 1. 1810 01:18:44,290 --> 01:18:47,280 Kapag gusto naming pagsamahin ang mga ito, tinitingnan namin ang mga unang dalawang 1811 01:18:47,280 --> 01:18:50,730 at sabihin namin, OK, 1 ay mas maliit, ito ang papunta sa front. 1812 01:18:50,730 --> 01:18:54,330 4 at 6, walang upang ihambing ang ito sa, i-tag lang ito sa sa dulo. 1813 01:18:54,330 --> 01:18:58,020 >> Kapag pagsamahin namin ang dalawang, namin lamang gawin ang mga mas maliit na ang isa sa mga dalawang, 1814 01:18:58,020 --> 01:18:59,310 kaya 1. 1815 01:18:59,310 --> 01:19:01,690 At ngayon ginagawa namin ang mas maliit sa dalawang, kaya 2. 1816 01:19:01,690 --> 01:19:03,330 Mas maliit sa dalawang, 3. 1817 01:19:03,330 --> 01:19:06,260 Mas maliit sa dalawang, 4, 5, 6. 1818 01:19:06,260 --> 01:19:08,630 Kaya ka lamang ng paghila off ang mga ito. 1819 01:19:08,630 --> 01:19:11,210 At dahil na sila na pinagsunod-sunod sa nakaraan, 1820 01:19:11,210 --> 01:19:14,300 Mayroon ka lamang ng isa paghahambing sa bawat oras doon. 1821 01:19:14,300 --> 01:19:19,610 Kaya nang higit pa code dito, representasyon lamang. 1822 01:19:19,610 --> 01:19:24,410 Kaya simulan mo sa gitna at ka-uri-uriin kaliwa at kanan 1823 01:19:24,410 --> 01:19:26,180 at pagkatapos ay pagsamahin mo lamang ang mga naka. 1824 01:19:26,180 --> 01:19:30,080 >> At wala kaming code para magsamang bumaybay dito mismo. 1825 01:19:30,080 --> 01:19:34,110 Ngunit, muli, kung pumunta ka sa pag-aaral 50, magkakaroon ito maging doon. 1826 01:19:34,110 --> 01:19:36,860 Kung hindi man ay makipag-usap sa akin kung ikaw ay lito pa rin. 1827 01:19:36,860 --> 01:19:42,340 Kaya cool na bagay dito ay ang pinakamahusay na sitwasyon, pinakamasamang sitwasyon, at inaasahan runtime 1828 01:19:42,340 --> 01:19:46,250 ang lahat ng log-in n, na ay malayo mas mahusay kaysa sa hindi namin 1829 01:19:46,250 --> 01:19:48,000 nakita para sa natitirang bahagi ng aming mga klase. 1830 01:19:48,000 --> 01:19:51,840 Nasaksihan namin n nakalapat at kung ano ang namin ang aktwal na 1831 01:19:51,840 --> 01:19:54,380 makarating dito ay n log n, na mahusay. 1832 01:19:54,380 --> 01:19:55,830 >> Tumingin sa kung magkano ang mas mahusay na. 1833 01:19:55,830 --> 01:19:56,780 Ang nasabing mga gandang curve. 1834 01:19:56,780 --> 01:19:58,130 1835 01:19:58,130 --> 01:20:00,120 Kaya lubos na mas mahusay. 1836 01:20:00,120 --> 01:20:03,510 Kung sakaling maaari, gamitin ang magsamang bumaybay-uri-uriin. 1837 01:20:03,510 --> 01:20:04,810 Ito ay i-save sa iyo ng oras. 1838 01:20:04,810 --> 01:20:07,670 Pagkatapos muli, tulad ng sinabi namin, kung ikaw ay pababa sa mas mababang rehiyon, 1839 01:20:07,670 --> 01:20:09,480 hindi ito gawin iyon karami ng isang pagkakaiba. 1840 01:20:09,480 --> 01:20:11,360 Makakakuha ka ng hanggang sa libu-libo at libu-libong mga input, 1841 01:20:11,360 --> 01:20:13,318 gusto mo talagang isang mas mahusay na algorithm. 1842 01:20:13,318 --> 01:20:14,730 1843 01:20:14,730 --> 01:20:19,400 At, muli, ang aming kaibig-ibig talahanayan ng lahat ng uri na natutunan sa iyo guys ngayon. 1844 01:20:19,400 --> 01:20:21,157 >> Kaya alam ko naging isang siksikan na araw. 1845 01:20:21,157 --> 01:20:23,490 Ito ay hindi kinakailangan ng pagpunta upang tulungan ka sa iyong pset. 1846 01:20:23,490 --> 01:20:28,250 Pero gusto ko lang gumawa ng disclaimer seksyong iyon ay hindi lamang tungkol sa psets. 1847 01:20:28,250 --> 01:20:31,240 Ang lahat ng mga materyales na ito ay patas laro para sa iyong midterms. 1848 01:20:31,240 --> 01:20:35,430 At din kung gagawin mo magpatuloy sa may CS, ang mga ito ay talagang mahalaga batayan 1849 01:20:35,430 --> 01:20:37,870 na kakailanganin mo upang malaman. 1850 01:20:37,870 --> 01:20:41,700 Kaya ilang mga araw ay magiging isang kaunti pa pset tulong, 1851 01:20:41,700 --> 01:20:44,600 ngunit ang ilang linggo ay magiging higit pa aktwal na nilalaman 1852 01:20:44,600 --> 01:20:46,600 na maaaring hindi mukhang super kapaki-pakinabang sa iyo sa ngayon, 1853 01:20:46,600 --> 01:20:51,215 ngunit ipinapangako ko kung patuloy kang sa ay napaka, napaka-kapaki-pakinabang. 1854 01:20:51,215 --> 01:20:52,560 1855 01:20:52,560 --> 01:20:54,250 >> Kaya na ito para sa na seksyon. 1856 01:20:54,250 --> 01:20:55,250 Pababa sa wire. 1857 01:20:55,250 --> 01:20:56,570 Ginawa ko ito sa loob ng isang minuto. 1858 01:20:56,570 --> 01:20:58,262 1859 01:20:58,262 --> 01:20:58,970 Ngunit may kang pumunta. 1860 01:20:58,970 --> 01:21:01,240 At ako ay may donut o kendi. 1861 01:21:01,240 --> 01:21:03,464 Ay sinuman allergy upang anumang bagay, sa pamamagitan ng ang paraan? 1862 01:21:03,464 --> 01:21:05,307 1863 01:21:05,307 --> 01:21:05,890 Mga itlog at gatas. 1864 01:21:05,890 --> 01:21:08,120 Kaya donut ang hindi? 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 Lahat ng karapatan. 1868 01:21:10,770 --> 01:21:12,120 Chocolate walang? 1869 01:21:12,120 --> 01:21:12,620 Starburst. 1870 01:21:12,620 --> 01:21:13,837 1871 01:21:13,837 --> 01:21:14,670 Starbursts ang mga magandang. 1872 01:21:14,670 --> 01:21:15,170 OK. 1873 01:21:15,170 --> 01:21:17,045 Kami ay pagpunta sa may Starburst sa susunod na linggo pagkatapos. 1874 01:21:17,045 --> 01:21:18,240 Iyon ay kung ano ang makikita na nakukuha ko. 1875 01:21:18,240 --> 01:21:19,690 Ikaw guys magkaroon ng isang mahusay na linggo. 1876 01:21:19,690 --> 01:21:20,460 Basahin ang iyong mga spec. 1877 01:21:20,460 --> 01:21:22,130 >> Ipaalam sa akin kung mayroon kang anumang mga katanungan. 1878 01:21:22,130 --> 01:21:25,300 Pset dalawang mga marka ay dapat na out sa iyo sa pamamagitan ng Huwebes. 1879 01:21:25,300 --> 01:21:28,320 Kung mayroon kang anumang mga katanungan tungkol sa kung paano ko namarkahan ang isang bagay 1880 01:21:28,320 --> 01:21:32,250 o kung bakit minamarkahan ko ng isang bagay sa paraan ko nag, mangyaring mag-email sa akin, ay makipag-usap sa akin. 1881 01:21:32,250 --> 01:21:34,210 Ako ay isang maliit na mabaliw na ito linggo, ngunit nangangako ako 1882 01:21:34,210 --> 01:21:36,340 Ako ay tumugon pa rin sa loob ng 24 na oras. 1883 01:21:36,340 --> 01:21:38,240 Kaya magkaroon ng isang mahusay na linggo, sa lahat. 1884 01:21:38,240 --> 01:21:40,090 Good luck sa iyong pset. 1885 01:21:40,090 --> 01:21:41,248