1 00:00:00,000 --> 00:00:11,904 >> [Musika jotzen] 2 00:00:11,904 --> 00:00:12,910 >> Irakaslea: Ondo da. 3 00:00:12,910 --> 00:00:16,730 Hau CS50 da, eta hau da hiru aste bukaeran zehar. 4 00:00:16,730 --> 00:00:20,230 Beraz, hemen gaude gaur, ez Sanders Antzerkia, ordez Weidner liburutegian. 5 00:00:20,230 --> 00:00:23,170 Horietatik Inside estudio bat da Hauser Studio bezala ezagutzen, 6 00:00:23,170 --> 00:00:28,310 edo Studio H erranen dugu, ala Txiste hori gozatu baduzu esaten dugu, 7 00:00:28,310 --> 00:00:30,540 benetan da bertatik ikaskide, Mark, online, 8 00:00:30,540 --> 00:00:32,420 duten bezainbeste iradoki Twitter bidez. 9 00:00:32,420 --> 00:00:34,270 Orain zer buruz cool Hemen izateaz estudio batean 10 00:00:34,270 --> 00:00:38,410 dela berde horiek naiz inguratuta hormak, pantaila edo gako-kromatikoa berde bat, 11 00:00:38,410 --> 00:00:43,290 nolabait esateko, eta horrek esan nahi CS50 duten Ekoizpen taldeko, me unbeknownst 12 00:00:43,290 --> 00:00:47,380 oraintxe, barkatu izan daiteke Niri gehien munduko edozein lekutan, 13 00:00:47,380 --> 00:00:48,660 onerako zein txarrerako. 14 00:00:48,660 --> 00:00:51,800 >> Orain zer datza aurretik, arazoa ezarri Zure eskuetan bi da aste honetan, 15 00:00:51,800 --> 00:00:53,830 baina arazoa ezarri Hiru datorren astean, 16 00:00:53,830 --> 00:00:56,600 izango duzu desafioa egingo Partiduko 15 deiturikoak, 17 00:00:56,600 --> 00:00:58,960 alderdi horren aldeko zahar bat jasotzeko gogoratzen dezakezu 18 00:00:58,960 --> 00:01:02,030 Hori sorta oso bat du, haur bat bezala Hori irristatu gora, behera zenbakien, 19 00:01:02,030 --> 00:01:05,790 ezker eta eskuin, eta hutsune bat da Puzzlearen, barruan zein sartu duzu 20 00:01:05,790 --> 00:01:07,840 benetan puzzle pieza horiek irristatu. 21 00:01:07,840 --> 00:01:11,150 Azken finean hau jasoko duzu erdi ausazko ordena batzuetan ere nahasten, 22 00:01:11,150 --> 00:01:12,940 eta helburua da ordenatzeko zen, goitik behera, 23 00:01:12,940 --> 00:01:16,310 Ezkerretik eskuinera, batetik modu guztiak 15 bidez eman. 24 00:01:16,310 --> 00:01:19,360 >> Zoritxarrez, ezartzeko egingo eskuz duzu 25 00:01:19,360 --> 00:01:21,590 dago software izango da oinarritzen da, ez fisikoki. 26 00:01:21,590 --> 00:01:25,280 Benetan ari zaren den idatzi behar joan kode horrek, ikaslea edo erabiltzaile can batekin 27 00:01:25,280 --> 00:01:26,760 15 partida jokatzeko. 28 00:01:26,760 --> 00:01:29,030 Eta hain zuzen ere, hacker-en 15 partida edizioan, 29 00:01:29,030 --> 00:01:32,155 ezartzea erronka bat izango zara, ez soilik eskola zaharra honen erreprodukzioa 30 00:01:32,155 --> 00:01:35,010 Joko, baizik eta ebazteko Da, jainko moduan gauzatzeko, 31 00:01:35,010 --> 00:01:38,280 nolabait esateko, egia esan, Puzzlearen konpontzen gizakiaren alde, 32 00:01:38,280 --> 00:01:41,080 emanez iradokizun batekin, iradokizun ondoren, iradokizun ondoren. 33 00:01:41,080 --> 00:01:42,280 Beraz, hurrengo astean gehiago. 34 00:01:42,280 --> 00:01:43,720 Baina zer dago aurretik da. 35 00:01:43,720 --> 00:01:47,610 >> Oraingoz, gogora ekarri du lehenago aste honetan cliffhanger hau izan genuen, bada, 36 00:01:47,610 --> 00:01:52,560 Horren bidez, onena egiten ari ginen ordenatze jakintsua goiko handietako bat lotu n o zen 37 00:01:52,560 --> 00:01:53,210 karratu. 38 00:01:53,210 --> 00:01:56,520 Beste era batera esanda, burbuila ordenatu, aukeraketa ordenatu, txertatzeko ordenatu, 39 00:01:56,520 --> 00:01:59,120 horiek guztiak, ezberdinak bitartean horien ezartzea ere, 40 00:01:59,120 --> 00:02:03,480 n bat devolved karratu exekutatzen Kasu oso txarrenean denbora. 41 00:02:03,480 --> 00:02:06,010 Eta, oro har, bere gain hartzen dugu, ordenatzeko kasuan oso txarrena 42 00:02:06,010 --> 00:02:08,814 Zure sarrera dela dira erabat atzera. 43 00:02:08,814 --> 00:02:11,980 Eta hain zuzen ere, urrats batzuk nahiko hartu zuen algoritmo horietako bakoitza ezartzeko. 44 00:02:11,980 --> 00:02:15,110 >> Orain klasearen amaieran oroitzapen, burbuila moduko aldean dugu 45 00:02:15,110 --> 00:02:19,390 aukeraketa bat bestearen aurka moduko aurka merge garai hartan, izenez duguna, 46 00:02:19,390 --> 00:02:22,120 eta hori egiten ari da proposatzen dut Aste ikasgai bat oso ondo 47 00:02:22,120 --> 00:02:24,060 zero, zatitu eta irabazi. 48 00:02:24,060 --> 00:02:28,810 Eta, nolabait, nolabaiteko lortzea logaritmikoa denbora, azken finean, korrika, 49 00:02:28,810 --> 00:02:31,024 zerbait ordez soilik quadratic da. 50 00:02:31,024 --> 00:02:33,440 Eta ez da nahiko logaritmikoa, Hori baino pixka bat gehiago da. 51 00:02:33,440 --> 00:02:36,520 Gogora class batetik bada, ordea, Askoz zen, askoz azkarrago. 52 00:02:36,520 --> 00:02:38,210 Ikus dezagun non utzi dugun begirada bat. 53 00:02:38,210 --> 00:02:41,880 54 00:02:41,880 --> 00:02:45,370 >> Burbuila ordenatu aukeraketa versus moduko batu ordenatu versus. 55 00:02:45,370 --> 00:02:47,700 Orain guztiak, exekutatzen ari dira ere Teorian, aldi berean. 56 00:02:47,700 --> 00:02:50,510 PUZak abiadura berean exekutatzen ari da. 57 00:02:50,510 --> 00:02:54,990 Baina sentitu ahal izango duzu nola aspergarria honetan hau da, oso azkar joan bihurtu da, 58 00:02:54,990 --> 00:02:58,790 eta nola azkar, betiere injektatu dugu Aste zero en algoritmoak apur bat, 59 00:02:58,790 --> 00:03:00,080 Gauzak ahal azkartuko dugu martxan. 60 00:03:00,080 --> 00:03:01,630 >> Beraz, marka moduko itxura harrigarria. 61 00:03:01,630 --> 00:03:05,220 Nola daiteke onura dugu, ordena zenbakiak azkarrago ordenatzeko. 62 00:03:05,220 --> 00:03:07,140 Beno uste atzera utzi osagai bat behar dugula 63 00:03:07,140 --> 00:03:10,380 Atzera izan aste zero, duten Norbait bilatzen telefono-liburu batean, 64 00:03:10,380 --> 00:03:12,380 eta hori, gogora ekarri pseudocode proposatu dugu, 65 00:03:12,380 --> 00:03:14,560 horren bidez aurkitu ahal izango dugu Mike Smith bezalako norbait, 66 00:03:14,560 --> 00:03:16,310 honen antzeko zerbait apur bat begiratu. 67 00:03:16,310 --> 00:03:20,820 >> Orain hartu bereziki begirada bat lerroan 7 eta 8an, eta 10 eta 11, 68 00:03:20,820 --> 00:03:25,240 bertan amaitzen da hori bultzatu, zeinaren mantenduko dugu 3. lineak atzera joan berriro, eta berriro, 69 00:03:25,240 --> 00:03:26,520 eta berriro. 70 00:03:26,520 --> 00:03:31,790 Baina bihurtzen da hori ikusteko aukera izango dugu Algoritmo hau, hemen pseudocode, 71 00:03:31,790 --> 00:03:33,620 apur bat gehiago pelikula. 72 00:03:33,620 --> 00:03:35,960 Izan ere, zer egiten dit Hemen da pantailan at, 73 00:03:35,960 --> 00:03:41,180 bilatuta algoritmo bat da Mike Smith orri multzoa batzuen artean. 74 00:03:41,180 --> 00:03:45,520 Eta hain zuzen ere, hori errazteko genezake 7 eta 8 lerro horiek ere bildu, 75 00:03:45,520 --> 00:03:49,860 eta 10 eta 11 besterik esan honi, Horrek dut hemen aurkezten Nik horiz. 76 00:03:49,860 --> 00:03:52,210 Beste era batera esanda, bada Mike Smith lehenago liburua da, 77 00:03:52,210 --> 00:03:55,004 ez dugu behar urratsa zehazteko aukera Pausoz orain nola haren bila joan. 78 00:03:55,004 --> 00:03:56,920 Guk ez dugu izan den zehaztu atzera joan linea 3, 79 00:03:56,920 --> 00:03:58,960 zergatik ez dugu besterik ordez, esan, gehiago, oro har, 80 00:03:58,960 --> 00:04:01,500 bilatu Mike for the in ezker liburuaren erdia. 81 00:04:01,500 --> 00:04:03,960 >> Aitzitik, Mike bada benetan liburuan geroago, 82 00:04:03,960 --> 00:04:07,540 zergatik ez aipatu dugu besterik unquote bilaketa Mike eskubidea liburuaren erdia da. 83 00:04:07,540 --> 00:04:11,030 Beste era batera esanda, zergatik ez dugu besterik Sort geure esanez punt, 84 00:04:11,030 --> 00:04:13,130 bilatu Mike dagoen honetan Liburuaren azpimultzo, 85 00:04:13,130 --> 00:04:16,279 eta utzi gure lehendik Algoritmo gurekin kontatzeko 86 00:04:16,279 --> 00:04:18,750 nola bilatu Mike batean ezker liburu erdia. 87 00:04:18,750 --> 00:04:20,750 Bestela esanda, gure algoritmoa egiten du lan egiten duten 88 00:04:20,750 --> 00:04:24,670 Telefono lodiera honen liburu bat, honen lodiera edo inolako lodiera. 89 00:04:24,670 --> 00:04:27,826 Beraz errekurtsiboki ahal dugun define algoritmo hau. 90 00:04:27,826 --> 00:04:29,950 Beste era batera esanda, on the pantaila hemen, algoritmo bat da 91 00:04:29,950 --> 00:04:33,130 Mike Smith bilatzeko Telefono liburu baten orrialde artean. 92 00:04:33,130 --> 00:04:37,410 Beraz, linea 7 eta 10, dezagun besterik esan zehazki hori. 93 00:04:37,410 --> 00:04:40,250 Eta epe honetan une bat erabiltzen dut ago, eta, hain zuzen ere, errekurtsio 94 00:04:40,250 --> 00:04:42,450 buzzword da oraingoz, eta prozesu hori da 95 00:04:42,450 --> 00:04:47,210 Zerbait zikliko egiten nolabait arabera dagoeneko duzula kodea erabiliz, 96 00:04:47,210 --> 00:04:49,722 eta berriro deituz, eta berriro, eta berriro. 97 00:04:49,722 --> 00:04:51,930 Orain, garrantzitsua izango da nolabait behean dugun 98 00:04:51,930 --> 00:04:53,821 egindako, eta ez egin, infinituki luzea. 99 00:04:53,821 --> 00:04:56,070 Bestela goaz dute, hain zuzen ere, begizta amaigabea. 100 00:04:56,070 --> 00:04:59,810 Baina ikus dezagun ideia hori maileguan hartu ahal bada errekurtsio bat, zerbait egiten berriro 101 00:04:59,810 --> 00:05:03,600 eta behin eta berriro, konpondu ordenazio-merge bidez arazoa 102 00:05:03,600 --> 00:05:05,900 ordenatu, guztiak modu eraginkorrean. 103 00:05:05,900 --> 00:05:06,970 >> Beraz moduko batu ematen dizut. 104 00:05:06,970 --> 00:05:07,920 Ikus dezagun begirada bat. 105 00:05:07,920 --> 00:05:10,850 Hortaz, hona hemen pseudocode da, batez bertan ordenatzen den ezartzeko izan dugu, 106 00:05:10,850 --> 00:05:12,640 sort batu izeneko algoritmo honen bidez. 107 00:05:12,640 --> 00:05:13,880 Eta nahiko besterik gabe hau da. 108 00:05:13,880 --> 00:05:15,940 N elementuen sarrera, beste era batera esanda, ez bazaude 109 00:05:15,940 --> 00:05:18,830 Emandako n elementu eta zenbakiak eta hizkiak edo edozein dela ere sarrera da, 110 00:05:18,830 --> 00:05:22,430 n elementuak, bada ematen ari bada n 2 baino gutxiago, besterik gabe. 111 00:05:22,430 --> 00:05:22,930 Eskuin? 112 00:05:22,930 --> 00:05:26,430 N bada delako 2 baino gutxiago, Horregatik, nire elementu zerrenda 113 00:05:26,430 --> 00:05:30,446 tamaina 0 edo 1 bai da, eta Kasu horietan trivial bietan, 114 00:05:30,446 --> 00:05:31,570 Zerrenda dagoeneko ordenatuko da. 115 00:05:31,570 --> 00:05:32,810 Ez bada zerrenda ez da ordenatuko da. 116 00:05:32,810 --> 00:05:35,185 Eta han luzera zerrenda bat bada 1, jakina ordenatuko. 117 00:05:35,185 --> 00:05:38,280 Beraz algoritmoa bakarra behar du benetan zerbait interesgarria egiten, 118 00:05:38,280 --> 00:05:40,870 bi edo gehiago izanez dugu elementu ematen digu. 119 00:05:40,870 --> 00:05:42,440 Hargatik begiratu magia gero. 120 00:05:42,440 --> 00:05:47,500 Bestela elementuak ezkerreko erdia ordenatzeko, ondoren, eskuineko elementu erdia ordenatzeko, 121 00:05:47,500 --> 00:05:49,640 ondoren batu ordenatuko halves. 122 00:05:49,640 --> 00:05:52,440 Eta zer da kontuan mota okertuz Hemen, ez da hori egiten dut benetan 123 00:05:52,440 --> 00:05:56,190 Gezurra dela esan duzu ezer besterik ez da oraindik, ezta? 124 00:05:56,190 --> 00:05:59,560 Guztiak esan dut da, zerrenda bat ematen n elementu, ordenatzeko ezkerreko erdia, 125 00:05:59,560 --> 00:06:01,800 ondoren, eskuineko erdia, gero batu ordenatuko halves, 126 00:06:01,800 --> 00:06:03,840 baina non benetako saltsa sekretua? 127 00:06:03,840 --> 00:06:05,260 Non dago algoritmoa? 128 00:06:05,260 --> 00:06:09,150 Beno, bihurtzen da, bi lerro horiek direla Lehenengo, ordenatu geratzen elementu erdia, 129 00:06:09,150 --> 00:06:13,970 eta ordenatu eskuineko elementu erdia, dira dei errekurtsiboak, nolabait esateko. 130 00:06:13,970 --> 00:06:16,120 >> Azken finean, hau, Une, ez dut izan 131 00:06:16,120 --> 00:06:18,950 horrekin algoritmo bat ordenatzeko elementu sorta oso bat? 132 00:06:18,950 --> 00:06:19,450 Bai. 133 00:06:19,450 --> 00:06:20,620 Hemen da. 134 00:06:20,620 --> 00:06:25,180 Hemen da pantailan, eta beraz, urrats multzo hori bera erabili ahal izango dut 135 00:06:25,180 --> 00:06:28,500 ezkerreko erdia ordenatzeko, eskuineko erdia ahal dudan bezala. 136 00:06:28,500 --> 00:06:30,420 Eta hain zuzen ere, berriro, eta berriro. 137 00:06:30,420 --> 00:06:34,210 Beraz, nola edo hala, eta laster izango ditugu ikusi hau, batu, ordenatu magia 138 00:06:34,210 --> 00:06:37,967 hau da, oso final murgildurik lerroa, erdi ordenatuko batuz. 139 00:06:37,967 --> 00:06:39,300 Eta hori, badirudi nahiko intuitiboa. 140 00:06:39,300 --> 00:06:41,050 Bi erdi hartzen duzu, eta zuk, Nolabait, batu itzazu elkarrekin, 141 00:06:41,050 --> 00:06:43,260 eta ikusiko dugu hau Une batean konkretuki. 142 00:06:43,260 --> 00:06:45,080 >> Baina hau algoritmo bat da. 143 00:06:45,080 --> 00:06:46,640 Eta ikus dezagun zehazki zergatik. 144 00:06:46,640 --> 00:06:50,912 Pentsatzen ari garela horien eman Zortzi elementu hemen pantailan, inork 145 00:06:50,912 --> 00:06:53,120 Zortzi bidez, baina ari dira itxuraz ausazko ordenan. 146 00:06:53,120 --> 00:06:55,320 Eta esku helburua da elementu horiek ordenatzeko. 147 00:06:55,320 --> 00:06:58,280 Beno, nola egin daiteke hori itzultzea erabiliz egiten, berriro, 148 00:06:58,280 --> 00:07:00,407 batu, ordenatu, pseudocode honen arabera? 149 00:07:00,407 --> 00:07:02,740 Eta berriro ere, ingrain honetan zure kontuan, une bat besterik ez da. 150 00:07:02,740 --> 00:07:05,270 Lehenengo kasuan, nahiko da trivial, 2 baino gutxiago bada, 151 00:07:05,270 --> 00:07:07,060 besterik ez itzultzeko, ez dago lan egin behar da. 152 00:07:07,060 --> 00:07:09,290 Beraz, benetan, ez da, besterik gabe, hiru urrats benetan gogoan. 153 00:07:09,290 --> 00:07:11,081 Berriz ere, eta berriro, naiz izan nahi du 154 00:07:11,081 --> 00:07:13,980 ezkerreko erdia ordenatzeko, eskuineko erdia ordenatzeko, 155 00:07:13,980 --> 00:07:15,890 eta, ondoren, behin bere bi erdi antolatuko dira, 156 00:07:15,890 --> 00:07:18,710 Horiek elkarrekin batu nahi dut Zerrenda ordenatuko bat sartu. 157 00:07:18,710 --> 00:07:19,940 Beraz, kontuan izan hori. 158 00:07:19,940 --> 00:07:21,310 >> Beraz, hemen jatorrizko zerrenda da. 159 00:07:21,310 --> 00:07:23,510 Dezagun tratatzeko gisa array, hasi bezain dugu 160 00:07:23,510 --> 00:07:25,800 Aste bi urtean, hau da, bat Alboko memoria bloke. 161 00:07:25,800 --> 00:07:28,480 Kasu honetan, zortzi dituen zenbakiak, back to back back. 162 00:07:28,480 --> 00:07:30,700 Eta utzi batu ordenatu aplikatu en orain. 163 00:07:30,700 --> 00:07:33,300 Beraz, lehenengo ordenatzeko nahi dut ezker zerrenda honen erdia, 164 00:07:33,300 --> 00:07:37,370 eta dezagun, beraz, 4, 8, 6, eta 2 ardatz. 165 00:07:37,370 --> 00:07:41,000 >> Orain, nola ez, hori itzultzea tamaina 4 zerrenda bat ordenatzen den? 166 00:07:41,000 --> 00:07:45,990 Beno, orain kontuan hartu behar dut sailkatuz, ezkerreko erdia ezkerreko. 167 00:07:45,990 --> 00:07:47,720 Berriz ere, dezagun Errebobinatu une bat besterik ez da. 168 00:07:47,720 --> 00:07:51,010 Pseudocode da hau bada, eta naiz zortzi elementu jakin nuen, 169 00:07:51,010 --> 00:07:53,230 8 da, jakina, handiagoa edo baino 2 berdina. 170 00:07:53,230 --> 00:07:54,980 Beraz, lehenengo kasuan ez da aplikatzen. 171 00:07:54,980 --> 00:07:58,120 Beraz, zortzi elementu ordenatzeko, I lehen ezker elementu erdia ordenatzeko, 172 00:07:58,120 --> 00:08:01,930 ondoren, eskuineko erdia ordenatzeko nuen, orduan batu I ordenatzen bi erdi, tamaina 4 bakoitzeko. 173 00:08:01,930 --> 00:08:02,470 ONDO DA. 174 00:08:02,470 --> 00:08:07,480 >> Baina besterik ez duzun esan zidan bada, ordenatu ezkerreko erdia, orain tamaina 4 da, 175 00:08:07,480 --> 00:08:09,350 nola ez dut ezkerreko erdian ordenatzeko? 176 00:08:09,350 --> 00:08:11,430 Beno bat badut lau elementuen sarrera, 177 00:08:11,430 --> 00:08:14,590 Lehenengo ordenatzeko I ezkerrera bi, ondoren, eskuineko bi, 178 00:08:14,590 --> 00:08:16,210 eta, ondoren, horiek batzea dut elkarrekin. 179 00:08:16,210 --> 00:08:18,700 Beraz, berriro ere, pixka bat bihurtzen da kontuan okertuz Joko hemen, 180 00:08:18,700 --> 00:08:21,450 duzulako, mota, dute Gogoratzen non daude istorioan duzu, 181 00:08:21,450 --> 00:08:23,620 baina egunaren amaieran, emandako edozein elementu kopurua, 182 00:08:23,620 --> 00:08:25,620 Lehenengo ordenatu nahi duzu ezker erdia, gero eskuineko erdia, 183 00:08:25,620 --> 00:08:26,661 orduan batu itzazu elkarrekin. 184 00:08:26,661 --> 00:08:28,630 Hasiko da zehazki hori egin dezagun. 185 00:08:28,630 --> 00:08:30,170 Hemen zortzi elementuen sarrera da. 186 00:08:30,170 --> 00:08:31,910 Orain ari gara ezker erdia hemen bila. 187 00:08:31,910 --> 00:08:33,720 Zelan lau elementu ordenatzeko? 188 00:08:33,720 --> 00:08:35,610 Beno lehen ezkerreko erdian ordenatzeko dut. 189 00:08:35,610 --> 00:08:37,720 Orain, nola ez nuen ezkerreko erdian ordenatzeko? 190 00:08:37,720 --> 00:08:39,419 Beno Nik bi elementu. 191 00:08:39,419 --> 00:08:41,240 Hargatik bi elementu horiek ordenatzeko. 192 00:08:41,240 --> 00:08:44,540 2 baino handiagoa edo 2 berdina, noski. 193 00:08:44,540 --> 00:08:46,170 Beraz, lehenengo kasuan hori ez da aplikatzen. 194 00:08:46,170 --> 00:08:49,010 >> Beraz, orain ezkerrera ordenatzeko behar dut Bi elementu horien erdia. 195 00:08:49,010 --> 00:08:50,870 Ezker hamabostaldian, jakina, besterik 4 da. 196 00:08:50,870 --> 00:08:54,020 Beraz, nola ez, elementu bat zerrenda bat ordenatzeko dut? 197 00:08:54,020 --> 00:08:57,960 Beno, gaur egun, hori oinarri kasu bereziak Gora gora, nolabait esateko, aplikatzen. 198 00:08:57,960 --> 00:09:01,470 1 2 baino gutxiago da, eta nire Zerrenda 1. Tamaina, hain zuzen. 199 00:09:01,470 --> 00:09:02,747 Beraz itzultzeko besterik ez dut. 200 00:09:02,747 --> 00:09:03,580 Ez dut ezer egin. 201 00:09:03,580 --> 00:09:06,770 Eta hain zuzen ere, zer egin dut begiratu egin, 4 dagoeneko ordenatuko da. 202 00:09:06,770 --> 00:09:09,220 Like naiz jada partzialki hemen arrakasta. 203 00:09:09,220 --> 00:09:11,750 >> Orain dela ergelak mota badirudi , diotenez, baina egia da. 204 00:09:11,750 --> 00:09:13,700 4 tamaina 1 zerrenda bat da. 205 00:09:13,700 --> 00:09:15,090 Badago ordenatuta. 206 00:09:15,090 --> 00:09:16,270 Hori ezkerreko erdia. 207 00:09:16,270 --> 00:09:18,010 Orain eskuineko erdia ordenatzeko dut. 208 00:09:18,010 --> 00:09:22,310 Nire sarrera-elementu bat da, 8 era berean, dagoeneko horrela. 209 00:09:22,310 --> 00:09:25,170 Stupid, gehiegi, baina berriro ere, Oinarrizko printzipio hori 210 00:09:25,170 --> 00:09:28,310 da orain eraikitzeko gurekin uzten joan honen gainean arrakastaz. 211 00:09:28,310 --> 00:09:32,260 4 ordenatuko 8 ordenatzen da, orain Zer izan zen azken urrats hori? 212 00:09:32,260 --> 00:09:35,330 Beraz, hirugarren eta azken urratsa, edozein Garai batean zerrenda, abisuaren arabera ordenatzeko ari zaren, 213 00:09:35,330 --> 00:09:38,310 bi erdi batzea zen, ezker eta eskuin. 214 00:09:38,310 --> 00:09:39,900 Beraz, egin zehazki hori utzi. 215 00:09:39,900 --> 00:09:41,940 Nire ezkerreko erdia da, jakina, 4. 216 00:09:41,940 --> 00:09:43,310 Nire eskuineko erdia 8 da. 217 00:09:43,310 --> 00:09:44,100 >> Beraz, egin dezagun. 218 00:09:44,100 --> 00:09:46,410 Lehen naiz esleitu joan memoria pixka bat, 219 00:09:46,410 --> 00:09:48,680 hemen adierazten dut, bigarren mailako array bat besterik ez bezala, 220 00:09:48,680 --> 00:09:49,660 Hori nahikoa handi honek doitzeko da. 221 00:09:49,660 --> 00:09:52,243 Baina zabalduz imajinatu dezakezu Laukizuzen duten luzera osoan, 222 00:09:52,243 --> 00:09:53,290 gehiago beranduago behar izango bagenu. 223 00:09:53,290 --> 00:09:58,440 Zelan 4 hartzen dut eta 8, eta batu bi tamaina 1 elkarrekin zerrendak horiek? 224 00:09:58,440 --> 00:10:00,270 Hemen ere, nahiko erraz. 225 00:10:00,270 --> 00:10:03,300 4 dator lehen, orduan dator 8. 226 00:10:03,300 --> 00:10:07,130 Ordenatu nahi badut delako ezker erdia, gero eskuineko erdia, 227 00:10:07,130 --> 00:10:09,900 eta, ondoren, bi erdi horiek batzea elkarrekin, ordena ordenatuko, 228 00:10:09,900 --> 00:10:11,940 4 dator lehen, orduan dator 8. 229 00:10:11,940 --> 00:10:15,810 >> Beraz, ezin aurrera egiten badirudi dugu, nahiz eta Ez dut, nahiz eta benetako lana egiten. 230 00:10:15,810 --> 00:10:17,800 Baina gogoratu, non daude istorioa dugu. 231 00:10:17,800 --> 00:10:19,360 Jatorriz zortzi elementu hartu genuen. 232 00:10:19,360 --> 00:10:21,480 Ezkerreko erdia, bertan 4 da ordenatuko dugu. 233 00:10:21,480 --> 00:10:24,450 Ondoren ezkerreko erdia ordenatuko dugu Ezkerreko erdia, 2 izan zen. 234 00:10:24,450 --> 00:10:25,270 Eta hemen dugu joan. 235 00:10:25,270 --> 00:10:26,920 Urrats hori egiten ari gara. 236 00:10:26,920 --> 00:10:29,930 >> Beraz, ez dugu ordenatuko bada egin nondik 2 erdia utzi, orain dugu 237 00:10:29,930 --> 00:10:32,130 Justu 2 erdia ordenatzeko dute. 238 00:10:32,130 --> 00:10:35,710 Beraz, eskuineko 2ko erdia da Bi balio horiek hemen, 6 eta 2. 239 00:10:35,710 --> 00:10:40,620 Hargatik tamaina sarrera bat hartu, orain 2, eta ezkerreko erdia ordenatzeko, eta orduan 240 00:10:40,620 --> 00:10:42,610 eskuineko erdia, eta, ondoren, batu itzazu elkarrekin. 241 00:10:42,610 --> 00:10:45,722 Beno, nola ez, tamaina zerrenda bat ordenatzeko I 1, besterik kopuruaren 6 duten? 242 00:10:45,722 --> 00:10:46,430 Jadanik naiz. 243 00:10:46,430 --> 00:10:48,680 Tamaina 1 zerrenda hori horrela antolatu du. 244 00:10:48,680 --> 00:10:52,140 >> Zelan zerrendan beste ordenatzeko I tamaina 1, eskuineko erdia deiturikoak. 245 00:10:52,140 --> 00:10:54,690 Beno, gehiegi, dagoeneko antolatuta dago. 246 00:10:54,690 --> 00:10:56,190 2 zenbakia da eta hori dela. 247 00:10:56,190 --> 00:11:00,160 Beraz, orain bi erdi daukat, ezkerreko eta eskubidea, horiek elkarrekin batu behar dut. 248 00:11:00,160 --> 00:11:01,800 Neure burua ematen dit beste tarte batzuk. 249 00:11:01,800 --> 00:11:05,580 Eta jarri 2 han, gero 6 han ere, horrela 250 00:11:05,580 --> 00:11:10,740 zerrenda ordenatzen duten, ezker eta eskuin, eta elkarrekin batuz, azken finean. 251 00:11:10,740 --> 00:11:12,160 Beraz nago forma zertxobait hobeto hasi nintzen. 252 00:11:12,160 --> 00:11:16,250 Ez dut egin, ez delako argi eta garbi 4, 8, 2, 6 ez da azken agindu nahi dut. 253 00:11:16,250 --> 00:11:20,640 Baina bi tamaina 2 zerrendak daukat orain, hori bai, hurrenez hurren, ordenatu dira. 254 00:11:20,640 --> 00:11:24,580 Beraz, orain atzera egin duzu zure burua hamarkadaren bada Begia, non ez duten utzi digu ba? 255 00:11:24,580 --> 00:11:28,520 Hasi nintzen zortzi elementuekin, ondoren I whittled da ezker 4 erdia, 256 00:11:28,520 --> 00:11:31,386 ondoren ezker 2ko seihilekoan, eta ondoren, eskuinera 2ko seihilekoan, 257 00:11:31,386 --> 00:11:34,510 , Amaitu nuen, hortaz, ordenatzeko ezkerreko nondik 2 erdia, eta eskuineko 2ko seihilekoan, 258 00:11:34,510 --> 00:11:37,800 beraz, zer da hirugarren eta azken urratsa hemen? 259 00:11:37,800 --> 00:11:41,290 Elkarrekin batu behar dut bi tamaina 2 zerrendak. 260 00:11:41,290 --> 00:11:42,040 Beraz, goazen aurrera. 261 00:11:42,040 --> 00:11:43,940 Eta pantaila hemen, eman me memoria pixka bat, 262 00:11:43,940 --> 00:11:47,170 teknikoki arren, konturatu nintzen, amesten Espazio ireki hutsik goi-sorta oso bat lortu 263 00:11:47,170 --> 00:11:47,670 han. 264 00:11:47,670 --> 00:11:50,044 Batez ere, izan nahi dut bada espazio eraginkor jakintsua, 265 00:11:50,044 --> 00:11:52,960 Besterik ezin dut hasteko elementu mugituz atzera eta aurrera, goian eta behean. 266 00:11:52,960 --> 00:11:55,460 Baina besterik bisuala argitasuna, Jarri behera beheko noa, 267 00:11:55,460 --> 00:11:56,800 mantendu gauza polita eta garbi. 268 00:11:56,800 --> 00:11:58,150 >> Beraz, bi tamaina 2 zerrendak lortu nuen. 269 00:11:58,150 --> 00:11:59,770 Lehenengo zerrendatik 4 eta 8 ditu. 270 00:11:59,770 --> 00:12:01,500 Bigarren zerrenda 2 eta 6 ditu. 271 00:12:01,500 --> 00:12:03,950 Dezagun batu en horiek elkarrekin ordena ordenatuko. 272 00:12:03,950 --> 00:12:09,910 2, jakina, lehenik, ondoren, 4, gero 6, gero 8. 273 00:12:09,910 --> 00:12:12,560 Eta orain, ikusten denez, badirudi dugu nonbait interesgarria. 274 00:12:12,560 --> 00:12:15,720 Erdia Orain ordenatuak Nik zerrendatu, eta coincidentally, da 275 00:12:15,720 --> 00:12:18,650 zenbakiak are guztia, baina hori da, hain zuzen ere, kointzidentzia bat besterik. 276 00:12:18,650 --> 00:12:22,220 Eta orain, ezkerreko ordenatuko ditut erdia, beraz, 2, 4, 6, 8 eta dela. 277 00:12:22,220 --> 00:12:23,430 Nothing ordena da. 278 00:12:23,430 --> 00:12:24,620 Hori aurrerapen bezala sentitzen. 279 00:12:24,620 --> 00:12:26,650 >> Orain ez dut sentitzen atsegin dute orain betiko hizketan, 280 00:12:26,650 --> 00:12:29,850 beraz, zer den hau bada ikusi behar izaten jarraitzen du algoritmoa da, hain zuzen ere, eraginkorragoa. 281 00:12:29,850 --> 00:12:31,766 Baina bidez goaz super metodikoki da. 282 00:12:31,766 --> 00:12:34,060 Ordenagailu bat, noski, hala egin behar duten bezala. 283 00:12:34,060 --> 00:12:34,840 Beraz, non gauden? 284 00:12:34,840 --> 00:12:36,180 Zortzi elementuekin hasi ginen. 285 00:12:36,180 --> 00:12:37,840 Ezker 4 erdia ordenatuko dut. 286 00:12:37,840 --> 00:12:39,290 Hori egin behar izan dut. 287 00:12:39,290 --> 00:12:42,535 Beraz, orain, hurrengo urratsa da eskuin 4 erdia ordenatzeko. 288 00:12:42,535 --> 00:12:44,410 Eta zati hau gaitezke Gehiago txiki baten bidez 289 00:12:44,410 --> 00:12:47,140 Azkar, zaren arren ongietorri atzeratzeko edo eteteko, besterik 290 00:12:47,140 --> 00:12:49,910 Bidez uste at Zure erritmo propioa du, baina zer 291 00:12:49,910 --> 00:12:53,290 orain aukera bat da dugun lau on zehatza algoritmo bera egin 292 00:12:53,290 --> 00:12:54,380 zenbakiak ezberdinak. 293 00:12:54,380 --> 00:12:57,740 >> Beraz, goazen aurrera, eta arreta eskuineko erdia, hemen gaude. 294 00:12:57,740 --> 00:13:01,260 Ezker duten erdia eskuineko erdia, eta, gaur egun, 295 00:13:01,260 --> 00:13:04,560 ezker ezkerreko erdia eskuineko erdia horren erdia, 296 00:13:04,560 --> 00:13:08,030 eta nola ez, tamaina zerrenda bat ordenatzeko I 1 besterik 1 zenbakia daukan? 297 00:13:08,030 --> 00:13:09,030 Hori dagoeneko egin. 298 00:13:09,030 --> 00:13:11,830 Zelan zerrenda bat bera egin nuen tamaina 1 7 besterik ez geratzeko? 299 00:13:11,830 --> 00:13:12,840 Hori dagoeneko egin. 300 00:13:12,840 --> 00:13:16,790 Hiru urrats Zati hau egiteko orduan bi elementu horiek batzeko 301 00:13:16,790 --> 00:13:20,889 tamaina 2, 1 eta 7 zerrenda berri batera. 302 00:13:20,889 --> 00:13:23,180 Ez dirudi guztia egin izana Hori askoz ere lan interesgarri. 303 00:13:23,180 --> 00:13:24,346 Ea zer gertatzen den hurrengo dezagun. 304 00:13:24,346 --> 00:13:29,210 Ezkerraldeko erdia ordenatuko dut nire jatorrizko sarrera erdia. 305 00:13:29,210 --> 00:13:32,360 Orain dezagun ordenatzeko eskubidea erdia, izanez 5 eta 3 bertan. 306 00:13:32,360 --> 00:13:35,740 Dezagun ezker begiratu berriro erdia, ordenatuta, eskuineko erdia, ordenatuta, 307 00:13:35,740 --> 00:13:39,120 eta batu bi horiek elkarrekin, espazio osagarriak batzuk sartu, 308 00:13:39,120 --> 00:13:41,670 3 dator lehen, orduan 5. 309 00:13:41,670 --> 00:13:46,190 Eta, beraz, gaur egun, ordenatuko ditugu ezkerretik eskuinera erdi erdia 310 00:13:46,190 --> 00:13:49,420 Jatorrizko arazoekin, eta eskuineko erdia erdia 311 00:13:49,420 --> 00:13:50,800 Jatorrizko arazoekin. 312 00:13:50,800 --> 00:13:52,480 Zer da hirugarren eta azken urratsa? 313 00:13:52,480 --> 00:13:54,854 Beno bi erdi horiek elkarrekin batzeko. 314 00:13:54,854 --> 00:13:57,020 Beraz Neure burua me batzuk tarte, baina, berriz ere, I 315 00:13:57,020 --> 00:13:58,699 Espazio ireki ordezko goi-ak erabiliz, izan daiteke. 316 00:13:58,699 --> 00:14:00,490 Baina ari gara mantentzeko joan ikusmen sinplea da. 317 00:14:00,490 --> 00:14:07,070 Dezagun batu orain 1 in me, eta ondoren, 3, eta, ondoren, 5, eta, ondoren, 7. 318 00:14:07,070 --> 00:14:10,740 Horrela me utziz orain batera eskubidea jatorrizko arazoa erdia 319 00:14:10,740 --> 00:14:12,840 hori ezin hobeto ordenatuta. 320 00:14:12,840 --> 00:14:13,662 >> Beraz, zer geratzen? 321 00:14:13,662 --> 00:14:16,120 Esanez mantentzeko sentitzen dut Gauza bera berriro, eta berriro, 322 00:14:16,120 --> 00:14:18,700 baina hori islatzaileak Izan ere errekurtsio erabiltzen ari garela. 323 00:14:18,700 --> 00:14:21,050 Bat erabiliz prozesua Algoritmo berriro, eta berriro, 324 00:14:21,050 --> 00:14:23,940 azpimultzoak txikiagoan jatorrizko arazoa. 325 00:14:23,940 --> 00:14:27,580 Beraz, orain dute ezker bat ordenatuko dut jatorrizko arazoa erdia. 326 00:14:27,580 --> 00:14:30,847 I a eskubidea ordenatuko erdia dute Jatorrizko arazoekin. 327 00:14:30,847 --> 00:14:32,180 Zer da hirugarren eta azken urratsa? 328 00:14:32,180 --> 00:14:33,590 O, batuz da. 329 00:14:33,590 --> 00:14:34,480 Beraz, utzi egin dutela. 330 00:14:34,480 --> 00:14:36,420 Dezagun esleitu gehigarri batzuk memoria, baina nire Jainkoa, dugu 331 00:14:36,420 --> 00:14:37,503 edozein lekutan jarri ahal izan dute. 332 00:14:37,503 --> 00:14:40,356 Hainbeste espazio dauzkagu guretzat, baina simple mantentzeko egingo dugu. 333 00:14:40,356 --> 00:14:42,730 Horren ordez atzera egingo du eta dagozkio gure jatorrizko memoria, 334 00:14:42,730 --> 00:14:44,480 dezagun, besterik ez da egin ikusmen hemen behean behera, 335 00:14:44,480 --> 00:14:47,240 Amaitzeko batuz ezkerreko erdia eta eskuineko erdia. 336 00:14:47,240 --> 00:14:49,279 >> Beraz batuz, zer egin behar dut? 337 00:14:49,279 --> 00:14:50,820 Elementuen hartu ahal izateko egin nahi dut. 338 00:14:50,820 --> 00:14:53,230 Beraz, ezkerreko erdia begira, Ikusi nuen lehenengo zenbakia 2 da. 339 00:14:53,230 --> 00:14:55,230 Begiratu eskuineko erdia dut, Lehenengo zenbakia ikusi dut 340 00:14:55,230 --> 00:14:58,290 da 1, beraz, jakina, eta horrek kopurua ez out pluck nahi dut, 341 00:14:58,290 --> 00:15:00,430 eta lehenik nire final zerrendan? 342 00:15:00,430 --> 00:15:01,449 Jakina, 1. 343 00:15:01,449 --> 00:15:02,990 Orain galdera hori bera eskatu nahi dut. 344 00:15:02,990 --> 00:15:05,040 Ezkerreko erdia, dut oraindik 2 zenbakia lortu. 345 00:15:05,040 --> 00:15:07,490 Eskuineko erdia, Ohizko I 3 zenbakia. 346 00:15:07,490 --> 00:15:08,930 Zein da aukeratu nahi dut? 347 00:15:08,930 --> 00:15:11,760 Jakina, multzoko 2 Eta orain konturatu hautagaien 348 00:15:11,760 --> 00:15:13,620 4 ezkerretara, 3 eskuinera gainean. 349 00:15:13,620 --> 00:15:15,020 Dezagun, jakina, aukeratu 3. 350 00:15:15,020 --> 00:15:18,020 Orain hautagaien 4 dira ezkerretik, 5 eskuin hegaletik. 351 00:15:18,020 --> 00:15:19,460 Dugu, jakina, aukeratu 4. 352 00:15:19,460 --> 00:15:21,240 6 ezkerreko, 5 eskuinera gainean. 353 00:15:21,240 --> 00:15:22,730 Dugu, jakina, aukeratu 5. 354 00:15:22,730 --> 00:15:25,020 6 ezkerreko, 7 eskuinera gainean. 355 00:15:25,020 --> 00:15:29,320 Aukeratu dugu 6, eta, ondoren, dugu aukeratu 7, eta, ondoren, aukeratu dugu 8. 356 00:15:29,320 --> 00:15:30,100 Voila. 357 00:15:30,100 --> 00:15:34,370 >> Beraz, hitz kopuru handi bat geroago, dugu Zortzi elementuen zerrenda hau horrela antolatu dute 358 00:15:34,370 --> 00:15:38,450 Bat zerrenda bat zortzi bidez sartu, hori da urrats bakoitzean handituz, 359 00:15:38,450 --> 00:15:40,850 baina denbora zenbat egin gurekin eraman ez da egin behar. 360 00:15:40,850 --> 00:15:43,190 Beno nahita dizkiat ezarritako gauzak egindako Pictorially 361 00:15:43,190 --> 00:15:46,330 Hemen, beraz, ezin dugu motatako ikusi edo maila balioetsi 362 00:15:46,330 --> 00:15:49,060 konkistatu hori gertatzen ari. 363 00:15:49,060 --> 00:15:52,830 >> Atzera begiratuz, egia baldin bada estela batean, Puntuzko lerro hauek guztiak utzi dut 364 00:15:52,830 --> 00:15:55,660 argumentu gehi ere, ahal duzun, mota, ikusi, alderantzizko ordenan, 365 00:15:55,660 --> 00:15:58,800 motatako baduzu, atzera begiratu batean historia, gaur egun, nire jatorrizko zerrenda 366 00:15:58,800 --> 00:16:00,250 da, noski, tamaina 8ko. 367 00:16:00,250 --> 00:16:03,480 Eta gero, aldez aurretik, izan dut bi tamaina 4 zerrendak aurre, 368 00:16:03,480 --> 00:16:08,400 eta, ondoren, lau tamaina 2 zerrendak, eta, ondoren, zortzi 1. Tamaina zerrendak. 369 00:16:08,400 --> 00:16:10,151 >> Beraz, zer egiten duen honetan, mota, gogorarazi nahi duzula? 370 00:16:10,151 --> 00:16:11,858 Beno, egia esan, edozein algoritmoak dugu 371 00:16:11,858 --> 00:16:14,430 beraz, ez dago begiratu non gauden arrail, eta zatiketak, eta arrail, 372 00:16:14,430 --> 00:16:19,500 mantentzeko gauzak berriro, eta Berriro ere, ideia orokor horren emaitzak. 373 00:16:19,500 --> 00:16:23,100 Eta beraz, ez zerbait logarithmic gertatzen da hemen. 374 00:16:23,100 --> 00:16:26,790 Eta ez da n erregistroa nahiko, baina ez logarithmic osagai bat da 375 00:16:26,790 --> 00:16:28,280 Zer besterik ez dugu egin behar. 376 00:16:28,280 --> 00:16:31,570 >> Orain ikus dezagun nola hori benetan da. 377 00:16:31,570 --> 00:16:34,481 Beraz, saioa n, berriro izan zen a lasterketak denbora handia, 378 00:16:34,481 --> 00:16:36,980 denean antzeko zerbait egin dugu bilaketa bitarra, orain deitu dugun bezala, 379 00:16:36,980 --> 00:16:40,090 Banatu eta agindu estrategiaren bertan bidez Mike Smith aurkitu dugu. 380 00:16:40,090 --> 00:16:41,020 Orain teknikoki. 381 00:16:41,020 --> 00:16:43,640 Hori log base 2 n, are matematikako klase gehienetan, nahiz eta, 382 00:16:43,640 --> 00:16:45,770 Oinarriaren gain hartzen duzu hori normalean 10 da. 383 00:16:45,770 --> 00:16:48,940 Baina informatikariak ia beti Uste eta 2 base dagokionez hitz, 384 00:16:48,940 --> 00:16:52,569 beraz, dugu, oro har, esan erregistroa n, ordez log base 2 n, 385 00:16:52,569 --> 00:16:55,110 baina zehazki bat eta ari dira ordenagailuaren munduan bera 386 00:16:55,110 --> 00:16:57,234 zientzia eta alde batera utzita, han konstante bat da 387 00:16:57,234 --> 00:17:01,070 Bien arteko aldea, beraz, Moot hala ere, arrazoi formal gehiagorako. 388 00:17:01,070 --> 00:17:04,520 >> Baina orain, zer zaintzen dugu buruzko adibide hau. 389 00:17:04,520 --> 00:17:08,520 Hargatik adibide moduan frogatu ez, baina, Gutxienez zenbakiak adibide bat erabili 390 00:17:08,520 --> 00:17:10,730 orain zuk izango behatu kontrol gisa, bada. 391 00:17:10,730 --> 00:17:14,510 Beraz, aldez aurretik formula log base zen 2 n da, baina zer da, kasu honetan, n. 392 00:17:14,510 --> 00:17:18,526 Zenbakiak n original izan nuen, edo 8 jatorrizko zenbakiaren zehazki. 393 00:17:18,526 --> 00:17:20,359 Orain izan da apur bat bitartean, baina nago nahiko 394 00:17:20,359 --> 00:17:25,300 Ziur log base 2 balioa 8 3 da, 395 00:17:25,300 --> 00:17:29,630 eta hain zuzen ere, zer da hori da polita 3 hori zehazki zenbat aldiz da 396 00:17:29,630 --> 00:17:33,320 Zerrendako banatu dezakezu luzera 8ko berriro, eta berriro, 397 00:17:33,320 --> 00:17:36,160 eta berriro, zu utzi arte tamaina besterik 1 zerrendak. 398 00:17:36,160 --> 00:17:36,660 Eskuin? 399 00:17:36,660 --> 00:17:40,790 8 4 doa, 2 doa, 1 doa, eta hori da, 400 00:17:40,790 --> 00:17:43,470 zehazki hori islatzen Irudian duela une bat besterik ez dugu izan. 401 00:17:43,470 --> 00:17:47,160 Beraz, behatu apur bat non behar bezala egiaztatu logaritmoa benetan parte hartzen ari da. 402 00:17:47,160 --> 00:17:50,180 >> Beraz, orain, zer gehiago da hori? n. 403 00:17:50,180 --> 00:17:53,440 Beraz, konturatu bakoitza denbora zerrendan zatitu dut, 404 00:17:53,440 --> 00:17:58,260 historian alderantzizko ordenan arren Hemen, oraindik n gauzak egiten ari nintzen. 405 00:17:58,260 --> 00:18:02,320 Eskatzen batuz urratsa dagoela Behin zenbakietako bat ukitu dut, 406 00:18:02,320 --> 00:18:05,060 Ahal izateko, irristatu sartu bere kokapen egokia. 407 00:18:05,060 --> 00:18:10,760 Beraz, nahiz eta honen altuera diagram tamaina n erregistroa edo 3 n da, 408 00:18:10,760 --> 00:18:13,860 Zehazki, beste era batera esanda, Hiru dibisio egin nuen hemen. 409 00:18:13,860 --> 00:18:18,800 Zenbat lan horizontalki egin nuen Taula honetan, aldi bakoitzean zehar? 410 00:18:18,800 --> 00:18:21,110 >> Beno, n urratsen egin nuen lan, Dut bada delako 411 00:18:21,110 --> 00:18:24,080 lau elementu eta lau elementu lortu, eta horiek elkarrekin batu behar dut. 412 00:18:24,080 --> 00:18:26,040 To bidez joan behar dut horietako lau eta lau horiek, 413 00:18:26,040 --> 00:18:28,123 azken finean, batu Zortzi elementu zituelarik. 414 00:18:28,123 --> 00:18:32,182 Nik lortu zortzi behatzak alderantziz bada Zortzi hemen baino, eta hori ez dut, eta 415 00:18:32,182 --> 00:18:34,390 fingers-- barkatu dut bada lau behatzak lortu hemen baino gehiago, 416 00:18:34,390 --> 00:18:37,380 bertan egin nuen, lau behatzak hemen baino, eta hori ez dut, 417 00:18:37,380 --> 00:18:40,590 ondoren, hori bera da Adibidez, lehen bezala, ez dut 418 00:18:40,590 --> 00:18:44,010 Zortzi behatzak ere, nahiz eta guztira, eta horrek ezin dut, mota, egin. 419 00:18:44,010 --> 00:18:47,950 I zehazki egin dezakezu hemen, orduan, zalantzarik gabe, ezin dut 420 00:18:47,950 --> 00:18:50,370 batu zerrenda horiek guztiak tamaina 1 elkarrekin. 421 00:18:50,370 --> 00:18:54,050 Baina zalantzarik ez dut begiratu Elementu bakoitzean zehazki behin. 422 00:18:54,050 --> 00:18:59,640 Beraz, prozesu hori altuera log n da, Prozesu honen zabalera, nolabait esateko, 423 00:18:59,640 --> 00:19:02,490 n, beraz, zer egin behar dugu, badirudi , izan, azken finean, da 424 00:19:02,490 --> 00:19:06,470 exekutatzen tamaina n aldiz garaia izan log n. 425 00:19:06,470 --> 00:19:08,977 >> Beste era batera esanda, banatzen dugu izan zerrendan, log n aldiz, 426 00:19:08,977 --> 00:19:11,810 baina, aldi bakoitzean egin dugu, izan genuen behin elementuetako bat ukitzeko 427 00:19:11,810 --> 00:19:13,560 Ordena horiek batzea ere guztiak elkarrekin, eta horrek 428 00:19:13,560 --> 00:19:18,120 Urrats n zen, beraz, ez dugu izan n aldiz log n, edo ordenagailu zientzialari batek esaten duen bezala, 429 00:19:18,120 --> 00:19:20,380 asintotikoki, bertan Hitz handia izango litzateke 430 00:19:20,380 --> 00:19:22,810 goiko deskribatzeko Iraupena batean lotuak, 431 00:19:22,810 --> 00:19:28,010 dugu o handi batean exekutatzen ari log n garaiko, nolabait esateko. 432 00:19:28,010 --> 00:19:31,510 >> Azken hau da esanguratsua, zeren gogoratzen zer zen martxan ziren aldiz 433 00:19:31,510 --> 00:19:34,120 burbuila ordenatu, eta aukeraketa ordenatu, eta txertatzeko ordenatu, 434 00:19:34,120 --> 00:19:38,200 eta beste batzuk, nahiz eta batzuk existitzen dela, n karratu zen eta bertan izan ziren iristen gara. 435 00:19:38,200 --> 00:19:39,990 Eta dezakezu, mota, ikusi hau hemen. 436 00:19:39,990 --> 00:19:45,720 N karratu bada, bistan da, n aldiz n, baina hemen dugu n aldiz log n, 437 00:19:45,720 --> 00:19:48,770 eta dagoeneko ezagutzen astetik dugu zero, log n, logaritmikoa du, 438 00:19:48,770 --> 00:19:50,550 Zerbait lineala baino hobea da. 439 00:19:50,550 --> 00:19:52,930 Azken finean, gogora ekarri irudian gorria eta horia batera 440 00:19:52,930 --> 00:19:56,500 eta lerro berdea marraztu dugu, berdea logarithmic lerro askoz txikiagoa izan da. 441 00:19:56,500 --> 00:20:00,920 Eta, beraz, askoz ere hobeto eta azkarrago lerro horia eta gorria zuzen baino, 442 00:20:00,920 --> 00:20:05,900 n aldiz log n da, hain zuzen ere, hobeto, n aldiz baino n, edo n karratu. 443 00:20:05,900 --> 00:20:09,110 >> Beraz, egin behar dugu, antza Algoritmoa merge bat identifikatu 444 00:20:09,110 --> 00:20:11,870 moduko hori askoz exekutatzen denbora azkarrago, eta, hain zuzen ere, 445 00:20:11,870 --> 00:20:16,560 horregatik, lehenago aste honetan, denean burbuila arteko lehiaketa dela ikusi genuen 446 00:20:16,560 --> 00:20:20,750 ordenatu, aukeraketa ordenatu, eta batu ordenatu, batu sort benetan, benetan irabazi. 447 00:20:20,750 --> 00:20:23,660 Eta hain zuzen ere, ez dugu, nahiz itxaron burbuila ordenatu eta hautaketa ordena for 448 00:20:23,660 --> 00:20:24,790 amaitzeko. 449 00:20:24,790 --> 00:20:27,410 >> Dezagun orain beste pass bat hori dela eta, apur bat gehiago batetik 450 00:20:27,410 --> 00:20:31,030 ikuspuntu formal, besterik ere Kasu, hau hobe resonates 451 00:20:31,030 --> 00:20:33,380 maila hori handiagoa eztabaida baino. 452 00:20:33,380 --> 00:20:34,880 Beraz, hemen da berriro algoritmoa. 453 00:20:34,880 --> 00:20:36,770 Galde diezaiogun geure buruari, zer ari da denbora 454 00:20:36,770 --> 00:20:39,287 hau algoritmoek hainbat urratsen da? 455 00:20:39,287 --> 00:20:41,620 Dezagun zatitzea lehenengo sartu Kasu eta bigarren kasuan. 456 00:20:41,620 --> 00:20:46,280 Baldin eta, bestela, kasu honetan, IF N 2 baino gutxiago, besterik gabe. 457 00:20:46,280 --> 00:20:47,580 Etengabeko denbora bezala sentitzen. 458 00:20:47,580 --> 00:20:50,970 Da, mota, bi urrats bezala, IF N 2 baino gutxiago, gero itzultzeko. 459 00:20:50,970 --> 00:20:54,580 Baina, esan bezala, astelehena, etengabeko denbora, edo big 1 o, 460 00:20:54,580 --> 00:20:57,130 bi urrats, hiru izan daiteke pausoak, nahiz eta 1.000 urrats. 461 00:20:57,130 --> 00:20:59,870 Zer axola, hori da etengabeko urrats ematen. 462 00:20:59,870 --> 00:21:03,240 Beraz, horia nabarmenduta pseudocode Hemen doa, dugu guk esaten, 463 00:21:03,240 --> 00:21:04,490 etengabeko denbora. 464 00:21:04,490 --> 00:21:06,780 Beraz, formalki, eta hau zaie goaz 465 00:21:06,780 --> 00:21:09,910 norainokoa izango den bertan dugu formalizatzeko eskuin hau da gaur egun n T, 466 00:21:09,910 --> 00:21:15,030 exekutatzen arazo baten denbora Hori n Somethings hartzen sarrera gisa, 467 00:21:15,030 --> 00:21:19,150 berdinen handi bateko o, IF n 2 baino gutxiago. 468 00:21:19,150 --> 00:21:20,640 Beraz, hori baldintzatzen da. 469 00:21:20,640 --> 00:21:24,150 Beraz, argi izan, IF n baino txikiagoa 2, zerrenda oso labur bat egin behar dugu, eta gero 470 00:21:24,150 --> 00:21:29,151 Iraupena, T-ren n, non n dago 1 edo 0, kasu oso zehatz honetan, 471 00:21:29,151 --> 00:21:30,650 besterik ez da, etengabeko denbora izango da. 472 00:21:30,650 --> 00:21:32,691 Honez bat hartu du urratsa, bi urrats, edozein dela ere. 473 00:21:32,691 --> 00:21:33,950 Urrats kopuru finko bat da. 474 00:21:33,950 --> 00:21:38,840 >> Beraz, parte mamitsuena behar da ziur aski izango da beste pseudocode kasua. 475 00:21:38,840 --> 00:21:40,220 ELSE kasua. 476 00:21:40,220 --> 00:21:44,870 Sort ezkerreko elementu erdia, ordenatu eskubidea elementu erdia, batu ordenatuko halves. 477 00:21:44,870 --> 00:21:46,800 Zenbat denbora pausu horietako bakoitzean hartu du? 478 00:21:46,800 --> 00:21:49,780 Beno, lasterka bada n elementu ordenatzeko denbora 479 00:21:49,780 --> 00:21:53,010 da, dezagun oso deitzeko oro, n T, 480 00:21:53,010 --> 00:21:55,500 gero sailkatuz, ezkerreko elementuak erdia 481 00:21:55,500 --> 00:21:59,720 da, mota, esanez bezala, N T 2 banatuta, 482 00:21:59,720 --> 00:22:03,000 eta, era berean, eskuineko erdia ordenatzeko elementuen da, mota, esanez bezala, 483 00:22:03,000 --> 00:22:06,974 N T banatzen 2, eta, ondoren, erdi ordenatuko batuz. 484 00:22:06,974 --> 00:22:08,890 Beno I got bada batzuk elementu kopurua hemen, 485 00:22:08,890 --> 00:22:11,230 atsegin lau, eta zenbaki batzuk Hemen elementuen, lau bezala, 486 00:22:11,230 --> 00:22:14,650 eta lau horietako bakoitzaren batu behar dut , eta horiek lau bakoitzak, bat ere 487 00:22:14,650 --> 00:22:17,160 bestearen atzetik, eta, beraz, azken finean, zortzi elementu daukat. 488 00:22:17,160 --> 00:22:20,230 Sentitzen bezala hori da big n urratsen o? 489 00:22:20,230 --> 00:22:23,500 Nik lortu n behatzak eta bakoitzak badu leku bakarrean elkartu egon ondoren, 490 00:22:23,500 --> 00:22:25,270 Hori n urrats beste bat bezalakoa da. 491 00:22:25,270 --> 00:22:27,360 >> Beraz, hain zuzen formulaically, hau adierazteko aukera izango dugu, 492 00:22:27,360 --> 00:22:29,960 hasiera batean scarily apur bat bada ere begiratu, baina zerbait da 493 00:22:29,960 --> 00:22:31,600 harrapatzen zehazki logika hori. 494 00:22:31,600 --> 00:22:35,710 Exekutatzen berea, T-ren n, IF n 2 baino handiagoa edo berdina da. 495 00:22:35,710 --> 00:22:42,500 Kasu honetan, beste kasu batean, n T da 2. arabera, plus T N 2 arabera banatzen banatuta, 496 00:22:42,500 --> 00:22:45,320 plus big n O, zenbait urrats kopurua lineala, 497 00:22:45,320 --> 00:22:51,630 agian, zehazki n, agian, 2 aldiz n, baina gutxi gorabehera da, n ordena. 498 00:22:51,630 --> 00:22:54,060 Beraz, hori ere, nola ahal dugun hau adierazi formulaically. 499 00:22:54,060 --> 00:22:56,809 Orain ez duzu jakin hau izan ezean Nik grabatu duzu zure kontuan, 500 00:22:56,809 --> 00:22:58,710 edo hura bilatu batean Eskuliburu bat atzealdean, hori 501 00:22:58,710 --> 00:23:00,501 apur bat izan dezake tranparik xafla amaieran, 502 00:23:00,501 --> 00:23:03,940 baina hori da, hain zuzen ere, joan den ematen diguten handi baten n log n o, 503 00:23:03,940 --> 00:23:06,620 errepikatze hori delako Hemen ikusten ari zaren pantailan, 504 00:23:06,620 --> 00:23:09,550 benetan egin ezazu bada, elkarrekin adibide-kopuru amaigabea, 505 00:23:09,550 --> 00:23:13,000 edo hura formulaically zenuen, zenituzkeen ikus dezakegu hori, formula hau delako 506 00:23:13,000 --> 00:23:17,100 errekurtsiboak da berez, t-ekin n zerbait eskubidea baino gehiago, 507 00:23:17,100 --> 00:23:21,680 eta gehiagoko n ezkerreko t, ezin honetan benetan da adierazi, azken finean, 508 00:23:21,680 --> 00:23:24,339 n log n go big bezala. 509 00:23:24,339 --> 00:23:26,130 Ez konbentzitu nahi, hori da oraingoz fina, besterik ez 510 00:23:26,130 --> 00:23:28,960 fede on, hori da, hain zuzen ere, errepikatze hori zer eramaten den, 511 00:23:28,960 --> 00:23:31,780 baina hori bakarrik pixka bat gehiago Bila hurbilketa matematiko 512 00:23:31,780 --> 00:23:36,520 Merge sort unean oinarritutako bere pseudocode bakarrik. 513 00:23:36,520 --> 00:23:39,030 >> Orain dezagun pixka bat duten guztien atseden, 514 00:23:39,030 --> 00:23:41,710 eta begirada bat hartu zenbait ohia senatari, nor 515 00:23:41,710 --> 00:23:44,260 Pixka bat ezagutzen begiratu daiteke, eseri egin ziren nor Googleren Eric batera 516 00:23:44,260 --> 00:23:48,410 Schmidt, aspaldi, elkarrizketa bat eszenatokian, sorta oso baten aurrean 517 00:23:48,410 --> 00:23:53,710 pertsona, hizketan, azken finean buruz Gai bat, hori ezaguna da nahiko orain. 518 00:23:53,710 --> 00:23:54,575 Ikus dezagun begirada bat. 519 00:23:54,575 --> 00:24:01,020 520 00:24:01,020 --> 00:24:03,890 >> Eric Schmidt: Orain senataria, Google at zu hemen, 521 00:24:03,890 --> 00:24:09,490 eta gustatzen zait pentsatzea Lehendakaritzan lan elkarrizketa baten ondorioz. 522 00:24:09,490 --> 00:24:11,712 Orain zaila da presidente gisa lan bat lortzeko. 523 00:24:11,712 --> 00:24:12,670 PRESIDENTE Obama: Eskuin. 524 00:24:12,670 --> 00:24:13,940 Eric Schmidt: Eta zu Orain egin [INAUDIBLE] joan. 525 00:24:13,940 --> 00:24:15,523 Era berean, gogor lan bat lortzeko Google at. 526 00:24:15,523 --> 00:24:17,700 PRESIDENTE Obama: Eskuin. 527 00:24:17,700 --> 00:24:21,330 >> Eric Schmidt: galderak egin behar dugu, eta gure hautagaien galderak ditugu, 528 00:24:21,330 --> 00:24:24,310 eta Larry Schwimmer da. 529 00:24:24,310 --> 00:24:25,890 >> PRESIDENTE Obama: OK. 530 00:24:25,890 --> 00:24:27,005 >> Eric Schmidt: Zer? 531 00:24:27,005 --> 00:24:28,130 Zaudete uste Txantxetan ari naiz? 532 00:24:28,130 --> 00:24:30,590 Hemen da. 533 00:24:30,590 --> 00:24:33,490 Zer da modurik eraginkorrena Milioi bat 32 bit osokoak ordenatzeko? 534 00:24:33,490 --> 00:24:37,560 535 00:24:37,560 --> 00:24:38,979 >> PRESIDENTE Obama: Well-- 536 00:24:38,979 --> 00:24:41,020 Eric Schmidt: Batzuetan, agian, sentitzen dut, maybe-- 537 00:24:41,020 --> 00:24:42,750 PRESIDENTE Obama: Ez, ez, no, no, no, I think-- 538 00:24:42,750 --> 00:24:43,240 Eric Schmidt: Hori ez da it 539 00:24:43,240 --> 00:24:45,430 PRESIDENTE Obama: I Nik uste, globoa uste dut 540 00:24:45,430 --> 00:24:46,875 moduko gaizki joan litzateke. 541 00:24:46,875 --> 00:24:49,619 542 00:24:49,619 --> 00:24:50,535 Eric Schmidt: Tira. 543 00:24:50,535 --> 00:24:52,200 Nork esan zion hau? 544 00:24:52,200 --> 00:24:54,020 ONDO DA. 545 00:24:54,020 --> 00:24:55,590 Ez nuen informatika on-- 546 00:24:55,590 --> 00:24:58,986 >> PRESIDENTE Obama: badaukagu Gure spies iritsi zirela ere. 547 00:24:58,986 --> 00:24:59,860 Irakaslea: Ondo da. 548 00:24:59,860 --> 00:25:03,370 Dezagun utzi digu atzean orain Algoritmoen mundu teoriko 549 00:25:03,370 --> 00:25:06,520 the asintotikoa analisi batean horien, eta gai batzuk itzultzeko 550 00:25:06,520 --> 00:25:09,940 Aste zero eta bat, eta hasieratik prestakuntza gurpilak batzuk kendu, 551 00:25:09,940 --> 00:25:10,450 izango bada. 552 00:25:10,450 --> 00:25:13,241 Beraz, benetan ulertzen lurretik gora, azken finean, zer da 553 00:25:13,241 --> 00:25:16,805 gertatzen kanpaia azpian, duzunean idatzi, biltzea, eta programak exekutatu. 554 00:25:16,805 --> 00:25:19,680 Bereziki gogoratzen, hori izan zela Lehenengo C programa begiratzen dugu, 555 00:25:19,680 --> 00:25:22,840 kanonikoak, programa xume bat ordenatzen, erlatiboki, 556 00:25:22,840 --> 00:25:24,620 dua, bistaratzen da, Hello World. 557 00:25:24,620 --> 00:25:27,610 Eta gogoratzen erran dudan prozesua iturburu-kode hori pasatzen da 558 00:25:27,610 --> 00:25:28,430 zerbait da. 559 00:25:28,430 --> 00:25:31,180 Hartu duzu zure kodea, gainditu Konpiladore baten bidez, Clang bezala, 560 00:25:31,180 --> 00:25:34,650 eta egindako objektu-kodean dator, Baliteke hau, zeroen eta itxura 561 00:25:34,650 --> 00:25:37,880 ordenagailuaren CPU, central dagoela Prozesatzeko unitate edo garunean, 562 00:25:37,880 --> 00:25:39,760 azken finean ulertzen. 563 00:25:39,760 --> 00:25:42,460 >> Zera gertatzen da hori, eta bat oversimplification baten bit, 564 00:25:42,460 --> 00:25:44,480 orain gaude batean dagoela gain tease posizio 565 00:25:44,480 --> 00:25:46,720 zer benetan izan ulertu gertatzen kanpaia azpian 566 00:25:46,720 --> 00:25:48,600 exekutatzen duzunetan Clang, edo gehiago, oro har, 567 00:25:48,600 --> 00:25:53,040 aldi bakoitzean programa bat egin duzu, Egin eta CF 50 IDE erabiliz. 568 00:25:53,040 --> 00:25:56,760 Hain zuzen ere, gauza bezala hau da lehen sortzen, 569 00:25:56,760 --> 00:25:58,684 aurreneko zure programa konpilatu duzu. 570 00:25:58,684 --> 00:26:00,600 Beste era batera esanda, duzunean Iturburu-kodea hartu 571 00:26:00,600 --> 00:26:04,390 eta konpilatu, zer da lehenengo ari Clang arabera Outputted 572 00:26:04,390 --> 00:26:06,370 muntaia kodea izenez ezagutzen den zerbait da. 573 00:26:06,370 --> 00:26:08,990 Eta hain zuzen ere, itxura zehazki hau bezala. 574 00:26:08,990 --> 00:26:11,170 >> Komando bat exekutatu at I Komando-lerroan lehenago. 575 00:26:11,170 --> 00:26:16,260 Clang etenaren kapital s hello.c, eta honek fitxategi bat sortu 576 00:26:16,260 --> 00:26:19,490 hello.s izeneko niretzat, horietatik barruan zehazki ziren 577 00:26:19,490 --> 00:26:22,290 Eduki horiek, eta pixka bat gehiago batez ere, eta pixka bat gehiago behean, 578 00:26:22,290 --> 00:26:25,080 baina juiciest jarri dut Informazio Hemen pantailan. 579 00:26:25,080 --> 00:26:29,190 Eta ondo erreparatuz gero, ikusiko duzu familiar keywords gutxienez batzuk. 580 00:26:29,190 --> 00:26:31,330 Goian nagusia dugu. 581 00:26:31,330 --> 00:26:35,140 Printf izan dugu behera erdian. 582 00:26:35,140 --> 00:26:38,670 Eta guk ere kaixo mundua backslash komatxo behera beheko n. 583 00:26:38,670 --> 00:26:42,450 >> Eta dena hemen ere beste maila oso altua argibideak da 584 00:26:42,450 --> 00:26:45,500 ordenagailuaren PUZ ulertzen duela. 585 00:26:45,500 --> 00:26:50,090 Memoria mugitzen diren CPU argibideak Inguruan, oroimenetik karga kateak, 586 00:26:50,090 --> 00:26:52,750 eta, azken finean, inprimatu pantailan gauzak. 587 00:26:52,750 --> 00:26:56,780 Orain zer gertatzen da, nahiz eta Muntaia kode hau sortzen da? 588 00:26:56,780 --> 00:26:59,964 Azken finean, nahi duzu, hain zuzen ere, oraindik kode objektu sortzeko. 589 00:26:59,964 --> 00:27:02,630 Baina hori benetan pausoak dira gertatzen kanpaia azpian 590 00:27:02,630 --> 00:27:04,180 Hau atsegin apur bat gehiago begiratzen. 591 00:27:04,180 --> 00:27:08,390 Iturburu-kodea muntaia kodea bihurtzen, eta gero kode objektu bihurtzen da, 592 00:27:08,390 --> 00:27:11,930 eta operatibo hitzak hona hemen, konpilatu duzu zure iturburu-kodea, 593 00:27:11,930 --> 00:27:16,300 ateratzen muntaia kodea, eta ondoren, denean muntatzen duzu zure muntaia kodea, 594 00:27:16,300 --> 00:27:17,800 ateratzen objektu kodea. 595 00:27:17,800 --> 00:27:20,360 >> Orain Clang da super sofistikatuak, konpiladoreak asko bezala, 596 00:27:20,360 --> 00:27:23,151 eta urrats hauek guztiak egiten du elkarrekin, eta ez du zertan egiten du 597 00:27:23,151 --> 00:27:25,360 irteera tarteko edozein fitxategiak ikusi, nahiz eta ahal izango duzu. 598 00:27:25,360 --> 00:27:28,400 Gauzak biltzen ditu, besterik ez da, bertan termino orokorra da 599 00:27:28,400 --> 00:27:30,000 prozesu hau guztia azaltzen du. 600 00:27:30,000 --> 00:27:32,000 Baina benetan nahi baduzu berezia da, ez da 601 00:27:32,000 --> 00:27:34,330 Asko gehiago on ez baita joan. 602 00:27:34,330 --> 00:27:38,860 >> Baina utzi ere kontuan hartu orain, nahiz eta super simple programa horretan, hello.c, 603 00:27:38,860 --> 00:27:40,540 funtzio bat deitzen. 604 00:27:40,540 --> 00:27:41,870 Printf deitzen. 605 00:27:41,870 --> 00:27:46,900 Baina ez dut printf idatzi, hain zuzen ere, C batekin dator, nolabait esateko. 606 00:27:46,900 --> 00:27:51,139 Da funtzio oroitzapen bat hori da io.h estandarra, ere deklaratu bertan 607 00:27:51,139 --> 00:27:53,180 Goiburu-fitxategi bat da, eta horrek Gai da benetan dugu 608 00:27:53,180 --> 00:27:55,780 sakonera gehiago murgiltzea baino lehenago. 609 00:27:55,780 --> 00:27:58,000 Baina goiburua fitxategia da normalean lagunduta 610 00:27:58,000 --> 00:28:02,920 kodea fitxategia, iturburu-kodea fitxategia, hain arabera ez io.h. existitzen askoz bezala 611 00:28:02,920 --> 00:28:05,930 >> Duela Noizbait, norbaitek, edo norbaiten, ere idatzi 612 00:28:05,930 --> 00:28:11,040 io.c estandarra deitzen, fitxategira bertan benetako definizioak, 613 00:28:11,040 --> 00:28:15,220 edo printf ezartzea, eta beste funtzio sortak, 614 00:28:15,220 --> 00:28:16,870 benetan idazten dira. 615 00:28:16,870 --> 00:28:22,140 Beraz, kontuan izanik, izatea kontuan hartzen badugu Hemen ezkerretara, hello.c, noiz dagoela 616 00:28:22,140 --> 00:28:26,250 bildutako hello.s ematen digu, nahiz eta Clang ez du aurreztea traba leku batean 617 00:28:26,250 --> 00:28:31,360 Ikusi ahal izango dugu, eta muntaia kodea duten lortzen hello.o, muntatu eta horrek 618 00:28:31,360 --> 00:28:34,630 Hain zuzen ere, izen lehenetsia da Emandako betiere iturria konpilatu duzu 619 00:28:34,630 --> 00:28:39,350 Objektu kodea sartu, baina ez dira nahiko prest oraindik hura betearazteko, 620 00:28:39,350 --> 00:28:41,460 Beste urrats bat delako gertatuko ditu, eta ditu 621 00:28:41,460 --> 00:28:44,440 izan gertatzen iragan batzuk egiteko asteetan, agian zuk unbeknownst. 622 00:28:44,440 --> 00:28:47,290 >> Hain zuzen ere, nonbait CS50 IDE ere, eta honek, 623 00:28:47,290 --> 00:28:49,870 ere, apur bat izango da une batez oversimplification, 624 00:28:49,870 --> 00:28:54,670 ez da, edo Bazen zen, io.c estandarra izeneko fitxategi bat, 625 00:28:54,670 --> 00:28:58,440 norbaitek konpilatuta io.s estandarra edo baliokidea, 626 00:28:58,440 --> 00:29:02,010 norbaitek ondoren muntatu io.o standard sartu, 627 00:29:02,010 --> 00:29:04,600 edo bihurtzen bat sartu da fitxategia zertxobait ezberdinak 628 00:29:04,600 --> 00:29:07,220 Hori beste bat izan daiteke formatuan fitxategi-luzapena guztiz, 629 00:29:07,220 --> 00:29:11,720 baina teoria eta kontzeptu aldetik, zehazki urrats horiek emateko inprimaki batzuk gertatuko. 630 00:29:11,720 --> 00:29:14,060 Zein da, esateko, orain dela programa bat idazten ari naiz, 631 00:29:14,060 --> 00:29:17,870 hello.c, besterik esaten duen, kaixo mundua, eta norbaiten kodea naiz erabiliz 632 00:29:17,870 --> 00:29:22,480 printf, izan zen behin Bazen bezala denbora, io.c estandarra izeneko fitxategi batean 633 00:29:22,480 --> 00:29:26,390 ondoren, nolabait nire hartu behar dut objektu-kodean, nire zeroen eta bai, 634 00:29:26,390 --> 00:29:29,260 eta pertsona horren objektu kodea edo zeroen eta bai, 635 00:29:29,260 --> 00:29:34,970 eta, nolabait, horiek lotzeko elkarrekin sartu final fitxategia bat, izeneko kaixo, hori 636 00:29:34,970 --> 00:29:38,070 du zero guztia eta Nire funtzio nagusitik direnak, 637 00:29:38,070 --> 00:29:40,830 eta zero guztia eta printf egiteko direnak. 638 00:29:40,830 --> 00:29:44,900 >> Eta hain zuzen ere, azken prozesua da izeneko, zure objektu kodea lotuz. 639 00:29:44,900 --> 00:29:47,490 Zein irteera fitxategi exekutagarria da. 640 00:29:47,490 --> 00:29:49,780 Beraz, zuzentasuna, at the egun, ez da ezer amaieran 641 00:29:49,780 --> 00:29:52,660 astebete geroztik aldatu egin da, betiere dugu Hasi konpilatu. 642 00:29:52,660 --> 00:29:55,200 Izan ere, hori guztia izan kanpaia azpian gertatzen, 643 00:29:55,200 --> 00:29:57,241 baina orain gaude posizio batean non ezin dugu benetan 644 00:29:57,241 --> 00:29:58,794 aurre gain, hainbat urrats horiek. 645 00:29:58,794 --> 00:30:00,710 Eta hain zuzen ere, amaieran Gaurko, oraindik gaude 646 00:30:00,710 --> 00:30:04,480 zeroen eta bai, ezkerretik bertan Benetan segue handi bat orain 647 00:30:04,480 --> 00:30:08,620 C gaitasuna bestera, hori ez dugu izan ziurrenik onura ateratzeko 648 00:30:08,620 --> 00:30:11,250 Orain arte, bitekin operadore gisa ezaguna. 649 00:30:11,250 --> 00:30:15,220 Beste era batera esanda, orain arte, edonoiz dugu Landu C C edo aldagai datuekin, 650 00:30:15,220 --> 00:30:17,660 Nik gauza izan atsegin dugu karakteretan eta karroza eta ins 651 00:30:17,660 --> 00:30:21,990 eta luzeak eta bikoitzak eta antzekoak, baina horiek guztiak, gutxienez, zortzi bit dira. 652 00:30:21,990 --> 00:30:25,550 Inoiz ez dugu oraindik ahal izan banakako bit manipulatu, 653 00:30:25,550 --> 00:30:28,970 nahiz eta banakako apur bat izan arren, ez dugu ezagutzen, 0 eta 1 irudikatzeko daiteke. 654 00:30:28,970 --> 00:30:32,640 Orain bihurtzen da C direla, zuk banakako bit sartu ahal izan, 655 00:30:32,640 --> 00:30:35,530 sintaxia ezagutzen baduzu, horrekin horiek da. 656 00:30:35,530 --> 00:30:38,010 >> Beraz, dezagun begirada bat bitekin operadore at. 657 00:30:38,010 --> 00:30:41,700 Beraz, irudian hemen sinboloak batzuk direla Nik, mota, ordenatu, eta aurretik dugu. 658 00:30:41,700 --> 00:30:45,580 & Ikurra ikusten dut, bertikal bat bar, eta beste batzuk, hala nola, 659 00:30:45,580 --> 00:30:49,430 eta gogoratzen ampersand ampersand hori Zerbait ikusi dugun da. 660 00:30:49,430 --> 00:30:54,060 Logikoa ETA eragilea, bertan duzu Horietako bi, elkarrekin edo logikoa OR 661 00:30:54,060 --> 00:30:56,300 operadorea, non duzu Bi taberna bertikala dute. 662 00:30:56,300 --> 00:31:00,550 Bitekin operadoreak, horrek egiten zaitugu ikusi bit lan banaka, 663 00:31:00,550 --> 00:31:03,810 besterik ampersand bakar bat erabili, a single barra bertikala, the kurtsore ikurra 664 00:31:03,810 --> 00:31:06,620 datorrena, txikia tilde, eta gero utzi 665 00:31:06,620 --> 00:31:08,990 parentesi utzitako tarte, edo Eskuineko parentesia eskuineko parentesirik. 666 00:31:08,990 --> 00:31:10,770 Horietako bakoitzak esanahi ezberdinak izan. 667 00:31:10,770 --> 00:31:11,950 >> Izan ere, dezagun begirada bat. 668 00:31:11,950 --> 00:31:16,560 Goazen eskola zaharra gaur, eta erabilera antaño ukipen-pantaila bat, 669 00:31:16,560 --> 00:31:18,002 zuri-taula bat bezala ezagutzen. 670 00:31:18,002 --> 00:31:19,710 Eta zuri-taula honetan da gaitu egingo 671 00:31:19,710 --> 00:31:27,360 ikurrak nahiko sinple batzuk adierazteko, edo, hobeto esanda, formulak nahiko sinple batzuk, 672 00:31:27,360 --> 00:31:29,560 orduan ezin dugula, azken finean, leverage, ordena 673 00:31:29,560 --> 00:31:33,230 banakako sartzeko C programaren barruan bit. 674 00:31:33,230 --> 00:31:34,480 Beste era batera esanda, egin dezagun. 675 00:31:34,480 --> 00:31:37,080 Dezagun bat lehen eztabaida ampersand buruz une, 676 00:31:37,080 --> 00:31:39,560 bertan bitekin ETA operadorea da. 677 00:31:39,560 --> 00:31:42,130 Beste era batera esanda, hau da horrek ematen du eragile bat 678 00:31:42,130 --> 00:31:45,930 ezkerreko aldagai bat izan da niretzat normalean, eta eskuin eskuko aldagai bat, 679 00:31:45,930 --> 00:31:50,640 edo banakako balio bat, hori badugu eta Haiekin batera, azken emaitza bat ematen dit. 680 00:31:50,640 --> 00:31:51,560 Beraz, zer esan nahi dut? 681 00:31:51,560 --> 00:31:54,840 Programa batean bazaude, aldagai bat behar duzu dendetan balioak horietako bat dela, 682 00:31:54,840 --> 00:31:58,000 edo dezagun simple mantentzeko, eta besterik zeroen eta idatzi banaka, 683 00:31:58,000 --> 00:32:00,940 Hemen da ampersand operadorea nola funtzionatzen du. 684 00:32:00,940 --> 00:32:06,400 0 ampersand 0 0 berdinak izango. 685 00:32:06,400 --> 00:32:07,210 Zergatik da hori? 686 00:32:07,210 --> 00:32:09,291 >> Oso antzekoa da Adierazpen boolearrak, 687 00:32:09,291 --> 00:32:10,540 Hori orain arte eztabaidatu dugu. 688 00:32:10,540 --> 00:32:15,800 Uste ondoren baduzu, 0 da faltsua, 0 faltsua, faltsuak eta gezurrezko 689 00:32:15,800 --> 00:32:18,720 da, eztabaidatu dugu dugun bezala logikoki, halaber, faltsua. 690 00:32:18,720 --> 00:32:20,270 Beraz, lortu dugu, 0 hemen ere. 691 00:32:20,270 --> 00:32:24,390 Hartu duzun 0 ampersand bada 1, ondo dagoela, ere, 692 00:32:24,390 --> 00:32:29,890 hau da 0 izango da, hau delako ezkerreko adierazpen egia edo 1 izan behar du, 693 00:32:29,890 --> 00:32:32,360 egia eta egia izan behar luke. 694 00:32:32,360 --> 00:32:36,320 Baina hemen faltsua daukagu eta egia da, edo 0 eta 1. 695 00:32:36,320 --> 00:32:42,000 Orain, berriz ere, 1 ampersand badaukagu 0, hori ere, hau da 0 izango da, 696 00:32:42,000 --> 00:32:47,240 eta 1 ampersand 1 badugu, Azkenik, ez 1 apur bat behar dugu. 697 00:32:47,240 --> 00:32:50,340 Beraz, beste era batera esanda, ez gara egiten ari ezer operadorea honekin interesgarria 698 00:32:50,340 --> 00:32:51,850 besterik gabe, ampersand operadorea honetan. 699 00:32:51,850 --> 00:32:53,780 Bitekin ETA operadorea da. 700 00:32:53,780 --> 00:32:57,290 Baina horiek dira osagaiak horren bidez egin ahal izango dugu 701 00:32:57,290 --> 00:32:59,240 gauza interesgarriak, ikusiko dugu laster ikusiko. 702 00:32:59,240 --> 00:33:02,790 >> Orain dezagun besterik bakar batean aquí Eskuineko baino barra bertikala. 703 00:33:02,790 --> 00:33:06,710 Daukat 0 pixka bat eta biok badu Edo harekin, bitetako 704 00:33:06,710 --> 00:33:11,030 EDO eragilea, beste 0 bit, hori emateko me 0 doa. 705 00:33:11,030 --> 00:33:17,540 Hartu nuen 0 pixka bat eta edo harekin bada 1 pixka bat, gero nabil 1 lortu nahi dut. 706 00:33:17,540 --> 00:33:19,830 Eta hain zuzen ere, besterik gabe, argitasuna, let me atzera egin, 707 00:33:19,830 --> 00:33:23,380 beraz, nire tabernak bertikala Ez zara 1 en oker. 708 00:33:23,380 --> 00:33:26,560 Let guztia berridatzi me Nire 1 apur bat gehiago 709 00:33:26,560 --> 00:33:32,700 argi eta garbi, eta, beraz, hurrengo ikusiko dugu, badut Izan 1 edo 0, 1 a izan behar da joan, 710 00:33:32,700 --> 00:33:39,060 eta daukat 1 bat edo 1 bada, ere, da 1 bat izango da. 711 00:33:39,060 --> 00:33:42,900 Beraz, logikoki ikusi ahal izango duzu, edo hori operadorea modu ezberdin batean jokatzen. 712 00:33:42,900 --> 00:33:48,070 Honek ematen dit 0 OR 0 ematen dit 0, baina beste konbinazio ematen dit 1. 713 00:33:48,070 --> 00:33:52,480 Beraz, luze 1 bat ere badut ere formula, emaitza 1 izango da. 714 00:33:52,480 --> 00:33:55,580 >> ETA batera Aitzitik operadorea, ampersand, 715 00:33:55,580 --> 00:34:00,940 1 bi hamarkadako badut bakarrik ekuazioa, ez benetan lortu nuen 1 out bat. 716 00:34:00,940 --> 00:34:02,850 Orain, ez da gutxi beste bat operadore baita. 717 00:34:02,850 --> 00:34:04,810 Horietako bat, apur bat gehiago parte hartzen da. 718 00:34:04,810 --> 00:34:07,980 Hargatik aurrera me eta ezabatu hau askatzeko espazio batzuk. 719 00:34:07,980 --> 00:34:13,020 720 00:34:13,020 --> 00:34:16,460 Eta dezagun begirada bat kurtsore ikurra, une bat besterik ez da. 721 00:34:16,460 --> 00:34:18,210 Hau da, normalean bat Pertsonaia idatzi dezakezu 722 00:34:18,210 --> 00:34:21,420 zure teklatua holding Shift eta ondoren, zure AEBetako gainean zenbakietako bat 723 00:34:21,420 --> 00:34:22,250 teklatua. 724 00:34:22,250 --> 00:34:26,190 >> Beraz, hau da inorena, EDO eragilea, OR esklusiboa. 725 00:34:26,190 --> 00:34:27,790 Beraz, edo operadorea ikusi besterik ez dugu. 726 00:34:27,790 --> 00:34:29,348 Hau da, beste inorena EDO eragilea. 727 00:34:29,348 --> 00:34:30,639 Zer da benetan aldea? 728 00:34:30,639 --> 00:34:34,570 Beno dezagun formula begiratzea besterik, eta hau erabiltzeko osagai gisa, azken finean. 729 00:34:34,570 --> 00:34:37,690 0 XOR 0. 730 00:34:37,690 --> 00:34:39,650 Esatera noa 0 da beti. 731 00:34:39,650 --> 00:34:41,400 Hori XOR definizioa da. 732 00:34:41,400 --> 00:34:47,104 0 XOR 1 da 1 izango da. 733 00:34:47,104 --> 00:34:58,810 1 XOR 0 da 1 izan behar du, eta 1 XOR 1 izango da? 734 00:34:58,810 --> 00:34:59,890 Okerra? 735 00:34:59,890 --> 00:35:00,520 Edo ez? 736 00:35:00,520 --> 00:35:01,860 Ez dakit. 737 00:35:01,860 --> 00:35:02,810 0. 738 00:35:02,810 --> 00:35:04,700 Orain zer gertatzen da hemen? 739 00:35:04,700 --> 00:35:06,630 Beno buruz gogoeta operadorea honen izena. 740 00:35:06,630 --> 00:35:09,980 Esklusiboa, eta, beraz, izena, mota, iradokitzen, 741 00:35:09,980 --> 00:35:13,940 erantzuna da bakarra izan da joan 1 a Sarrerek esklusiboak badira, 742 00:35:13,940 --> 00:35:15,560 esklusiboki ezberdinetan. 743 00:35:15,560 --> 00:35:18,170 Hortaz, hona hemen Sarrerek dira bera, beraz, irteera 0 da. 744 00:35:18,170 --> 00:35:20,700 Hemen Sarrerek dira bera, beraz, irteera 0 da. 745 00:35:20,700 --> 00:35:25,640 Hona hemen irteerek dira ezberdinak, dute esklusiboak dira, eta beraz, irteera da 1. 746 00:35:25,640 --> 00:35:28,190 Beraz, oso antzekoa da ETA, oso antzekoa da, 747 00:35:28,190 --> 00:35:32,760 edo, hobeto esanda, oso antzekoa da Edo, beste modu baztertzailean, baizik eta bakarrik. 748 00:35:32,760 --> 00:35:36,210 Honek bat jada ez da 1 bat, Bi 1ek izan dugulako, 749 00:35:36,210 --> 00:35:38,621 eta ez hori bakarrik, besterik ez da horietako bat. 750 00:35:38,621 --> 00:35:39,120 Ados. 751 00:35:39,120 --> 00:35:40,080 Eta besteek? 752 00:35:40,080 --> 00:35:44,220 Beno tilde, bere aldetik, benetan polita eta erraza da, zorionez. 753 00:35:44,220 --> 00:35:46,410 Eta hau da unario bat operadorea, horrek esan nahi du 754 00:35:46,410 --> 00:35:50,400 Honez sarrera batean bakarrik aplikatu, eragigai bat, nolabait esateko. 755 00:35:50,400 --> 00:35:51,800 Ez ezkerreko eta eskuineko bat da. 756 00:35:51,800 --> 00:35:56,050 Beste era batera esanda, la tilde hartzen baduzu 0, erantzuna kontrakoa izango da. 757 00:35:56,050 --> 00:35:59,710 Eta hartzen duzu 1 tilde bada ere, Erantzuna ez kontrakoa izango da. 758 00:35:59,710 --> 00:36:02,570 Beraz, tilde operadorea da Pixka bat ukatzea modu bat, 759 00:36:02,570 --> 00:36:06,000 edo pixka bat iraultzeko 0 eta 1, edo 1 eta 0. 760 00:36:06,000 --> 00:36:09,820 >> Eta gurekin azkenik uzten bi besterik final operadoreak, 761 00:36:09,820 --> 00:36:13,840 deiturikoak ezkerreko aldaketa, eta deiturikoak eskuineko shift operadorea. 762 00:36:13,840 --> 00:36:16,620 Ikus dezagun nola lan horiek begirada bat. 763 00:36:16,620 --> 00:36:20,780 Ezkerreko maius operadorea, idatzizko Horrelako bi angelu parentesi batera, 764 00:36:20,780 --> 00:36:22,110 honela funtzionatzen. 765 00:36:22,110 --> 00:36:27,390 Bada nire sarrera, edo nire eragigai, ezkerreko shift operadorea nahiko besterik gabe 1 a. 766 00:36:27,390 --> 00:36:33,750 Eta gero, ordenagailua kontatzeko dut Ezkerretik shift 1, esaten duten zazpi leku, 767 00:36:33,750 --> 00:36:37,150 emaitza dut bagina bezala da hartu duten 1, eta eraman 768 00:36:37,150 --> 00:36:40,160 zazpi leku baino gehiago ezkerretik, eta besterik ezean, 769 00:36:40,160 --> 00:36:42,270 suposatuko goaz eskubidea espazioa 770 00:36:42,270 --> 00:36:44,080 da zeroz betea denean. 771 00:36:44,080 --> 00:36:50,316 Beste era batera esanda, 1 ezker shift 7 va Niri emateko jarraitutako 1 dela, eta 1, 2, 3, 772 00:36:50,316 --> 00:36:54,060 4, 5, 6, 7 zero. 773 00:36:54,060 --> 00:36:57,380 Beraz, bide batez, aukera ematen du bertan 1 bezalako kopuru txiki bat hartu, 774 00:36:57,380 --> 00:37:00,740 eta argi eta garbi, beraz, eta askoz askoz modu honetan handiagoa, 775 00:37:00,740 --> 00:37:06,460 baina benetan ari gara ikusteko dut horretarako planteamendu gehiago clever 776 00:37:06,460 --> 00:37:08,080 Horren ordez, bai, 777 00:37:08,080 --> 00:37:08,720 >> Ados. 778 00:37:08,720 --> 00:37:10,060 Hori da aste hiru da. 779 00:37:10,060 --> 00:37:11,400 Duzun hurrengoan ikusiko dugu. 780 00:37:11,400 --> 00:37:12,770 Hau CS50 zen. 781 00:37:12,770 --> 00:37:17,270 782 00:37:17,270 --> 00:37:22,243 >> [Musika jotzen] 783 00:37:22,243 --> 00:37:25,766 >> HIZLARIA: 1 zen merienda egin zituen taberna beroa erdipurdikoa izozkiaren jateko. 784 00:37:25,766 --> 00:37:28,090 Guztiek izan zuen aurpegitik zuen. 785 00:37:28,090 --> 00:37:30,506 He bizarrik like chocolate jantzita 786 00:37:30,506 --> 00:37:31,756 HIZLARIA 2: Zer egiten ari zara? 787 00:37:31,756 --> 00:37:32,422 HIZLARIA: 3 Hmmm? 788 00:37:32,422 --> 00:37:33,500 Zer? 789 00:37:33,500 --> 00:37:36,800 >> HIZLARIA 2: Ba besterik ez duzu Manteo bikoitza? 790 00:37:36,800 --> 00:37:38,585 Txipa bikoitza busti duzu. 791 00:37:38,585 --> 00:37:39,460 HIZLARIA 3: Barkatu. 792 00:37:39,460 --> 00:37:44,440 HIZLARIA 2: txipa busti Hik mokadu bat hartu, eta berriro busti duzu. 793 00:37:44,440 --> 00:37:44,940 HIZLARIA: 3 794 00:37:44,940 --> 00:37:48,440 HIZLARIA 2: noiz Beraz jarriz bezalakoa da Zure osoak aho Manteo eskuinera. 795 00:37:48,440 --> 00:37:52,400 Hurrengo denbora txip bat hartu duzu, besterik Manteo behin, eta, azkenean hura. 796 00:37:52,400 --> 00:37:53,890 >> HIZLARIA 3: zer Badakizu, Dan? 797 00:37:53,890 --> 00:37:58,006 Manteo nahi duzun modu Manteo duzu. 798 00:37:58,006 --> 00:38:01,900 Manteo dut Manteo nahi dut bidea. 799 00:38:01,900 --> 00:38:03,194