1 00:00:00,000 --> 00:00:03,332 >> [CHWARAE CERDDORIAETH] 2 00:00:03,332 --> 00:00:06,490 >> Andi Peng: Croeso i wythnos 3 o adran. 3 00:00:06,490 --> 00:00:09,550 Diolch, rydych guys, ar gyfer yr holl ddod i'r amser cychwyn yn gynharach heddiw. 4 00:00:09,550 --> 00:00:11,466 Rydym wedi cael 'n glws, ychydig grŵp agos heddiw. 5 00:00:11,466 --> 00:00:14,570 Felly gobeithio y byddwn yn mynd i gorffen, efallai, yn gynnar, 6 00:00:14,570 --> 00:00:15,780 ychydig bach yn gynnar heddiw. 7 00:00:15,780 --> 00:00:22,057 Mor gyflym, dim ond rhai cyhoeddiadau ar gyfer yr agenda heddiw. 8 00:00:22,057 --> 00:00:23,890 Cyn i ni ddechrau, rydym yn mynd i jyst yn mynd dros 9 00:00:23,890 --> 00:00:28,910 rhai materion logistaidd byr, pset cwestiynau, ôl-drafod, pethau fel 'na. 10 00:00:28,910 --> 00:00:30,250 Ac yna byddwn yn plymio i'r dde i mewn. 11 00:00:30,250 --> 00:00:34,710 Byddwn yn defnyddio dadnamydd o'r enw GDB i dechrau debunking ein cod, a oedd David 12 00:00:34,710 --> 00:00:36,550 eglurwyd yn y ddarlith y diwrnod o'r blaen. 13 00:00:36,550 --> 00:00:39,420 Byddwn yn mynd dros y pedwar math o ryw fath. 14 00:00:39,420 --> 00:00:42,310 Byddwn yn mynd drostynt weddol gyflym gan eu bod yn eithaf dwys. 15 00:00:42,310 --> 00:00:45,710 Ond yn gwybod bod yr holl sleidiau a cod ffynhonnell ar-lein bob amser. 16 00:00:45,710 --> 00:00:50,810 Felly mae croeso, yn eich harchwilio, i mynd yn ôl ac yn edrych ar hynny. 17 00:00:50,810 --> 00:00:53,930 >> Byddwn yn mynd drwy nodiant asymptotic, a oedd yn 18 00:00:53,930 --> 00:00:55,944 yn unig yw ffordd ffansi o ddweud "runtimes," 19 00:00:55,944 --> 00:00:58,360 lle mae gennym yr O mawr, a oedd yn Esboniodd David yn y ddarlith. 20 00:00:58,360 --> 00:01:01,550 Ac mae gennym hefyd Omega, a oedd yn yw'r Rhedeg rhwymo is. 21 00:01:01,550 --> 00:01:06,450 A byddwn yn siarad ychydig yn fwy manwl ynglŷn â sut y mae'r rhai gwaith. 22 00:01:06,450 --> 00:01:10,160 Ac yn olaf, byddwn yn mynd dros chwiliad deuaidd, am fod llawer ohonoch chi sydd eisoes wedi 23 00:01:10,160 --> 00:01:15,190 bwrw golwg ar eich psets yn ôl pob tebyg yn gwybod bod hynny yw cwestiwn sy'n yn eich pset. 24 00:01:15,190 --> 00:01:17,470 Felly byddwch i gyd yn hapus ein bod yn ymdrin â hyn heddiw. 25 00:01:17,470 --> 00:01:20,610 >> Ac yn olaf, unol â'ch adran adborth, Fi 'n weithredol 26 00:01:20,610 --> 00:01:23,000 Gadawodd tua 15 munud ar y diwedd i jyst yn mynd dros 27 00:01:23,000 --> 00:01:27,730 logisteg pset3, unrhyw gwestiynau, efallai ychydig o ganllawiau, os gwnewch, 28 00:01:27,730 --> 00:01:28,990 cyn i ni ddechrau rhaglennu. 29 00:01:28,990 --> 00:01:30,890 Felly gadewch i ni geisio i gael drwy y deunydd yn weddol gyflym. 30 00:01:30,890 --> 00:01:33,880 Ac yna gallwn dreulio rhywfaint o amser cymryd mwy o gwestiynau am y pset. 31 00:01:33,880 --> 00:01:35,230 IAWN. 32 00:01:35,230 --> 00:01:39,570 >> Yn gyflym, felly dim ond ychydig cyhoeddiadau cyn i ni ddechrau heddiw. 33 00:01:39,570 --> 00:01:45,410 Yn gyntaf, croeso i wneud drwy ddwy o'ch psets. 34 00:01:45,410 --> 00:01:49,432 Cymerais golwg ar your-- ie, gadewch i ni cael rownd o gymeradwyaeth ar gyfer bod un. 35 00:01:49,432 --> 00:01:51,140 A dweud y gwir, roeddwn mewn gwirionedd, 'n sylweddol creu argraff. 36 00:01:51,140 --> 00:01:55,800 Yr wyf yn graddio y pset cyntaf i chi guys wythnos ac rydych ddiwethaf guys a wnaeth anhygoel. 37 00:01:55,800 --> 00:01:58,290 >> Arddull oedd ar bwynt heblaw ychydig o sylwadau. 38 00:01:58,290 --> 00:02:00,660 Gwnewch yn siŵr eich bod bob amser sylwadau eich cod. 39 00:02:00,660 --> 00:02:03,040 Ond mae eich psets oedd ar bwynt. 40 00:02:03,040 --> 00:02:05,549 A'i gadw i fyny. 41 00:02:05,549 --> 00:02:08,090 Ac mae'n dda i'r safonwr i gweld eich bod guys yn ei roi 42 00:02:08,090 --> 00:02:10,704 yn gymaint o ymdrech yn eich steil a bod eich dyluniad yn eich cod 43 00:02:10,704 --> 00:02:12,120 yr hoffem i chi eu gweld. 44 00:02:12,120 --> 00:02:16,450 Felly dw i'n pasio ar hyd fy niolchgarwch ar gyfer gweddill y CA. 45 00:02:16,450 --> 00:02:19,210 >> Fodd bynnag, mae yna ychydig o gwestiynau ôl-drafod 46 00:02:19,210 --> 00:02:22,010 Fi jyst eisiau mynd dros yr Byddai gwneud y ddau fy mywyd 47 00:02:22,010 --> 00:02:24,900 ac mae llawer o llall CA 'bywydau ychydig yn haws. 48 00:02:24,900 --> 00:02:28,220 Yn gyntaf, yr wyf wedi sylwi ar hyn gorffennol week-- faint ohonoch 49 00:02:28,220 --> 00:02:32,301 wedi bod yn rhedeg check50 ar eich cod cyn i chi gyflwyno? 50 00:02:32,301 --> 00:02:32,800 IAWN. 51 00:02:32,800 --> 00:02:36,690 Felly dylai pawb fod yn ei wneud check50, because-- yn secret-- rydym mewn gwirionedd 52 00:02:36,690 --> 00:02:41,540 rhedeg check50 fel rhan o'n gywirdeb sgriptiau ar gyfer profi eich cod. 53 00:02:41,540 --> 00:02:45,480 Felly os yw eich cod yn methu check50, yn ôl pob tebyg, 54 00:02:45,480 --> 00:02:47,570 Mae'n debyg ei fod yn mynd i methu ein siec hefyd. 55 00:02:47,570 --> 00:02:49,320 Weithiau chi guys gael yr atebion cywir. 56 00:02:49,320 --> 00:02:52,200 Fel, yn barus, mae rhai o'r mae gennych y nifer cywir, 57 00:02:52,200 --> 00:02:53,960 'ch jyst argraffu'r rhai pethau ychwanegol. 58 00:02:53,960 --> 00:02:55,940 A bod pethau ychwanegol mewn gwirionedd yn methu y siec, 59 00:02:55,940 --> 00:02:58,440 oherwydd nad oedd y cyfrifiadur yn ei wneud wir yn gwybod beth mae'n chwilio amdano. 60 00:02:58,440 --> 00:03:00,981 Ac felly bydd yn jyst yn rhedeg drwy, gweld nad yw eich cynnyrch yn gwneud 61 00:03:00,981 --> 00:03:03,810 cyfateb i'r hyn yr ydym yn disgwyl yr ateb i fod, ac yn marcio ei fod yn anghywir. 62 00:03:03,810 --> 00:03:06,560 >> A gwn fod ddigwyddodd yn rhai o'ch achosion yr wythnos hon. 63 00:03:06,560 --> 00:03:09,870 Felly, yr wyf yn mynd yn ôl ac â llaw hailraddio cod pawb. 64 00:03:09,870 --> 00:03:12,780 Yn y dyfodol, fodd bynnag, os gwelwch yn dda, gwnewch yn siwr 65 00:03:12,780 --> 00:03:14,570 eich bod yn rhedeg gwiriwch 50 ar eich cod. 66 00:03:14,570 --> 00:03:17,970 Oherwydd ei fod yn fath o boen gyfer y TA i gael i fynd yn ôl ac â llaw ailraddio 67 00:03:17,970 --> 00:03:21,197 pob pset ar gyfer pob enghraifft sengl, colli ychydig. 68 00:03:21,197 --> 00:03:22,530 Felly doeddwn i ddim yn cymryd oddi ar unrhyw bwyntiau. 69 00:03:22,530 --> 00:03:25,210 Rwy'n credu fy mod yn cymryd i ffwrdd efallai un neu ddau ar gyfer dylunio. 70 00:03:25,210 --> 00:03:27,710 Yn y dyfodol, fodd bynnag, os rydych yn methu check50, 71 00:03:27,710 --> 00:03:31,330 Bydd pwyntiau yn cael eu cymryd i ffwrdd ar gyfer cywirdeb. 72 00:03:31,330 --> 00:03:35,020 >> Ar ben hynny, psets yn oherwydd Gwener am hanner dydd. 73 00:03:35,020 --> 00:03:38,990 Rwy'n credu bod 'na saith munud cyfnod gras hwyr yr ydym yn ei roi i chi. 74 00:03:38,990 --> 00:03:42,434 Fesul amser Harvard, maent yn caniatáu i fod yn saith munud yn hwyr i bopeth. 75 00:03:42,434 --> 00:03:44,350 Felly dyma yng Ngholeg Iâl, yr ydym chi helpu cadw at hynny hefyd. 76 00:03:44,350 --> 00:03:47,910 Ond 'n bert lawer, am 00:07, os nad yw eich pset yn, 77 00:03:47,910 --> 00:03:49,720 mae'n mynd i gael ei marcio fel hwyr. 78 00:03:49,720 --> 00:03:53,160 Ac felly er ei fod yn cael ei farcio mor ddiweddar, mae'r TA-- rwy'n 79 00:03:53,160 --> 00:03:54,870 dal yn mynd i fod yn graddio eich psets. 80 00:03:54,870 --> 00:03:56,760 Felly, byddwch yn dal i weld gradd ymddangos. 81 00:03:56,760 --> 00:03:58,820 Fodd bynnag, yn gwybod bod o diwedd y semester, 82 00:03:58,820 --> 00:04:02,270 Bydd pob psets hwyr yn unig fod zeroed awtomatig gan y cyfrifiadur. 83 00:04:02,270 --> 00:04:04,490 >> Rydym yn gwneud hyn am ddau reswm. 84 00:04:04,490 --> 00:04:09,220 Un, weithiau rydym yn cael hesgusodi, fel esgusodion deon, 85 00:04:09,220 --> 00:04:10,762 nes ymlaen nad wyf yn gwybod am eto. 86 00:04:10,762 --> 00:04:13,761 Felly, rydym yn hoffi i wneud yn siŵr ein bod yn graddio popeth rhag ofn, fel, rwy'n 87 00:04:13,761 --> 00:04:15,080 ar goll esgus i deon. 88 00:04:15,080 --> 00:04:17,000 Ac yn ail, yn cadw mewn cof, gallwch dal i 89 00:04:17,000 --> 00:04:19,370 galw heibio un pset sy'n Mae pwyntiau cwmpas llawn. 90 00:04:19,370 --> 00:04:21,430 Ac felly rydym yn hoffi radd pob un o'ch psets yn unig 91 00:04:21,430 --> 00:04:24,730 i wneud yn siŵr bod eich cwmpas yn yno a ydych yn eu ceisio. 92 00:04:24,730 --> 00:04:29,150 Felly hyd yn oed os mai hwyr, wnewch chi helpu yn dal gael credyd ar gyfer pwyntiau cwmpas, yr wyf yn meddwl. 93 00:04:29,150 --> 00:04:33,730 >> Felly moesol y stori yw, gwneud yn siŵr bod eich psets yn ar-amser. 94 00:04:33,730 --> 00:04:38,350 Ac os nad ydynt mewn ar-amser, gwybod nad mae'n wych. 95 00:04:38,350 --> 00:04:41,678 Yeah, cyn i mi symud ymlaen, a oes unrhyw un yn cael unrhyw gwestiynau ynghylch adborth pset? 96 00:04:41,678 --> 00:04:42,178 Yeah. 97 00:04:42,178 --> 00:04:43,630 >> GYNULLEIDFA: A wnaethoch chi ddweud ein Gall alw heibio un o'r psets? 98 00:04:43,630 --> 00:04:44,296 >> Andi Peng: Yeah. 99 00:04:44,296 --> 00:04:47,050 Felly mae 'na naw psets gyffredinol yn ystod y semester. 100 00:04:47,050 --> 00:04:50,610 Ac os oes gennych cwmpas points-- felly cwmpas yn unig, 101 00:04:50,610 --> 00:04:53,567 'n bert lawer, a ydych yn rhoi cynnig ar y problem, a ydych yn rhoi amser, 102 00:04:53,567 --> 00:04:56,150 a ydych yn dangos eich bod chi wedi Dangosodd eich bod wedi darllen y fanyleb. 103 00:04:56,150 --> 00:04:57,191 Dyna 'n bert lawer gwmpas. 104 00:04:57,191 --> 00:04:59,370 Ac os ydych yn cyflawni pwyntiau cwmpas, rydym yn 105 00:04:59,370 --> 00:05:03,360 Gall gollwng yr isaf un allan o gwmpas llawn. 106 00:05:03,360 --> 00:05:06,790 Felly dyna yn eich fantais i cwblhau a rhoi cynnig ar bob pset. 107 00:05:06,790 --> 00:05:10,320 >> Hyd yn oed os nad oes un upload-- o eu bod yn gweithio, yn eu llwytho i fyny i gyd. 108 00:05:10,320 --> 00:05:13,711 Ac yna byddwn, gobeithio, yn gallu rhoi i chi rai o'r pwyntiau hynny yn ôl. 109 00:05:13,711 --> 00:05:14,210 Cool. 110 00:05:14,210 --> 00:05:16,780 Unrhyw gwestiynau eraill? 111 00:05:16,780 --> 00:05:17,840 Great. 112 00:05:17,840 --> 00:05:21,960 >> Yn ail, swyddfa hours-- ychydig nodiadau byr am oriau swyddfa. 113 00:05:21,960 --> 00:05:24,300 Felly yn gyntaf, dewch yn gynnar yn yr wythnos. 114 00:05:24,300 --> 00:05:26,909 Nid oes neb yn byth yn oriau swyddfa ar ddydd Llun. 115 00:05:26,909 --> 00:05:28,700 Daeth Christabel i oriau swyddfa neithiwr. 116 00:05:28,700 --> 00:05:29,691 Yeah, Christabel. 117 00:05:29,691 --> 00:05:32,190 A beth oedd gennym ar y swyddfa oriau neithiwr, Christabel? 118 00:05:32,190 --> 00:05:33,020 >> GYNULLEIDFA: Cawsom hufen iâ. 119 00:05:33,020 --> 00:05:36,160 >> Andi Peng: Felly sy'n iawn, cawsom hufen iâ ar oriau swyddfa neithiwr. 120 00:05:36,160 --> 00:05:39,390 Er na allaf addo y bydd gennym hufen iâ ar oriau swyddfa 121 00:05:39,390 --> 00:05:43,230 bob wythnos, yr hyn y gallaf ei addo i chi yw y bydd yn sylweddol 122 00:05:43,230 --> 00:05:45,380 gwell i fyfyrwyr i gymhareb TA. 123 00:05:45,380 --> 00:05:47,650 Fel legit, mae fel 00:57. 124 00:05:47,650 --> 00:05:50,350 Tra, gyferbynnu hynny â Dydd Iau, oes gennych chi tua 150 125 00:05:50,350 --> 00:05:52,830 'n sylweddol Pwysleisiodd blant a dim hufen iâ. 126 00:05:52,830 --> 00:05:55,360 Ac nid dim ond cynhyrchiol ar gyfer unrhyw un. 127 00:05:55,360 --> 00:05:58,730 Felly moesol y stori yw, dod yn gynnar i oriau swyddfa a phethau da 128 00:05:58,730 --> 00:06:00,310 fydd yn digwydd. 129 00:06:00,310 --> 00:06:02,110 >> Hefyd, dewch yn barod i ofyn cwestiynau. 130 00:06:02,110 --> 00:06:03,200 Ti'n gwybod? 131 00:06:03,200 --> 00:06:05,420 Waeth beth CA, yr wyf yn yn meddwl, wedi bod yn dweud, 132 00:06:05,420 --> 00:06:10,710 rydym wedi bod yn cael myfyrwyr gwpl sy'n dod i mewn ar ddydd Iau yn, fel, 10:50 133 00:06:10,710 --> 00:06:15,100 Nid yw wedi darllen y fanyleb yn debyg fy helpu, helpa fi. 134 00:06:15,100 --> 00:06:18,200 Yn anffodus, ar y pwynt hwnnw, mae dim llawer y gallwn ei wneud i'ch helpu. 135 00:06:18,200 --> 00:06:19,590 Felly dewch yn gynnar yn yr wythnos. 136 00:06:19,590 --> 00:06:22,040 Dewch yn gynnar i oriau swyddfa. 137 00:06:22,040 --> 00:06:23,350 Dewch yn barod i ofyn cwestiynau. 138 00:06:23,350 --> 00:06:25,310 Gwnewch yn siŵr eich bod chi, fel yn fyfyriwr, yw lle 139 00:06:25,310 --> 00:06:27,620 angen i chi fod fel bod y Gall CA eich arwain ar hyd, 140 00:06:27,620 --> 00:06:32,850 sef yr hyn oriau swyddfa Dylai gael ei glustnodwyd ar gyfer. 141 00:06:32,850 --> 00:06:37,380 >> Yn ail, felly rwy'n gwybod athrawon yn hoffi syndod i ni gyda phrofion. 142 00:06:37,380 --> 00:06:39,439 Roedd gen i athro y rhai fel, yo, gyda llaw, 143 00:06:39,439 --> 00:06:41,230 cofiwch fod canol tymor gennych ddydd Llun nesaf. 144 00:06:41,230 --> 00:06:42,855 Yeah, nid oeddwn yn gwybod am hynny canol tymor. 145 00:06:42,855 --> 00:06:45,630 Felly, yr wyf i'n mynd i fod yn y TA sy'n eich atgoffa i gyd mai cwis 146 00:06:45,630 --> 00:06:47,270 0-- oherwydd, eich bod yn gwybod, rydym yn CS. 147 00:06:47,270 --> 00:06:50,730 Nawr bod rydym wedi arrays gwneud, byddwch yn cael pam ei bod yn cwis 0, nid holi 1, eh? 148 00:06:50,730 --> 00:06:51,320 IAWN. 149 00:06:51,320 --> 00:06:52,490 O, rwy'n cael rhai chuckles ar y un. 150 00:06:52,490 --> 00:06:53,120 IAWN. 151 00:06:53,120 --> 00:06:59,710 >> Felly, bydd cwis 0 yn 14 Hydref os ydych chi yn yr adran o ddydd Llun i Dydd Mercher 152 00:06:59,710 --> 00:07:02,920 a 15 Hydref os ydych mewn yr adran Mawrth-Iau. 153 00:07:02,920 --> 00:07:05,630 Nid yw hyn yn gwneud cais am rhai ohonoch yn Harvard 154 00:07:05,630 --> 00:07:10,350 who-- Rwy'n credu y byddwch i gyd yn cymryd eich cwisiau ar y 14eg. 155 00:07:10,350 --> 00:07:13,560 >> Felly ie, yr wythnos nesaf, os Dafydd, yn y ddarlith, yn mynd, 156 00:07:13,560 --> 00:07:15,747 yeah, felly am hynny Cwis yr wythnos nesaf, i chi i gyd 157 00:07:15,747 --> 00:07:17,580 Ni fydd yn cael ei synnu oherwydd bod chi ddaeth i adran 158 00:07:17,580 --> 00:07:19,664 a ydych yn gwybod bod eich cwis 0 mewn pythefnos. 159 00:07:19,664 --> 00:07:21,580 A byddwn yn cael adolygiad sesiynau a phopeth. 160 00:07:21,580 --> 00:07:26,360 Felly nid oes pryderon am yn cael ei ofni am hynny. 161 00:07:26,360 --> 00:07:29,890 Unrhyw gwestiynau before-- unrhyw gwestiynau o gwbl ynglŷn â materion logistaidd, 162 00:07:29,890 --> 00:07:32,591 graddio, oriau swyddfa, adrannau? 163 00:07:32,591 --> 00:07:33,090 Yeah. 164 00:07:33,090 --> 00:07:35,100 >> GYNULLEIDFA: Felly y cwis yn mynd i fod yn ystod y ddarlith? 165 00:07:35,100 --> 00:07:35,766 >> Andi Peng: Yeah. 166 00:07:35,766 --> 00:07:39,460 Felly y cwis, rwy'n credu, yw 60 cofnodion a glustnodwyd yn y slot amser 167 00:07:39,460 --> 00:07:42,240 y byddwch yn unig yn cymryd yn y neuadd ddarlith. 168 00:07:42,240 --> 00:07:44,810 Felly nid oes rhaid i chi ddod i mewn ymlaen, fel, ar hap 19:00. 169 00:07:44,810 --> 00:07:46,140 Mae hyn i gyd yn dda. 170 00:07:46,140 --> 00:07:47,100 Yeah. 171 00:07:47,100 --> 00:07:50,060 Cool. 172 00:07:50,060 --> 00:07:50,840 >> Iawn. 173 00:07:50,840 --> 00:07:54,330 Felly rydym yn mynd i cyflwyno cysyniad i chi 174 00:07:54,330 --> 00:08:00,760 yr wythnos hon bod David eisoes wedi caredig o crybwyll yn y ddarlith yr wythnos hon ddiwethaf. 175 00:08:00,760 --> 00:08:02,010 Mae'n cael ei alw GDB. 176 00:08:02,010 --> 00:08:05,570 Sut a llawer ohonoch, tra yn cwrs ysgrifennu eich psets, 177 00:08:05,570 --> 00:08:09,981 wedi sylwi botwm mawr sy'n dweud "Debug" ar frig eich DRhA? 178 00:08:09,981 --> 00:08:10,480 IAWN. 179 00:08:10,480 --> 00:08:13,770 Felly nawr byddwn mewn gwirionedd yn cael i ganfod dirgelwch yr hyn y botwm mewn gwirionedd 180 00:08:13,770 --> 00:08:14,270 wneud. 181 00:08:14,270 --> 00:08:16,790 Ac yr wyf yn gwarantu i chi, mae'n hardd, beth prydferth. 182 00:08:16,790 --> 00:08:20,740 >> Felly, hyd yn hyn, yr wyf yn meddwl mae dau beth wedi bod 183 00:08:20,740 --> 00:08:23,320 myfyrwyr wedi bod yn nodweddiadol wneud pan debugging psets. 184 00:08:23,320 --> 00:08:27,635 Un, maent naill ai yn ychwanegu mewn printf () - felly bob ychydig linellau, 185 00:08:27,635 --> 00:08:29,760 maent yn ychwanegu mewn printf () - oh, beth yw newidyn hwn? 186 00:08:29,760 --> 00:08:32,551 O, beth yn amrywio hon now-- ac rydych yn fath o weld y cynnydd 187 00:08:32,551 --> 00:08:33,940 eich cod fel ei fod yn rhedeg. 188 00:08:33,940 --> 00:08:37,030 Neu yr ail ddull plant ei wneud yw eu bod yn jyst ysgrifennu'r holl beth 189 00:08:37,030 --> 00:08:38,610 ac yna mynd fel hyn ar y diwedd. 190 00:08:38,610 --> 00:08:39,970 Gobeithio y mae'n gweithio. 191 00:08:39,970 --> 00:08:44,851 Yr wyf yn gwarantu chi, GDB yn well na ddau o'r dulliau hynny. 192 00:08:44,851 --> 00:08:45,350 Yeah. 193 00:08:45,350 --> 00:08:46,980 Felly bydd hyn yn eich ffrind gorau newydd. 194 00:08:46,980 --> 00:08:51,780 Gan ei fod yn beth hyfryd arddangosiadau sy'n weledol y ddau 195 00:08:51,780 --> 00:08:54,850 beth yw eich cod yn ei wneud ar bwynt penodol 196 00:08:54,850 --> 00:08:57,486 yn ogystal â'r hyn eich holl newidynnau yn cael eu cario, 197 00:08:57,486 --> 00:08:59,610 fel beth eu gwerthoedd nhw, ar y pwynt penodol. 198 00:08:59,610 --> 00:09:02,670 Ac yn y modd hwn, gallwch yn wir gosod torbwyntiau yn eich cod. 199 00:09:02,670 --> 00:09:04,350 Gallwch redeg drwy fesul llinell. 200 00:09:04,350 --> 00:09:07,324 A bydd GDB yn rhaid i chi, eu harddangos ar eich rhan, 201 00:09:07,324 --> 00:09:09,490 beth yw eich holl newidynnau yn cael eu, yr hyn y maent yn ei wneud, 202 00:09:09,490 --> 00:09:10,656 beth sy'n mynd ymlaen yn y cod. 203 00:09:10,656 --> 00:09:13,240 Ac yn y fath fodd, 'i' gymaint yn haws eu gweld 204 00:09:13,240 --> 00:09:17,120 yr hyn sy'n digwydd yn hytrach na printf-ing neu ysgrifennu i lawr eich datganiadau. 205 00:09:17,120 --> 00:09:19,160 >> Felly, byddwn yn gwneud yn enghraifft o hyn yn nes ymlaen. 206 00:09:19,160 --> 00:09:20,660 Felly, mae hyn yn ymddangos braidd yn haniaethol. 207 00:09:20,660 --> 00:09:23,490 Dim pryderon, byddwn yn gwneud enghreifftiau. 208 00:09:23,490 --> 00:09:29,170 Ac felly y bôn, y tri mwyaf, swyddogaethau mwyaf-a ddefnyddir bydd angen i chi yn GDB 209 00:09:29,170 --> 00:09:32,500 yw'r Nesaf, Cam drosodd, ac yn Camu i mewn botymau. 210 00:09:32,500 --> 00:09:34,860 Rydw i'n mynd i fod yn bennaeth dros yno, mewn gwirionedd, ar hyn o bryd. 211 00:09:34,860 --> 00:09:40,930 >> Felly, gallwch chi guys i gyd yn gweld bod neu ddylwn i chwyddo i mewn ychydig? 212 00:09:40,930 --> 00:09:43,220 213 00:09:43,220 --> 00:09:44,470 Yn y cefn, gallwch weld bod? 214 00:09:44,470 --> 00:09:45,730 A ddylwn i chwyddo i mewn? 215 00:09:45,730 --> 00:09:46,480 Dim ond ychydig bach? 216 00:09:46,480 --> 00:09:49,390 OK, oer. 217 00:09:49,390 --> 00:09:50,280 Dyna ni. 218 00:09:50,280 --> 00:09:50,960 IAWN. 219 00:09:50,960 --> 00:09:57,000 >> Felly mae gen i, yma, mae fy gweithredu ar gyfer farus. 220 00:09:57,000 --> 00:10:01,430 Ac er bod llawer ohonoch guys Ysgrifennodd barus yn ddolen tra form-- hynny 221 00:10:01,430 --> 00:10:04,890 yn ffordd gwbl dderbyniol i'w wneud iddo- ffordd arall o wneud hyn yw i wneud dim ond 222 00:10:04,890 --> 00:10:06,280 rhannwch yn y modulo. 223 00:10:06,280 --> 00:10:09,290 Gan fod yna gallwch gael eich gwerth ac yna cael eich gweddill. 224 00:10:09,290 --> 00:10:11,150 Ac yna gallwch dim ond ychwanegwch cyfan at ei gilydd. 225 00:10:11,150 --> 00:10:13,390 A yw'r rhesymeg yr hyn rwy'n ei wneud yma yn gwneud synnwyr i bawb, 226 00:10:13,390 --> 00:10:14,117 cyn i ni ddechrau? 227 00:10:14,117 --> 00:10:16,760 228 00:10:16,760 --> 00:10:17,980 Math o? 229 00:10:17,980 --> 00:10:18,710 Cool. 230 00:10:18,710 --> 00:10:19,210 Great. 231 00:10:19,210 --> 00:10:21,290 Mae'n ddarn 'n bert sexy o god, byddwn yn dweud. 232 00:10:21,290 --> 00:10:23,502 Fel y dywedais, David, yn ddarlithio, ar ôl ychydig, 233 00:10:23,502 --> 00:10:25,960 byddwch chi i gyd yn dechrau gweld cod fel rhywbeth sy'n hardd. 234 00:10:25,960 --> 00:10:29,950 Ac weithiau pan fyddwch yn gweld hardd cod, mae'n deimlad mor wych. 235 00:10:29,950 --> 00:10:35,410 >> Felly, fodd bynnag, er bod y cod hwn yn iawn hardd, nid yw'n gweithio'n iawn. 236 00:10:35,410 --> 00:10:37,750 Felly gadewch i ni redeg check50 ar hyn. 237 00:10:37,750 --> 00:10:39,440 Gwiriwch 50 20-- OOP. 238 00:10:39,440 --> 00:10:43,221 239 00:10:43,221 --> 00:10:43,720 2? 240 00:10:43,720 --> 00:10:44,990 A yw hynny'n pset2? 241 00:10:44,990 --> 00:10:46,870 Yeah. 242 00:10:46,870 --> 00:10:47,520 O, pset1. 243 00:10:47,520 --> 00:10:50,970 244 00:10:50,970 --> 00:10:52,890 IAWN. 245 00:10:52,890 --> 00:10:53,900 Felly rydym yn rhedeg check50. 246 00:10:53,900 --> 00:11:01,550 247 00:11:01,550 --> 00:11:07,170 >> Ac fel y gallwch chi guys weld yma, mae'n methu un neu ddau o achosion. 248 00:11:07,170 --> 00:11:10,165 Ac i rai ohonoch, yn y cwrs gwneud eich setiau problem, 249 00:11:10,165 --> 00:11:11,110 ydych chi fel, AH, pam nad yw'n gweithio. 250 00:11:11,110 --> 00:11:13,318 Pam ei fod yn gweithio ar gyfer rhai Gwerthoedd ond nid ar gyfer rhai eraill? 251 00:11:13,318 --> 00:11:17,760 Wel, GDB yn mynd i helpu chi ffigur pam nad mewnbynnau rhai yn gweithio. 252 00:11:17,760 --> 00:11:18,320 >> IAWN. 253 00:11:18,320 --> 00:11:21,640 Felly, gadewch i ni weld, un o'r gwiriadau oeddwn yn methu yn check50 254 00:11:21,640 --> 00:11:24,920 oedd gwerth mewnbwn 0.41. 255 00:11:24,920 --> 00:11:27,830 Felly yr ateb cywir sy'n dylech fod yn ei gael yw 4. 256 00:11:27,830 --> 00:11:33,090 Ond yn hytrach yr hyn yr wyf argraffu yn y 3-n, sydd yn anghywir. 257 00:11:33,090 --> 00:11:36,190 Felly gadewch i ni jyst yn rhedeg hyn â llaw, dim ond gwneud yn siŵr bod check50 yn gweithio. 258 00:11:36,190 --> 00:11:36,940 Gadewch i ni wneud ./greedy. 259 00:11:36,940 --> 00:11:40,130 260 00:11:40,130 --> 00:11:43,340 Wps, rhaid i mi wneud yn farus. 261 00:11:43,340 --> 00:11:43,840 Dyna ni. 262 00:11:43,840 --> 00:11:44,381 Nawr ./greedy. 263 00:11:44,381 --> 00:11:46,950 264 00:11:46,950 --> 00:11:47,670 >> Faint sy'n ddyledus? 265 00:11:47,670 --> 00:11:49,550 Gadewch i ni wneud 0.41. 266 00:11:49,550 --> 00:11:52,590 Ac yep, rydym yn gweld yma ei fod yn outputting 3 267 00:11:52,590 --> 00:11:55,160 pan fydd yr ateb cywir, mewn gwirionedd, fod yn 4. 268 00:11:55,160 --> 00:12:01,460 Felly gadewch i ni fynd i mewn GDB a gweld sut yr ydym Gall fynd ati i bennu broblem hon. 269 00:12:01,460 --> 00:12:03,992 >> Felly, y cam cyntaf yn bob amser yn debugging eich cod 270 00:12:03,992 --> 00:12:05,950 yw gosod torbwynt, neu bwynt lle'r ydych 271 00:12:05,950 --> 00:12:09,079 am i'r cyfrifiadur neu'r debugger i ddechrau edrych ar. 272 00:12:09,079 --> 00:12:11,120 Felly, os nad ydych yn wir yn gwybod beth yw eich problem yw, 273 00:12:11,120 --> 00:12:14,670 Fel arfer, y peth nodweddiadol rydym am wneud yw gosod ein torbwynt yn y prif. 274 00:12:14,670 --> 00:12:18,520 Felly, os gallwch guys yn gweld hyn botwm coch iawn yno, 275 00:12:18,520 --> 00:12:22,860 yep, a oedd i mi osod torbwynt ar gyfer y prif swyddogaeth. 276 00:12:22,860 --> 00:12:24,130 Yr wyf yn clicio hynny. 277 00:12:24,130 --> 00:12:26,130 >> Ac yna gallaf fynd i fyny at fy botwm Debug. 278 00:12:26,130 --> 00:12:27,036 Yr wyf yn taro y botwm. 279 00:12:27,036 --> 00:12:31,710 280 00:12:31,710 --> 00:12:36,555 Gadewch i mi chwyddo yn ôl allan os gallaf. 281 00:12:36,555 --> 00:12:38,020 Dyna ni. 282 00:12:38,020 --> 00:12:40,730 Felly, rydym wedi, yma, panel ar y dde. 283 00:12:40,730 --> 00:12:43,680 Mae'n ddrwg gen i, guys yn y cefn, yr ydych Ni all 'n sylweddol yn gweld yn dda iawn. 284 00:12:43,680 --> 00:12:49,090 Ond yn y bôn, i gyd y panel ar y dde yn ei wneud 285 00:12:49,090 --> 00:12:53,130 yn cadw golwg ar y amlygwyd llinell, sef y llinell o god 286 00:12:53,130 --> 00:12:56,640 bod y cyfrifiadur yn rhedeg ar hyn o bryd, yn ogystal â phob un o'ch newidynnau 287 00:12:56,640 --> 00:12:57,600 lawr yma. 288 00:12:57,600 --> 00:13:00,487 >> Felly, mae gennych cents, darnau arian, n, i gyd ddatgan i bethau gwahanol 289 00:13:00,487 --> 00:13:01,070 yn y fan hon. 290 00:13:01,070 --> 00:13:04,850 Dim pryderon, gan fod gennym nid mewn gwirionedd iddynt ymgychwyn i unrhyw newidynnau eto. 291 00:13:04,850 --> 00:13:07,200 Felly, yn eich cyfrifiadur, eich cyfrifiadur dim ond yn gweld, 292 00:13:07,200 --> 00:13:14,376 oh, 32767 oedd y swyddogaeth a ddefnyddir ddiwethaf o'r gofod chof yn fy chyfrifiadur. 293 00:13:14,376 --> 00:13:16,000 Ac felly dyna lle cents ar hyn o bryd yn. 294 00:13:16,000 --> 00:13:19,360 Ond ni unwaith y byddwch yn rhedeg y cod, dylai fod yn ymgychwyn. 295 00:13:19,360 --> 00:13:24,110 >> Felly gadewch i ni fynd drwy'r, llinell gan llinell, beth sy'n digwydd fan hyn. 296 00:13:24,110 --> 00:13:25,350 IAWN. 297 00:13:25,350 --> 00:13:29,400 Felly, yma yw'r tri botymau yr wyf newydd hesbonio. 298 00:13:29,400 --> 00:13:34,090 Mae gennych yr Chwarae, neu'r swyddogaeth Run, botwm, mae gennych yr Cam dros botwm, 299 00:13:34,090 --> 00:13:36,600 ac yr ydych hefyd yn cael y Camu i mewn i botwm. 300 00:13:36,600 --> 00:13:41,260 Ac yn ei hanfod, pob un o'r tri nhw dim ond yn mynd drwy eich cod 301 00:13:41,260 --> 00:13:42,690 a gwneud pethau gwahanol. 302 00:13:42,690 --> 00:13:45,680 >> Felly fel arfer, pan fyddwch chi'n debugging, nid ydym am i jyst daro Chwarae, 303 00:13:45,680 --> 00:13:47,930 gan y bydd Chwarae jyst hidla eich cod at ddiwedd ohono. 304 00:13:47,930 --> 00:13:49,070 Ac yna nid ydych mewn gwirionedd fydd gwybod beth yw eich problem 305 00:13:49,070 --> 00:13:51,432 yw oni bai eich bod yn gosod torbwyntiau lluosog. 306 00:13:51,432 --> 00:13:53,890 Os ydych yn gosod torbwyntiau lluosog, bydd yn jyst yn awtomatig 307 00:13:53,890 --> 00:13:56,030 rhedeg o un torbwynt, i'r nesaf, i'r nesaf. 308 00:13:56,030 --> 00:13:58,030 Ond yn yr achos hwn rydym wedi dim ond bod un, oherwydd ein 309 00:13:58,030 --> 00:13:59,970 am weithio ein ffordd o'r brig i lawr i'r gwaelod. 310 00:13:59,970 --> 00:14:04,830 Felly rydym yn mynd i anwybyddu hynny botwm ar hyn o bryd i ddibenion y rhaglen hon. 311 00:14:04,830 --> 00:14:08,230 >> Felly y Cam dros swyddogaeth yn unig camau dros bob llinell sengl 312 00:14:08,230 --> 00:14:11,510 ac yn dweud wrthych beth y cyfrifiadur yn ei wneud. 313 00:14:11,510 --> 00:14:14,630 Y Cam i mewn i swyddogaeth yn mynd i mewn i'r swyddogaeth go iawn 314 00:14:14,630 --> 00:14:16,000 sydd ar eich llinell o god. 315 00:14:16,000 --> 00:14:19,070 Felly, er enghraifft, fel printf (), hynny yn swyddogaeth, dde? 316 00:14:19,070 --> 00:14:21,980 Os Roeddwn i eisiau cam yn gorfforol i mewn i'r printf () yn, 317 00:14:21,980 --> 00:14:25,610 Byddwn mewn gwirionedd yn mynd i mewn i'r darn o cod lle printf () yn ysgrifenedig ac yn gweld 318 00:14:25,610 --> 00:14:26,730 beth sy'n mynd ymlaen yno. 319 00:14:26,730 --> 00:14:29,924 >> Ond yn nodweddiadol, rydym yn cymryd yn ganiataol bod y cod a roddwn i chi gweithio. 320 00:14:29,924 --> 00:14:31,340 Rydym yn cymryd yn ganiataol y printf () yn gweithio. 321 00:14:31,340 --> 00:14:33,170 Rydym yn cymryd yn ganiataol bod GetInt () yn gweithio. 322 00:14:33,170 --> 00:14:35,170 Felly does dim angen i gamu i mewn i swyddogaethau hynny. 323 00:14:35,170 --> 00:14:37,170 Ond os oes yna swyddogaethau eich bod yn ysgrifennu eich hun 324 00:14:37,170 --> 00:14:39,060 eich bod am wirio beth sy'n digwydd, 325 00:14:39,060 --> 00:14:41,200 byddech am i gamu i mewn y swyddogaeth honno. 326 00:14:41,200 --> 00:14:43,940 >> Felly, ar hyn o bryd rydym yn jyst yn mynd i gamu dros y darn hwn o god. 327 00:14:43,940 --> 00:14:44,485 Felly, gadewch i ni weld. 328 00:14:44,485 --> 00:14:46,547 O, print, "O hai, sut llawer o newid yn ddyledus? " 329 00:14:46,547 --> 00:14:47,130 Nid ydym yn poeni. 330 00:14:47,130 --> 00:14:49,830 Rydym yn gwybod sy'n gweithio, felly rydym yn camu drosto. 331 00:14:49,830 --> 00:14:53,290 >> Felly n, sef ein arnofio sy'n rydym wedi initialized-- neu declared-- 332 00:14:53,290 --> 00:14:56,810 i fyny ar y brig, rydym yn awr yn gyfartal hynny i GetFloat (). 333 00:14:56,810 --> 00:14:57,810 Felly gadewch i ni gamu dros hynny. 334 00:14:57,810 --> 00:14:59,580 Ac rydym yn gweld yn y gwaelod yma, mae'r rhaglen 335 00:14:59,580 --> 00:15:03,360 yn fy annog i roi mewnbwn gwerth. 336 00:15:03,360 --> 00:15:08,580 Felly gadewch i ni y gwerth rydym am fewnbwn i roi prawf yma, sef 0.41. 337 00:15:08,580 --> 00:15:09,160 Great. 338 00:15:09,160 --> 00:15:12,780 >> Felly nawr n-- ydych chi'n guys yn gweld yma, ar yr bottom-- 'i' 339 00:15:12,780 --> 00:15:15,140 stored-- oherwydd ein nid ydynt wedi eu talgrynnu eto, 'i' 340 00:15:15,140 --> 00:15:19,540 ei storio yn y cawr tebyg arnofio sy'n 0.4099999996, 341 00:15:19,540 --> 00:15:22,550 sy'n ddigon agos at ein dibenion, ar hyn o bryd, i 0.41. 342 00:15:22,550 --> 00:15:26,090 Ac yna byddwn yn gweld yn nes ymlaen, wrth i ni parhau i gamu dros y rhaglen, 343 00:15:26,090 --> 00:15:29,850 ar ôl yma, n wedi dod yn crwn ac cents wedi dod yn 41. 344 00:15:29,850 --> 00:15:30,350 Great. 345 00:15:30,350 --> 00:15:32,230 Felly, rydym yn gwybod bod gweithio ein talgrynnu yn. 346 00:15:32,230 --> 00:15:34,700 Rydym yn gwybod bod gennym y nifer cywir o cents, 347 00:15:34,700 --> 00:15:36,990 felly rydym yn gwybod bod hynny'n ddim wir y broblem. 348 00:15:36,990 --> 00:15:40,050 >> Felly rydym yn parhau camu ymlaen yn y rhaglen hon. 349 00:15:40,050 --> 00:15:40,900 Rydym yn mynd yma. 350 00:15:40,900 --> 00:15:46,139 Ac felly, ar ôl llinell hon o god, rydym Dylai gwybod faint o chwarteri sydd gennym. 351 00:15:46,139 --> 00:15:46,680 Rydym yn camu drosodd. 352 00:15:46,680 --> 00:15:52,040 A ydych yn gweld ydym yn, mewn gwirionedd, gael un chwarter oherwydd ein bod wedi tynnu 25 353 00:15:52,040 --> 00:15:53,790 o'n gwerth cychwynnol o 41. 354 00:15:53,790 --> 00:15:55,890 Ac mae gennym 16 chwith i ein cents. 355 00:15:55,890 --> 00:15:58,830 >> Ydy pawb yn deall sut mae'r rhaglen yn camu drwy 356 00:15:58,830 --> 00:16:02,980 a pham cents erbyn hyn wedi dod yn 16 a pham, erbyn hyn, darnau arian wedi dod yn 1? 357 00:16:02,980 --> 00:16:04,610 A yw pawb yn dilyn y rhesymeg? 358 00:16:04,610 --> 00:16:05,110 Cool. 359 00:16:05,110 --> 00:16:07,860 Felly, fel y pwynt hwn, mae'r gwaith rhaglen, dde? 360 00:16:07,860 --> 00:16:09,797 Rydym yn gwybod ei fod yn gwneud yn union yr hyn yr ydym am iddo. 361 00:16:09,797 --> 00:16:11,880 Ac nid ni fel mae'n digwydd rhaid i'w argraffu, oh, beth 362 00:16:11,880 --> 00:16:14,430 yw cents ar hyn o bryd, beth yw darnau arian ar y pwynt hwn. 363 00:16:14,430 --> 00:16:17,170 >> Rydym yn parhau mynd drwy'r rhaglen. 364 00:16:17,170 --> 00:16:18,100 Camu drosodd. 365 00:16:18,100 --> 00:16:18,620 Cool. 366 00:16:18,620 --> 00:16:19,700 Rydym yn mynd dros dimes. 367 00:16:19,700 --> 00:16:20,200 Great. 368 00:16:20,200 --> 00:16:22,367 Rydym yn gweld ei fod wedi cymryd oddi ar 0.10 $ am dime. 369 00:16:22,367 --> 00:16:23,450 Ac yn awr mae gennym ddau darnau arian. 370 00:16:23,450 --> 00:16:25,260 Mae hynny'n gywir. 371 00:16:25,260 --> 00:16:31,555 >> Rydym yn mynd dros ceiniogau ac rydym yn gweld ein bod wedi got chwith dros cents. 372 00:16:31,555 --> 00:16:32,680 Hmm, mae hynny'n rhyfedd. 373 00:16:32,680 --> 00:16:37,540 Up yma yn y rhaglen, oeddwn i fod i fod wedi tynnu fy ceiniogau. 374 00:16:37,540 --> 00:16:39,400 Efallai fy mod nid yn unig oedd gwneud hynny'n iawn llinell. 375 00:16:39,400 --> 00:16:42,190 Ac gwaetha'r modd, gallwch weld yma, oherwydd ein bod yn gwybod 376 00:16:42,190 --> 00:16:44,360 ein bod yn camu drwy linellau 32 a 33, 377 00:16:44,360 --> 00:16:50,560 dyna lle mae ein rhaglen amhriodol Roedd gan newidynnau rhedeg. 378 00:16:50,560 --> 00:16:55,136 Fel y gallwn edrych a gweld, o, Im 'yn tynnu cents yma, 379 00:16:55,136 --> 00:16:57,010 ond dydw i ddim mewn gwirionedd gan ychwanegu at fy ngwerth darn arian. 380 00:16:57,010 --> 00:16:57,860 Im 'yn ychwanegu at cents. 381 00:16:57,860 --> 00:17:00,234 Ac nid wyf am ychwanegu at cents, yr wyf am ychwanegu at ddarnau arian. 382 00:17:00,234 --> 00:17:05,420 Felly, os byddwn yn newid hynny i darnau arian, mae gennym raglen gwaith. 383 00:17:05,420 --> 00:17:06,730 Gallaf redeg check50. 384 00:17:06,730 --> 00:17:11,063 Alli jyst adael allan o GDB hawl yma ac yna rhedeg check50 eto. 385 00:17:11,063 --> 00:17:11,938 Gallai Fi jyst yn gwneud hyn. 386 00:17:11,938 --> 00:17:14,822 387 00:17:14,822 --> 00:17:18,480 Rhaid i mi wneud yn farus. 388 00:17:18,480 --> 00:17:19,940 0.41. 389 00:17:19,940 --> 00:17:22,819 Ac yma, mae'n argraffu allan yr ateb cywir. 390 00:17:22,819 --> 00:17:26,569 >> Felly, fel y gallwch weld guys, GDB yn arf pwerus iawn 391 00:17:26,569 --> 00:17:29,940 gyfer yr adeg pan mae gennym gymaint cod mynd ymlaen ac felly mae llawer newidynnau 392 00:17:29,940 --> 00:17:32,510 ei bod yn anodd i ni, fel dynol, i gadw golwg ar. 393 00:17:32,510 --> 00:17:35,360 Mae'r cyfrifiadur, yn y GDB dadnamydd, y gallu 394 00:17:35,360 --> 00:17:37,020 i gadw golwg ar bopeth. 395 00:17:37,020 --> 00:17:40,480 Yr wyf yn gwybod, yn Visionaire, mae'n debyg eich bod guys allai fod wedi taro rhai diffygion segmentu 396 00:17:40,480 --> 00:17:43,150 oherwydd eich bod yn rhedeg yn waharddedig o'ch arae. 397 00:17:43,150 --> 00:17:46,510 Yn yr enghraifft o Cesar, dyna yn union beth dwi wedi rhoi ar waith yma. 398 00:17:46,510 --> 00:17:50,060 >> Felly, yr wyf yn anghofio i wirio am beth fyddai'n digwydd os byddaf 399 00:17:50,060 --> 00:17:52,510 Nid oedd gan dau dadleuon llinell orchymyn. 400 00:17:52,510 --> 00:17:53,880 Rwy'n nid yn unig oedd rhoi yn y siec. 401 00:17:53,880 --> 00:17:57,380 Ac felly os wyf yn rhedeg Debug-- gosodais fy torbwynt i'r dde yno. 402 00:17:57,380 --> 00:17:58,055 Rwy'n rhedeg Dadfygio. 403 00:17:58,055 --> 00:18:15,880 404 00:18:15,880 --> 00:18:16,550 >> IAWN. 405 00:18:16,550 --> 00:18:17,050 Yeah. 406 00:18:17,050 --> 00:18:20,350 Felly mewn gwirionedd, GDB oedd i fod i wedi dweud wrthyf yno 407 00:18:20,350 --> 00:18:22,300 Roedd nam segmentiad yno. 408 00:18:22,300 --> 00:18:24,883 Nid wyf yn gwybod beth oedd yn digwydd iawn yno, ond pan fyddaf yn rhedeg iddo, 409 00:18:24,883 --> 00:18:25,590 yr oedd yn gweithio. 410 00:18:25,590 --> 00:18:29,410 Pan fyddwch yn rhedeg llinellau o god trwy a Gallai GDB roi'r gorau iddi dim ond yn sydyn arnoch chi, 411 00:18:29,410 --> 00:18:31,540 mynd i fyny ac edrych beth y gwall coch yn. 412 00:18:31,540 --> 00:18:33,930 Bydd yn rhoi gwybod i chi, hey, byddwch yn Roedd gan nam segmentu, 413 00:18:33,930 --> 00:18:38,550 sy'n golygu eich bod yn ceisio mynediad gofod mewn amrywiaeth nad oedd yn bodoli. 414 00:18:38,550 --> 00:18:39,050 Yeah. 415 00:18:39,050 --> 00:18:43,280 >> Felly, yn y broblem nesaf gosod yr wythnos hon, rydych guys 416 00:18:43,280 --> 00:18:45,600 Mae'n debyg y bydd yn cael llawer o newidynnau fel y bo'r angen o gwmpas. 417 00:18:45,600 --> 00:18:48,560 Nad ydych yn mynd i fod yn siŵr beth maent i gyd yn ei olygu ar bwynt penodol. 418 00:18:48,560 --> 00:18:53,560 Felly bydd GDB wir yn eich helpu i figuring yr hyn y maent i gyd yn gyfartal 419 00:18:53,560 --> 00:18:55,940 a bod yn gallu gweld bod eu golwg. 420 00:18:55,940 --> 00:19:01,995 A oes unrhyw un drysu ynghylch sut unrhyw un a oedd yn gweithio? 421 00:19:01,995 --> 00:19:02,495 Cool. 422 00:19:02,495 --> 00:19:10,121 423 00:19:10,121 --> 00:19:10,620 Iawn. 424 00:19:10,620 --> 00:19:14,260 Felly, ar ôl hynny, yr ydym yn mynd i ddeifio i'r dde 425 00:19:14,260 --> 00:19:17,562 i mewn pedwar wahanol mathau o ryw fath ar gyfer yr wythnos hon. 426 00:19:17,562 --> 00:19:19,520 Faint ohonoch chi, yn gyntaf oll, cyn i ni ddechrau, 427 00:19:19,520 --> 00:19:23,020 wedi darllen y fanyleb gyfan ar gyfer pset3? 428 00:19:23,020 --> 00:19:23,824 IAWN. 429 00:19:23,824 --> 00:19:24,740 Rwy'n falch ohonoch guys. 430 00:19:24,740 --> 00:19:29,110 Dyna fel hanner y dosbarth, a oedd yn gryn dipyn yn fwy na'r tro diwethaf. 431 00:19:29,110 --> 00:19:33,950 >> Felly mae hynny'n wych, oherwydd pan rydym yn siarad am y cynnwys 432 00:19:33,950 --> 00:19:36,170 yn lecture-- neu ddrwg gennym, yn adran hon-- Rwy'n hoffi 433 00:19:36,170 --> 00:19:38,210 i gysylltu llawer o hynny yn ôl at yr hyn y mae'r pset yw 434 00:19:38,210 --> 00:19:40,210 a sut yr ydych am gweithredu hynny yn eich pset. 435 00:19:40,210 --> 00:19:42,400 Felly, os ydych yn dod ar ôl Darllenwch y fanyleb, mae'n chi helpu 436 00:19:42,400 --> 00:19:45,510 yn llawer haws i chi ddeall beth rwy'n siarad amdano pan fyddaf yn dweud, 437 00:19:45,510 --> 00:19:48,720 oh hey, gallai hyn fod yn wir lle da i weithredu'r math hwn. 438 00:19:48,720 --> 00:19:52,870 Felly, y rhai ohonoch sydd wedi darllen y Manyleb gwybod bod, fel rhan o'ch pset, 439 00:19:52,870 --> 00:19:54,900 rydych yn mynd i gael i ysgrifennu math o fath. 440 00:19:54,900 --> 00:19:58,670 Felly gall hyn fod yn ddefnyddiol iawn ar gyfer llawer ohonoch chi heddiw. 441 00:19:58,670 --> 00:20:01,760 >> Felly, byddwn yn dechrau gyda, yn y bôn, y math mwyaf syml 442 00:20:01,760 --> 00:20:04,580 o'r math, y math dethol. 443 00:20:04,580 --> 00:20:06,800 Mae'r algorithm nodweddiadol ar gyfer sut y byddem yn mynd am hyn 444 00:20:06,800 --> 00:20:10,460 yw-- Aeth David trwy'r rhain i gyd yn darlith, felly byddaf yn gyflym symud ar hyd 445 00:20:10,460 --> 00:20:13,900 Yma-- yn ei hanfod, yr ydych cael amrywiaeth o werthoedd. 446 00:20:13,900 --> 00:20:17,170 Ac yna ddod o hyd i'r Gwerth heb eu didoli lleiaf 447 00:20:17,170 --> 00:20:20,200 ac yr ydych yn cyfnewid y gwerth hwnnw gyda mae'r gwerth heb eu didoli cyntaf. 448 00:20:20,200 --> 00:20:22,700 Ac yna 'ch jyst cadw ailadrodd gyda gweddill eich rhestr. 449 00:20:22,700 --> 00:20:25,740 >> A dyma esboniad gweledol o sut y byddai hynny'n gweithio. 450 00:20:25,740 --> 00:20:30,460 Felly, er enghraifft, pe baem yn dechrau gydag amrywiaeth o pum elfen, mynegai 451 00:20:30,460 --> 00:20:35,910 0 i 4 oed, gyda 3, 5, 2, 6, a 4 gwerthoedd rhoi yn y array-- felly ar hyn o bryd, 452 00:20:35,910 --> 00:20:38,530 rydym yn jyst yn mynd i gymryd yn ganiataol eu bod i gyd heb eu didoli 453 00:20:38,530 --> 00:20:41,130 oherwydd nid ydym wedi profi fel arall. 454 00:20:41,130 --> 00:20:44,130 >> Felly, sut y byddai rhyw fath dethol gwaith yw y byddai'n gyntaf 455 00:20:44,130 --> 00:20:46,800 rhedeg drwy'r chyfanrwydd y rhesi heb eu didoli. 456 00:20:46,800 --> 00:20:49,120 Byddai'n dewis y gwerth lleiaf. 457 00:20:49,120 --> 00:20:51,750 Yn yr achos hwn, 3, dde yn awr, yw'r lleiaf. 458 00:20:51,750 --> 00:20:52,680 Mae'n cael i 5. 459 00:20:52,680 --> 00:20:55,620 Nope, 5 Nid yw yn fwy than-- neu ddrwg gennym, heb fod yn llai than-- 3. 460 00:20:55,620 --> 00:20:57,779 Felly mae'r gwerth lleiaf yn dal i fod 3. 461 00:20:57,779 --> 00:20:58,695 Ac yna byddwch yn cael i 2. 462 00:20:58,695 --> 00:21:00,990 Mae'r cyfrifiadur yn gweld, oh, 2 yn llai na 3. 463 00:21:00,990 --> 00:21:02,750 2 awr yn rhaid iddo fod gwerth lleiaf. 464 00:21:02,750 --> 00:21:06,630 Ac felly 2 gyfnewidiadau ag y gwerth cyntaf. 465 00:21:06,630 --> 00:21:10,702 >> Felly, ar ôl un tocyn, yr ydym yn wir yn gweld bod y 2 a'r 3 yn cael eu cyfnewid. 466 00:21:10,702 --> 00:21:13,910 Ac rydym yn jyst yn mynd i barhau i wneud mae hyn eto gyda gweddill y rhesi. 467 00:21:13,910 --> 00:21:17,660 Felly rydym yn mynd i jyst yn rhedeg drwy'r y pedwar mynegeion olaf y rhesi. 468 00:21:17,660 --> 00:21:20,670 Byddwn yn gweld bod 3 yn y gwerth lleiaf nesaf. 469 00:21:20,670 --> 00:21:23,240 Felly rydym yn mynd i gyfnewid hynny gyda 4. 470 00:21:23,240 --> 00:21:26,900 Ac yna rydym yn jyst yn mynd i gadw yn rhedeg drwy'r nes, yn y pen draw, byddwch yn 471 00:21:26,900 --> 00:21:33,730 fynd i amrywiaeth ddidoli lle 2, 3, 4, 5, a 6 yn cael eu datrys i gyd. 472 00:21:33,730 --> 00:21:37,530 Ydy pawb yn deall y rhesymeg o sut fath dethol yn gweithio? 473 00:21:37,530 --> 00:21:39,669 >> Rydych yn unig yn cael rhyw fath o werth lleiafswm. 474 00:21:39,669 --> 00:21:41,210 Rydych yn cadw golwg ar beth yw hynny. 475 00:21:41,210 --> 00:21:45,170 A pryd bynnag y byddwch yn ei chael yn, byddwch yn cyfnewid ei â'r gwerth cyntaf yn y array-- 476 00:21:45,170 --> 00:21:48,740 neu, nid yw'r value-- cyntaf y gwerth nesaf yn y rhesi. 477 00:21:48,740 --> 00:21:50,150 Cool. 478 00:21:50,150 --> 00:21:55,460 >> Felly, wrth i chi guys math o Gwelodd o cipolwg byr, 479 00:21:55,460 --> 00:21:58,450 rydym yn mynd i pseudocode hyn allan. 480 00:21:58,450 --> 00:22:02,510 Felly, os ydych guys yn y cefn eisiau ffurfio grŵp, mae pawb wrth fwrdd 481 00:22:02,510 --> 00:22:06,170 Gall ffurfio ychydig partner, dw i'n mynd i roi guys fel tri munud i chi 482 00:22:06,170 --> 00:22:08,190 i ddim ond siarad am y rhesymeg, yn Saesneg, 483 00:22:08,190 --> 00:22:14,161 o sut y gallem yn gallu gweithredu pseudocode i ysgrifennu rhyw fath dethol. 484 00:22:14,161 --> 00:22:14,910 Ac mae Candy. 485 00:22:14,910 --> 00:22:16,118 Os gwelwch yn dda dod i fyny a chael Candy. 486 00:22:16,118 --> 00:22:19,520 Os ydych chi yn y cefn ac rydych am Candy, gallaf daflu Candy ar chi. 487 00:22:19,520 --> 00:22:22,850 A dweud y gwir, yn gwneud oer you--. 488 00:22:22,850 --> 00:22:23,552 O, sori. 489 00:22:23,552 --> 00:22:26,751 490 00:22:26,751 --> 00:22:27,250 IAWN. 491 00:22:27,250 --> 00:25:23,880 492 00:25:23,880 --> 00:25:27,140 >> Felly os byddem yn hoffi i, fel y dosbarth, pseudocode ysgrifennu 493 00:25:27,140 --> 00:25:30,466 am sut y gallai un fynd y broblem hon, dim ond mae croeso. 494 00:25:30,466 --> 00:25:32,340 'N annhymerus' jyst yn mynd o gwmpas ac, mewn trefn, gofynnwch i grwpiau 495 00:25:32,340 --> 00:25:35,065 ar gyfer y llinell nesaf yr hyn y dylem fod yn ei wneud. 496 00:25:35,065 --> 00:25:37,840 Felly, os ydych guys am ddechrau i ffwrdd, beth yw'r peth cyntaf 497 00:25:37,840 --> 00:25:40,600 i'w wneud pan fyddwch yn ceisio gweithredu ffordd i ddatrys y rhaglen hon 498 00:25:40,600 --> 00:25:43,480 i ddidoli rhestr ddetholus? 499 00:25:43,480 --> 00:25:46,349 Gadewch i ni gymryd yn ganiataol ein bod cael amrywiaeth, iawn? 500 00:25:46,349 --> 00:25:49,088 >> GYNULLEIDFA: Rydych chi eisiau i greu rhai fath o [Anghlywadwy] bod eich bod yn 501 00:25:49,088 --> 00:25:50,420 yn rhedeg drwy eich casgliad cyfan. 502 00:25:50,420 --> 00:25:51,128 >> Andi Peng: Iawn. 503 00:25:51,128 --> 00:25:54,100 Felly, rydych yn mynd i eisiau ailadrodd trwy bob gofod, dde? 504 00:25:54,100 --> 00:26:05,490 Felly, mawr. 505 00:26:05,490 --> 00:26:08,600 Os ydych chi guys eisiau rhoi 'm' r line-- nesaf ie, yn y cefn. 506 00:26:08,600 --> 00:26:11,414 507 00:26:11,414 --> 00:26:13,290 >> GYNULLEIDFA: Gwiriwch nhw i gyd ar gyfer y lleiaf. 508 00:26:13,290 --> 00:26:14,248 >> Andi Peng: Dyna ni fynd. 509 00:26:14,248 --> 00:26:17,438 Felly rydym yn awyddus i fynd drwy'r ac yn gwirio i weld beth mae'r gwerth lleiaf yw, dde? 510 00:26:17,438 --> 00:26:22,110 511 00:26:22,110 --> 00:26:24,840 Rydw i'n mynd i talfyrru hynny at "min." 512 00:26:24,840 --> 00:26:27,658 Beth ydych chi'n guys am ei wneud ar ôl eich bod wedi dod o hyd i'r gwerth lleiaf? 513 00:26:27,658 --> 00:26:28,533 >> GYNULLEIDFA: [Anghlywadwy] 514 00:26:28,533 --> 00:26:29,942 515 00:26:29,942 --> 00:26:33,150 Andi Peng: Felly, rydych chi'n mynd i eisiau droi gyda'r cyntaf o'r array, 516 00:26:33,150 --> 00:26:33,650 iawn? 517 00:26:33,650 --> 00:26:45,120 518 00:26:45,120 --> 00:26:46,850 Dyna y dechrau, dw i'n mynd i ddweud. 519 00:26:46,850 --> 00:26:47,220 Iawn. 520 00:26:47,220 --> 00:26:50,386 Felly nawr eich bod wedi cyfnewid y cyntaf un, beth ydych chi eisiau ei wneud ar ôl hynny? 521 00:26:50,386 --> 00:26:54,840 Felly nawr rydym yn gwybod bod hyn yn un yma Mae'n rhaid fod y gwerth lleiaf, dde? 522 00:26:54,840 --> 00:26:58,310 Yna byddwch yn cael gorffwys ychwanegol y rhesi sy'n heb eu didoli. 523 00:26:58,310 --> 00:27:01,569 Felly, beth rydych am ei wneud yma, os ydych guys am roi'r llinell nesaf i mi? 524 00:27:01,569 --> 00:27:04,610 GYNULLEIDFA: Felly, yna byddwch am ailadrodd drwy weddill y rhesi. 525 00:27:04,610 --> 00:27:05,276 Andi Peng: Yeah. 526 00:27:05,276 --> 00:27:09,857 Ac felly beth mae ailadrodd drwy fath o awgrymu yn ôl pob tebyg bydd angen i ni? 527 00:27:09,857 --> 00:27:10,440 Pa fath o- 528 00:27:10,440 --> 00:27:12,057 >> GYNULLEIDFA: O, newidyn ychwanegol? 529 00:27:12,057 --> 00:27:13,890 Andi Peng: Mwy na thebyg un arall ar gyfer dolen, dde? 530 00:27:13,890 --> 00:27:28,914 Felly rydym yn fwy na thebyg yn mynd i eisiau i ailadrodd through-- mawr. 531 00:27:28,914 --> 00:27:31,830 Ac yna rydych yn mynd i fynd yn ôl a yn ôl pob tebyg yn gwirio'r isafswm eto, 532 00:27:31,830 --> 00:27:32,100 iawn? 533 00:27:32,100 --> 00:27:34,975 Ac rydych yn mynd i gadw ailadrodd hwn, oherwydd bod y dolenni jyst yn mynd 534 00:27:34,975 --> 00:27:36,010 i gadw rhedeg, dde? 535 00:27:36,010 --> 00:27:39,190 >> Felly, fel y gallwch weld guys, rydym yn dim ond yn cael pseudocode cyffredinol 536 00:27:39,190 --> 00:27:41,480 o sut yr ydym am y rhaglen hon i chwilio. 537 00:27:41,480 --> 00:27:46,646 Mae hyn yn ailadrodd yma, beth ydyn ni'n fel arfer mae angen i ysgrifennu yn ein cod 538 00:27:46,646 --> 00:27:49,270 os ydym am ailadrodd drwy array, pa fath o strwythur? 539 00:27:49,270 --> 00:27:51,030 Yr wyf yn meddwl Christabel Dywedodd eisoes hyn o'r blaen. 540 00:27:51,030 --> 00:27:51,500 >> GYNULLEIDFA: A ar gyfer dolen. 541 00:27:51,500 --> 00:27:52,160 >> Andi Peng: A ar gyfer dolen? 542 00:27:52,160 --> 00:27:52,770 Yn union. 543 00:27:52,770 --> 00:27:56,060 Felly mae hyn yn ôl pob tebyg mynd i fod yn am ddolen. 544 00:27:56,060 --> 00:27:59,240 Beth yw gwiriad yma yn mynd i awgrymu? 545 00:27:59,240 --> 00:28:02,536 Fel arfer, os ydych am wirio os oes rhywbeth yn rhywbeth else-- 546 00:28:02,536 --> 00:28:03,270 >> GYNULLEIDFA: Os. 547 00:28:03,270 --> 00:28:06,790 >> Andi Peng: Mae os, dde? 548 00:28:06,790 --> 00:28:10,790 Ac yna y cyfnewid yma, yr ydym chi helpu mynd dros yn ddiweddarach, gan fod David 549 00:28:10,790 --> 00:28:12,770 aeth trwy hynny yn y ddarlith hefyd. 550 00:28:12,770 --> 00:28:14,580 Ac yna yr ail ailadrodd implies-- 551 00:28:14,580 --> 00:28:15,120 >> GYNULLEIDFA: arall dros ddolen. 552 00:28:15,120 --> 00:28:16,745 >> Andi Peng: --another gyfer dolen, yn union. 553 00:28:16,745 --> 00:28:19,870 554 00:28:19,870 --> 00:28:22,000 Felly, os ydym yn chwilio ar hyn yn gywir, rydym yn 555 00:28:22,000 --> 00:28:24,680 gallu gweld ein bod yn ôl pob tebyg mynd i angen nythu ar gyfer dolen 556 00:28:24,680 --> 00:28:28,330 gyda datganiad amodol i mewn 'na ac yna darn gwirioneddol o god sy'n 557 00:28:28,330 --> 00:28:31,360 mynd i gyfnewid y gwerthoedd. 558 00:28:31,360 --> 00:28:35,980 Felly, yr wyf wedi ysgrifennu dim ond yn gyffredinol cod pseudocode yma. 559 00:28:35,980 --> 00:28:38,910 Ac yna rydym yn mynd mewn gwirionedd i yn gorfforol, fel dosbarth, 560 00:28:38,910 --> 00:28:40,700 ceisio gweithredu hwn heddiw. 561 00:28:40,700 --> 00:28:42,486 Gadewch i ni fynd yn ôl i IDE hwn. 562 00:28:42,486 --> 00:28:49,243 563 00:28:49,243 --> 00:28:50,230 >> Uh-oh. 564 00:28:50,230 --> 00:28:51,754 Pam hynny not-- yno y mae. 565 00:28:51,754 --> 00:28:52,253 IAWN. 566 00:28:52,253 --> 00:28:55,834 567 00:28:55,834 --> 00:28:57,500 Mae'n ddrwg gennym, gadewch i mi geisio chwyddo i mewn ychydig yn fwy. 568 00:28:57,500 --> 00:28:59,310 Dyna ni. 569 00:28:59,310 --> 00:29:05,060 Mae pob Rydw i'n ei wneud yma yn cael ei dwi wedi ei greu rhaglen o'r enw "dethol / sort.c." 570 00:29:05,060 --> 00:29:10,860 Rydw i wedi creu amrywiaeth o naw gwerthoedd, 4, 8, 2, 1, 6, 9, 7, 5, 3. 571 00:29:10,860 --> 00:29:14,370 Ar hyn o bryd, ag y gallwch gweld, maent yn di-drefn. 572 00:29:14,370 --> 00:29:17,880 n yn mynd i fod y rhif sy'n yn dweud wrthych faint o werthoedd 573 00:29:17,880 --> 00:29:18,920 gennych yn eich casgliad. 574 00:29:18,920 --> 00:29:20,670 Yn yr achos hwn, mae gennym naw gwerthoedd. 575 00:29:20,670 --> 00:29:23,760 Ac yr wyf i wedi jyst got a ar gyfer dolen yma hynny printiau allan yr amrywiaeth heb eu didoli. 576 00:29:23,760 --> 00:29:28,370 >> Ac ar y diwedd, yr wyf hefyd wedi cael ar gyfer dolen mai dim ond yn argraffu allan eto. 577 00:29:28,370 --> 00:29:32,070 Felly ddamcaniaethol, os yw rhaglen hon yn gweithio'n iawn, ar y diwedd, 578 00:29:32,070 --> 00:29:35,670 dylech weld ei argraffu ar gyfer dolen lle mae 1, 2, 3, 4, 5, 6, 7, 8, 579 00:29:35,670 --> 00:29:39,310 9 i gyd yn gywir mewn trefn. 580 00:29:39,310 --> 00:29:43,410 >> Felly, mae gennym ni ein pseudocode yma. 581 00:29:43,410 --> 00:29:46,090 A oes unrhyw un yn dymuno i'r canlynol-- Im 'jyst mynd i fynd yn gofyn am volunteers-- 582 00:29:46,090 --> 00:29:49,540 ddweud wrthyf yn union beth i'w deipio os rydym eisiau, yn gyntaf, dim ond ailadrodd 583 00:29:49,540 --> 00:29:52,840 drwy dechrau'r arae hon? 584 00:29:52,840 --> 00:29:55,204 Beth yw llinell o god rwy'n yn ôl pob tebyg yn mynd i angen yma? 585 00:29:55,204 --> 00:29:56,990 >> GYNULLEIDFA: [Anghlywadwy] 586 00:29:56,990 --> 00:29:59,010 >> Andi Peng: Yeah, yn teimlo rhad ac am ddim canlynol-- ddrwg gennym, byddwch yn 587 00:29:59,010 --> 00:30:02,318 Nid oes rhaid i sefyll up-- teimlad rhad ac am ddim i godi eich llais ychydig. 588 00:30:02,318 --> 00:30:08,190 >> GYNULLEIDFA: Ar gyfer i int hafal 0-- 589 00:30:08,190 --> 00:30:10,690 >> Andi Peng: Yeah, yn dda. 590 00:30:10,690 --> 00:30:15,220 >> GYNULLEIDFA: i yn llai na hyd arae. 591 00:30:15,220 --> 00:30:19,630 >> Andi Peng: Felly cadwch mewn meddwl yma, oherwydd ein 592 00:30:19,630 --> 00:30:23,060 Nid oes rhaid i swyddogaeth sy'n yn dweud wrthym hyd arae, 593 00:30:23,060 --> 00:30:25,790 gennym eisoes gwerth sy'n storio hynny. 594 00:30:25,790 --> 00:30:27,920 Iawn? 595 00:30:27,920 --> 00:30:31,010 Peth arall i gadw mewn mind-- mewn amrywiaeth 596 00:30:31,010 --> 00:30:33,940 o naw gwerthoedd, beth yw'r mynegeion? 597 00:30:33,940 --> 00:30:38,720 Gadewch i 'jyst dweud amrywiaeth hwn yn 0 i 3. 598 00:30:38,720 --> 00:30:41,500 Byddwch yn gweld bod yr olaf mynegai mewn gwirionedd 3. 599 00:30:41,500 --> 00:30:45,530 Dyw hi ddim yn 4, er bod yna pedwar gwerth yn y rhesi. 600 00:30:45,530 --> 00:30:49,866 >> Felly, yn fan hyn, mae'n rhaid i ni fod yn ofalus iawn o'r hyn y mae ein cyflwr ar gyfer y darn 601 00:30:49,866 --> 00:30:50,490 yn mynd i fod. 602 00:30:50,490 --> 00:30:51,948 >> GYNULLEIDFA: Oni fyddai'n n minws 1? 603 00:30:51,948 --> 00:30:54,440 Andi Peng: Mae'n mynd n minws 1, yn union. 604 00:30:54,440 --> 00:30:57,379 A yw hynny'n gwneud synnwyr, pam 'i' n minws 1, pawb? 605 00:30:57,379 --> 00:30:58,920 Mae'n oherwydd araeau yn sero-mynegeio. 606 00:30:58,920 --> 00:31:02,010 Maent yn dechrau ar 0 ac yn rhedeg hyd at finws n 1. 607 00:31:02,010 --> 00:31:03,210 Yeah, mae'n ychydig yn anodd. 608 00:31:03,210 --> 00:31:03,730 IAWN. 609 00:31:03,730 --> 00:31:05,929 Ac wedyn-- 610 00:31:05,929 --> 00:31:08,054 GYNULLEIDFA: Isnt'1 sy'n eisoes cymryd gofal fodd bynnag, 611 00:31:08,054 --> 00:31:11,400 gan dim ond nid dweud "llai na neu'n cyfartal i "a dim ond dweud" yn llai na? " 612 00:31:11,400 --> 00:31:13,108 >> Andi Peng: Mae hynny'n Cwestiwn da iawn. 613 00:31:13,108 --> 00:31:13,630 Felly, ie. 614 00:31:13,630 --> 00:31:17,410 Ond hefyd, y ffordd yr ydym ni'n gweithredu'r hawl gwirio, 615 00:31:17,410 --> 00:31:19,120 mae angen i chi gymharu ddau werth. 616 00:31:19,120 --> 00:31:21,009 Felly rydych chi mewn gwirionedd yn eisiau gadael y "i" gwag. 617 00:31:21,009 --> 00:31:23,050 Oherwydd os ydych yn cymharu yr un yma, nid ydych yn mynd 618 00:31:23,050 --> 00:31:25,530 unrhyw beth ar ôl iddo i gymharu â, dde? 619 00:31:25,530 --> 00:31:27,460 Yeah. 620 00:31:27,460 --> 00:31:29,297 Felly, fi ++. 621 00:31:29,297 --> 00:31:30,380 Gadewch i ni ychwanegu ein cromfachau yn. 622 00:31:30,380 --> 00:31:30,880 Wps. 623 00:31:30,880 --> 00:31:33,950 624 00:31:33,950 --> 00:31:34,710 Great. 625 00:31:34,710 --> 00:31:39,117 Felly mae gennym y dechrau o'n dolen allanol. 626 00:31:39,117 --> 00:31:41,450 Felly nawr mae'n debyg eisiau creu newidyn ar gyfer cadw 627 00:31:41,450 --> 00:31:43,085 golwg ar y gwerth lleiaf, dde? 628 00:31:43,085 --> 00:31:45,751 A oes unrhyw un eisiau rhoi 'm' r llinell o god a fyddai'n gwneud hynny? 629 00:31:45,751 --> 00:31:48,700 630 00:31:48,700 --> 00:31:53,570 Beth sydd angen i ni os ydym yn mynd i eisiau i storio rhywbeth? 631 00:31:53,570 --> 00:31:55,047 >> Hawl. 632 00:31:55,047 --> 00:31:57,630 Efallai enw gwell ar gyfer hynny Byddai be-- "dros dro" hollol works-- 633 00:31:57,630 --> 00:32:00,655 efallai enwir fwy aptly fyddai, os ydym am i'r value-- lleiaf 634 00:32:00,655 --> 00:32:01,624 >> GYNULLEIDFA: Min. 635 00:32:01,624 --> 00:32:02,790 Andi Peng: min, dyna ni. 636 00:32:02,790 --> 00:32:05,230 Byddai min yn dda. 637 00:32:05,230 --> 00:32:08,340 Ac felly dyma, beth ydyn ni'n eisiau ei ymgychwyn iddo? 638 00:32:08,340 --> 00:32:09,620 Mae hwn yn ychydig yn anodd. 639 00:32:09,620 --> 00:32:13,580 Gan fod ar hyn o bryd yn y gan ddechrau o amrywiaeth hwn, 640 00:32:13,580 --> 00:32:15,730 Nid ydych wedi edrych ar unrhyw beth, dde? 641 00:32:15,730 --> 00:32:19,200 Felly beth, yn awtomatig, os rydym yn unig ar i dychwelyd 0, 642 00:32:19,200 --> 00:32:22,302 beth ydyn ni eisiau ei ymgychwyn ein gwerth lleiaf gyntaf i? 643 00:32:22,302 --> 00:32:22,802 GYNULLEIDFA: i. 644 00:32:22,802 --> 00:32:24,790 Andi Peng: i, yn union. 645 00:32:24,790 --> 00:32:27,040 Christabel, pam ydym ni eisiau ymgychwyn i fi? 646 00:32:27,040 --> 00:32:28,510 >> GYNULLEIDFA: Oherwydd, yn dda, rydym yn dechrau gyda 0. 647 00:32:28,510 --> 00:32:31,660 Felly, gan fod gennym ddim i'w gymharu iddi, bydd y lleiaf yn y pen draw yn cael 0. 648 00:32:31,660 --> 00:32:32,451 >> Andi Peng: Yn union. 649 00:32:32,451 --> 00:32:34,400 Felly, mae hi'n union gywir. 650 00:32:34,400 --> 00:32:36,780 Oherwydd ein bod wedi nid mewn gwirionedd edrych ar unrhyw beth eto, 651 00:32:36,780 --> 00:32:38,680 nid ydym yn gwybod beth yw ein gwerth lleiaf yw. 652 00:32:38,680 --> 00:32:41,960 Rydym am i ddim ond ymgychwyn i i, sydd, ar hyn o bryd, sy'n iawn yma. 653 00:32:41,960 --> 00:32:44,750 Ac wrth i ni barhau i symud i lawr arae hwn, 654 00:32:44,750 --> 00:32:48,122 byddwn yn gweld hynny, gyda phob pasio ychwanegol, i yn cynnyddu. 655 00:32:48,122 --> 00:32:49,830 Ac felly ar y pwynt hwnnw, yn ôl pob tebyg yn mynd i 656 00:32:49,830 --> 00:32:52,329 i eisiau bod yn y lleiaf, am ei fod yn mynd i fod beth bynnag 657 00:32:52,329 --> 00:32:54,520 yn ddechrau y rhesi heb eu didoli. 658 00:32:54,520 --> 00:32:55,270 Cool. 659 00:32:55,270 --> 00:32:58,720 >> Felly nawr rydym am ychwanegu a ar gyfer dolen yma dyna 660 00:32:58,720 --> 00:33:03,225 mynd i ailadrodd trwy'r heb ei ddidoli, neu weddill amrywiaeth hwn. 661 00:33:03,225 --> 00:33:05,808 A oes unrhyw un eisiau rhoi i mi llinell o god a fyddai'n gwneud hynny? 662 00:33:05,808 --> 00:33:08,870 663 00:33:08,870 --> 00:33:11,330 Hint-- beth sydd angen i ni lawr yma? 664 00:33:11,330 --> 00:33:17,320 665 00:33:17,320 --> 00:33:18,820 Beth sy'n mynd i fynd yn eich am dolen? 666 00:33:18,820 --> 00:33:19,465 Yeah. 667 00:33:19,465 --> 00:33:21,590 GYNULLEIDFA: Felly byddem eisiau cael cyfanrif gwahanol, 668 00:33:21,590 --> 00:33:25,080 oherwydd ein bod yn rhedeg drwy'r gweddill y rhesi yn lle y ff, felly efallai 669 00:33:25,080 --> 00:33:25,760 j. 670 00:33:25,760 --> 00:33:27,301 >> Andi Peng: Yeah, j swnio'n dda i mi. 671 00:33:27,301 --> 00:33:27,850 Equals? 672 00:33:27,850 --> 00:33:33,930 >> GYNULLEIDFA: Felly fyddai i ynghyd ag 1, gan fod ydych yn dechrau ar y gwerth nesaf. 673 00:33:33,930 --> 00:33:40,395 Ac yna i'r end-- felly unwaith eto, j yn llai nag n minws 1, ac yna j ++. 674 00:33:40,395 --> 00:33:41,103 Andi Peng: Great. 675 00:33:41,103 --> 00:33:48,510 676 00:33:48,510 --> 00:33:52,750 >> Ac yna i mewn yma, rydyn ni'n mynd i eisiau i wirio i weld a yw ein cyflwr yn cael ei fodloni, 677 00:33:52,750 --> 00:33:53,250 iawn? 678 00:33:53,250 --> 00:33:55,740 Oherwydd eich bod am newid y gwerth lleiaf 679 00:33:55,740 --> 00:33:58,700 os yw'n mewn gwirionedd yn llai na'r hyn a ydych yn ei gymharu i, dde? 680 00:33:58,700 --> 00:34:01,146 Felly, beth ydym yn mynd i eisiau i mewn yma? 681 00:34:01,146 --> 00:34:04,160 682 00:34:04,160 --> 00:34:04,897 Edrychwch i weld. 683 00:34:04,897 --> 00:34:06,730 Pa fath o ddatganiad a ydym yn ôl pob tebyg yn mynd 684 00:34:06,730 --> 00:34:08,389 ti eisiau ei ddefnyddio os byddwn am wirio rhywbeth? 685 00:34:08,389 --> 00:34:09,360 >> GYNULLEIDFA: Mae pe datganiad. 686 00:34:09,360 --> 00:34:10,485 >> Andi Peng: Mae pe datganiad. 687 00:34:10,485 --> 00:34:13,155 Felly Os-- a beth sy'n mynd i fod yn y cyflwr yr ydym am y tu mewn 688 00:34:13,155 --> 00:34:13,988 o'n os datganiad? 689 00:34:13,988 --> 00:34:18,255 690 00:34:18,255 --> 00:34:22,960 >> GYNULLEIDFA: Os yw gwerth j yn llai na gwerth i-- 691 00:34:22,960 --> 00:34:24,600 >> Andi Peng: Yn union. 692 00:34:24,600 --> 00:34:27,480 Felly Os-- felly gelwir arae hyn yn "array." 693 00:34:27,480 --> 00:34:27,980 Great. 694 00:34:27,980 --> 00:34:30,465 Felly os array-- beth oedd hynny? 695 00:34:30,465 --> 00:34:31,090 Ddweud hynny eto. 696 00:34:31,090 --> 00:34:39,590 >> GYNULLEIDFA: Os arae-j yn llai na arae-i, yna rydym yn newid y min. 697 00:34:39,590 --> 00:34:41,590 Felly byddai'r min fod j. 698 00:34:41,590 --> 00:34:44,590 699 00:34:44,590 --> 00:34:47,249 >> Andi Peng: A yw hynny'n gwneud synnwyr? 700 00:34:47,249 --> 00:34:48,670 IAWN. 701 00:34:48,670 --> 00:34:52,929 Ac yn awr i lawr yma, rydym mewn gwirionedd awyddus i weithredu'r cyfnewid, dde? 702 00:34:52,929 --> 00:34:58,285 Felly yn galw i gof, yn y ddarlith, bod David, pan yr oedd yn ceisio ei gyfnewid the-- beth oedd 703 00:34:58,285 --> 00:34:59,996 sudd oren iddo-- a milk-- 704 00:34:59,996 --> 00:35:01,150 >> GYNULLEIDFA: Yr oedd crynswth. 705 00:35:01,150 --> 00:35:02,816 >> Andi Peng: Yeah, a oedd yn fath o gros. 706 00:35:02,816 --> 00:35:05,310 Ond yr oedd yn dda 'n bert gysyniad gan ddangos amser. 707 00:35:05,310 --> 00:35:08,430 Felly meddyliwch am eich gwerthoedd yma. 708 00:35:08,430 --> 00:35:10,794 Mae gennych amrywiaeth o min, amrywiaeth o ff, 709 00:35:10,794 --> 00:35:12,460 neu beth bynnag yr oeddem yn ceisio cyfnewid yma. 710 00:35:12,460 --> 00:35:15,310 Ac nad ydych yn gallu yn ôl pob tebyg yn eu arllwys i mewn ei gilydd ar yr un pryd, dde? 711 00:35:15,310 --> 00:35:17,180 Felly, beth ydym yn mynd y bydd angen i greu yma 712 00:35:17,180 --> 00:35:19,126 er mwyn cyfnewid y gwerthoedd yn gywir? 713 00:35:19,126 --> 00:35:19,820 >> GYNULLEIDFA: A newidyn dros dro. 714 00:35:19,820 --> 00:35:21,370 >> Andi Peng: A newidyn dros dro. 715 00:35:21,370 --> 00:35:22,570 Felly, gadewch i ni wneud temp int. 716 00:35:22,570 --> 00:35:25,681 Gweler, byddai hyn yn well amser canlynol-- Whoa, beth oedd hynny? 717 00:35:25,681 --> 00:35:26,180 IAWN. 718 00:35:26,180 --> 00:35:29,800 Felly byddai hyn wedi bod yn well amser i enwi y newidyn "dros dro." 719 00:35:29,800 --> 00:35:30,730 Felly, gadewch i ni wneud temp int. 720 00:35:30,730 --> 00:35:32,563 Beth ydym yn mynd i gosod dros dro cyfartal i fan hyn? 721 00:35:32,563 --> 00:35:34,752 722 00:35:34,752 --> 00:35:35,335 GYNULLEIDFA: Min? 723 00:35:35,335 --> 00:35:38,508 724 00:35:38,508 --> 00:35:39,716 Andi Peng: Mae braidd yn anodd. 725 00:35:39,716 --> 00:35:43,110 726 00:35:43,110 --> 00:35:44,880 Nid yw o bwys mewn gwirionedd yn y diwedd. 727 00:35:44,880 --> 00:35:47,690 Nid oes ots beth Er y byddwch yn dewis i gyfnewid mewn 728 00:35:47,690 --> 00:35:50,862 ar yr amod eich bod yn gwneud yn siŵr eich bod yn cadw golwg ar yr hyn yr ydych yn cyfnewid. 729 00:35:50,862 --> 00:35:52,250 >> GYNULLEIDFA: Gallai fod yn array-i. 730 00:35:52,250 --> 00:35:53,666 >> Andi Peng: Yeah, gadewch i ni wneud amrywiaeth-i. 731 00:35:53,666 --> 00:35:55,950 732 00:35:55,950 --> 00:35:59,305 Ac yna beth yw'r llinell nesaf o god yr ydym am ei gael yma? 733 00:35:59,305 --> 00:36:00,680 GYNULLEIDFA: arae-i yn hafal array-j. 734 00:36:00,680 --> 00:36:07,154 735 00:36:07,154 --> 00:36:08,070 Andi Peng: Ac yn olaf? 736 00:36:08,070 --> 00:36:12,070 GYNULLEIDFA: arae-j hafal array-i. 737 00:36:12,070 --> 00:36:14,525 GYNULLEIDFA: Neu arae-j gyfartal arae-temp-- neu, temp. 738 00:36:14,525 --> 00:36:17,135 739 00:36:17,135 --> 00:36:19,430 >> Andi Peng: OK. 740 00:36:19,430 --> 00:36:21,510 Felly gadewch i ni redeg hyn a gweld os yw'n mynd i weithio. 741 00:36:21,510 --> 00:36:37,520 742 00:36:37,520 --> 00:36:39,335 Ble mae hynny'n digwydd? 743 00:36:39,335 --> 00:36:40,210 O, mae hynny'n broblem. 744 00:36:40,210 --> 00:36:44,320 Gweler, ar-lein 40, rydym yn ceisio defnyddio arae-j? 745 00:36:44,320 --> 00:36:47,022 Ond lle mae j ond yn bodoli mewn? 746 00:36:47,022 --> 00:36:48,402 >> GYNULLEIDFA: Yn y am ddolen. 747 00:36:48,402 --> 00:36:49,110 Andi Peng: Iawn. 748 00:36:49,110 --> 00:36:51,730 Felly, beth ydym yn mynd i angen ei wneud? 749 00:36:51,730 --> 00:36:53,170 >> GYNULLEIDFA: Diffinio y tu allan the-- 750 00:36:53,170 --> 00:36:57,777 751 00:36:57,777 --> 00:37:00,610 GYNULLEIDFA: Yeah, yr wyf yn dyfalu bod gennych i ddefnyddio arall os datganiad, dde? 752 00:37:00,610 --> 00:37:05,230 Felly fel, os bydd y minimum-- iawn, gadewch i mi feddwl. 753 00:37:05,230 --> 00:37:08,170 754 00:37:08,170 --> 00:37:09,990 >> Andi Peng: Guys, rhowch gynnig i gymryd golwg Dewch i 755 00:37:09,990 --> 00:37:11,270 gweler, beth sy'n rhywbeth yr ydym yn gallu ei wneud yma? 756 00:37:11,270 --> 00:37:11,811 >> GYNULLEIDFA: OK. 757 00:37:11,811 --> 00:37:15,900 Felly, os yw'r lleiaf nid yw'n gyfartal j-- felly os bydd y lleiaf yn dal i fod i-- 758 00:37:15,900 --> 00:37:17,570 yna ni fyddai rhaid i ni gyfnewid. 759 00:37:17,570 --> 00:37:22,450 760 00:37:22,450 --> 00:37:24,712 >> Andi Peng: Ydy hynny'n gyfartal i? 761 00:37:24,712 --> 00:37:25,920 Beth ydych chi am ei ddweud yma? 762 00:37:25,920 --> 00:37:30,494 >> GYNULLEIDFA: Neu yeah, os yw'r lleiaf yn ff nid gyfartal, yeah. 763 00:37:30,494 --> 00:37:39,627 764 00:37:39,627 --> 00:37:40,210 Andi Peng: OK. 765 00:37:40,210 --> 00:37:42,040 Wel sy'n datrys, math o, ein problemau. 766 00:37:42,040 --> 00:37:47,265 Ond mae hynny yn dal yn datrys y broblem o beth sy'n digwydd os j-- ers j 767 00:37:47,265 --> 00:37:49,890 yn bodoli y tu allan iddo, beth ydych chi ydym am ei wneud â hi? 768 00:37:49,890 --> 00:37:50,698 Datgan y tu allan? 769 00:37:50,698 --> 00:37:59,410 770 00:37:59,410 --> 00:38:02,730 Gadewch i ni geisio rhedeg hyn. 771 00:38:02,730 --> 00:38:04,435 Uh-oh. 772 00:38:04,435 --> 00:38:06,200 Nid yw ein math sy'n gweithio. 773 00:38:06,200 --> 00:38:10,060 >> Fel y gwelwch, mae ein cychwynnol Roedd amrywiaeth gwerthoedd hynny. 774 00:38:10,060 --> 00:38:14,800 Ac wedi hynny dylai fod wedi bod mewn 1, 2, 3, 4, 5, 6, 7, 8, 9. 775 00:38:14,800 --> 00:38:15,530 Nid yw'n gweithio. 776 00:38:15,530 --> 00:38:16,030 Ahh. 777 00:38:16,030 --> 00:38:17,184 Beth ydym yn ei wneud? 778 00:38:17,184 --> 00:38:17,850 GYNULLEIDFA: Debug. 779 00:38:17,850 --> 00:38:21,787 780 00:38:21,787 --> 00:38:23,370 Andi Peng: pob hawl, gallwn geisio hynny. 781 00:38:23,370 --> 00:38:25,030 Gallwn debug. 782 00:38:25,030 --> 00:38:26,042 Chwyddo allan ychydig. 783 00:38:26,042 --> 00:38:31,177 784 00:38:31,177 --> 00:38:33,656 Gadewch i ni osod ein torbwynt. 785 00:38:33,656 --> 00:38:37,280 Gadewch i ni fynd OK like--. 786 00:38:37,280 --> 00:38:40,444 >> Felly, gan ein bod eisoes yn gwybod bod y llinellau hyn, 15 drwy 22, 787 00:38:40,444 --> 00:38:43,610 yn working-- gan fod yr holl rwy'n ei wneud yw dim ond ailadrodd trwy a printing-- 788 00:38:43,610 --> 00:38:45,406 Gallaf fynd yn ei flaen a sgipio hynny. 789 00:38:45,406 --> 00:38:47,280 Gadewch i ni ddechrau yn llinell 25. 790 00:38:47,280 --> 00:38:48,712 OOP, gadewch i mi gael gwared ar hynny. 791 00:38:48,712 --> 00:38:51,598 792 00:38:51,598 --> 00:38:54,057 >> GYNULLEIDFA: Felly y torbwynt yn lle mae'r debugging yn cychwyn? 793 00:38:54,057 --> 00:38:54,890 Andi Peng: Neu stopio. 794 00:38:54,890 --> 00:38:55,670 GYNULLEIDFA: Neu stopio. 795 00:38:55,670 --> 00:38:55,930 Andi Peng: Yeah. 796 00:38:55,930 --> 00:38:58,640 Gallwch osod torbwyntiau lluosog a gall jyst neidio o un i'r llall. 797 00:38:58,640 --> 00:39:01,590 Ond yn yr achos hwn nid ydym yn gwybod lle mae'r camgymeriad yn digwydd. 798 00:39:01,590 --> 00:39:03,780 Felly rydym yn unig eisiau dechrau o'r brig i lawr. 799 00:39:03,780 --> 00:39:05,020 Yep. 800 00:39:05,020 --> 00:39:05,550 IAWN. 801 00:39:05,550 --> 00:39:08,460 >> Felly y llinell hon yma, gallwn gamu i mewn. 802 00:39:08,460 --> 00:39:11,499 Gallwch weld lawr yma, mae gennym amrywiaeth. 803 00:39:11,499 --> 00:39:13,290 Dyna'r gwerthoedd sydd yn y rhesi. 804 00:39:13,290 --> 00:39:16,360 A ydych yn gweld hynny, sut mynegai 0, mae'n cyfateb i'r value-- oh, 805 00:39:16,360 --> 00:39:17,526 Rydw i'n mynd i geisio chwyddo i mewn. 806 00:39:17,526 --> 00:39:20,650 Mae'n ddrwg gennym, mae'n anodd iawn i see-- ar fynegai array 0, 807 00:39:20,650 --> 00:39:24,090 mae gennym werth 4 a Yna, yn y blaen ac yn y blaen. 808 00:39:24,090 --> 00:39:25,670 Rydym wedi ein newidynnau lleol. 809 00:39:25,670 --> 00:39:28,570 Ar hyn o bryd fi yn hafal i 0, yr ydym am iddo fod. 810 00:39:28,570 --> 00:39:31,540 811 00:39:31,540 --> 00:39:33,690 >> Ac felly gadewch i ni gadw camu drwodd. 812 00:39:33,690 --> 00:39:36,850 Mae ein leiaf yn hafal i 0, yr ydym hefyd eisiau iddo fod. 813 00:39:36,850 --> 00:39:39,470 814 00:39:39,470 --> 00:39:45,560 Ac yna rydym yn mynd i mewn ein hail ar gyfer dolen, os arae-j yn llai na arae-i, 815 00:39:45,560 --> 00:39:46,380 nad oedd. 816 00:39:46,380 --> 00:39:48,130 Felly wnaethoch chi weld sut hynny hepgor dros hynny? 817 00:39:48,130 --> 00:39:52,430 >> GYNULLEIDFA: Felly dylai'r os lleiaf, pob Ni ddylai that-- hynny 818 00:39:52,430 --> 00:39:55,424 fod y tu mewn i'r cyntaf ar gyfer ddolen? 819 00:39:55,424 --> 00:39:57,340 Andi Peng: Na, oherwydd rydych yn dal yn awyddus i brofi. 820 00:39:57,340 --> 00:40:00,329 Byddwch am wneud cymhariaeth bob amser, hyd yn oed ar ôl i chi yn rhedeg drwyddo. 821 00:40:00,329 --> 00:40:02,620 Nid ydych yn unig am ei wneud ar y cyntaf pasio drwodd. 822 00:40:02,620 --> 00:40:05,240 Byddwch am wneud hynny gyda pob tocyn ychwanegol eto. 823 00:40:05,240 --> 00:40:07,198 Felly rydych chi am wirio am eich cyflwr y tu mewn. 824 00:40:07,198 --> 00:40:11,610 825 00:40:11,610 --> 00:40:13,746 Felly rydym yn jyst yn mynd i cadw yn rhedeg drwy'r fan hyn. 826 00:40:13,746 --> 00:40:17,337 827 00:40:17,337 --> 00:40:18,420 Byddaf yn rhoi i chi guys awgrym. 828 00:40:18,420 --> 00:40:23,910 Mae'n rhaid iddo wneud â'r ffaith bod pan fydd i chi wirio eich amodol, 829 00:40:23,910 --> 00:40:26,600 nad ydych yn gwirio ar gyfer y mynegai cywir. 830 00:40:26,600 --> 00:40:32,510 Felly, ar hyn o bryd i chi wirio am mynegai amrywiaeth o j yn llai na amrywiaeth 831 00:40:32,510 --> 00:40:33,970 mynegai i. 832 00:40:33,970 --> 00:40:36,580 Ond beth ydych chi'n ei wneud ar dechrau'r am ddolen? 833 00:40:36,580 --> 00:40:38,260 Ydych nad ydych yn gosod j cyfartal i fi? 834 00:40:38,260 --> 00:40:41,260 835 00:40:41,260 --> 00:40:45,415 >> Yeah, felly y gallwn mewn gwirionedd gadael y debugger yma. 836 00:40:45,415 --> 00:40:47,040 Felly, gadewch i ni edrych ar ein pseudocode. 837 00:40:47,040 --> 00:40:50,070 838 00:40:50,070 --> 00:40:52,580 For-- rydym yn mynd i yn dechrau am ff yn dychwelyd 0. 839 00:40:52,580 --> 00:40:54,760 Rydym yn mynd i fynd i fyny at n minws 1. 840 00:40:54,760 --> 00:40:58,040 Gadewch i ni wirio, oedd gennym yr hawl honno? 841 00:40:58,040 --> 00:40:59,580 Yep, hynny oedd yn iawn. 842 00:40:59,580 --> 00:41:02,080 >> Felly, yna y tu mewn fan hyn, rydym yn mynd i greu gwerth lleiaf 843 00:41:02,080 --> 00:41:03,630 ac yn gosod hynny yn hafal i i. 844 00:41:03,630 --> 00:41:04,950 A wnaethom ni wneud hynny? 845 00:41:04,950 --> 00:41:06,270 Yep, yn gwneud hynny. 846 00:41:06,270 --> 00:41:10,430 Nawr yn ein mewnol ar gyfer dolen, rydym yn mynd i wneud j hafal i fi n minws 1. 847 00:41:10,430 --> 00:41:11,950 A wnaethom ni wneud hynny? 848 00:41:11,950 --> 00:41:15,540 Yn wir, yr ydym yn gwneud hynny. 849 00:41:15,540 --> 00:41:19,922 >> Felly, fodd bynnag, beth ydym yn cymharu yma? 850 00:41:19,922 --> 00:41:20,925 >> GYNULLEIDFA: j ac 1. 851 00:41:20,925 --> 00:41:21,716 Andi Peng: Yn union. 852 00:41:21,716 --> 00:41:24,184 853 00:41:24,184 --> 00:41:27,350 Ac yna rydych yn mynd i am osod eich lleiaf cyfartal i j ac 1 hefyd. 854 00:41:27,350 --> 00:41:31,057 855 00:41:31,057 --> 00:41:32,640 Felly es drwy hynny yn gyflym iawn. 856 00:41:32,640 --> 00:41:36,190 A ydych yn guys yn deall pam ei fod yn j ac 1? 857 00:41:36,190 --> 00:41:36,890 IAWN. 858 00:41:36,890 --> 00:41:40,700 >> Felly, yn eich array, yn eich tocyn cyntaf trwy, 859 00:41:40,700 --> 00:41:44,850 eich am ddolen, er int ff yn dychwelyd 0, gadewch i ni 860 00:41:44,850 --> 00:41:46,740 cymryd yn ganiataol nad yw hyn wedi cael ei newid eto. 861 00:41:46,740 --> 00:41:53,180 862 00:41:53,180 --> 00:41:56,760 Mae gennym amrywiaeth o, yn gyfan gwbl, dim ond pedair elfen heb eu didoli, dde? 863 00:41:56,760 --> 00:42:00,760 Felly rydym yn awyddus i ymgychwyn fi cyfartal i 0. 864 00:42:00,760 --> 00:42:03,650 A fi yn mynd i ddim ond rhedeg drwy'r ddolen hon. 865 00:42:03,650 --> 00:42:08,560 Ac felly yn y tocyn cyntaf, rydym yn mynd i ymgychwyn newidyn enw "min" 866 00:42:08,560 --> 00:42:11,245 sydd hefyd yn hafal i, oherwydd Nid oes gennym werth lleiafswm. 867 00:42:11,245 --> 00:42:12,870 Felly dyna hyn o bryd yn gyfartal i 0 yn ogystal. 868 00:42:12,870 --> 00:42:16,182 869 00:42:16,182 --> 00:42:17,640 Ac yna rydym yn mynd i fynd drwy. 870 00:42:17,640 --> 00:42:19,270 Ac rydym am ailadrodd eto. 871 00:42:19,270 --> 00:42:22,900 Nawr ein bod yn wedi dod o hyd beth yw ein lleiafswm yw, yr ydym yn awyddus i ailadrodd drwy 872 00:42:22,900 --> 00:42:25,190 eto i weld os yw'n cymharu, dde? 873 00:42:25,190 --> 00:42:40,440 Felly j, yma, yn mynd i fi cyfartal, sydd yn 0. 874 00:42:40,440 --> 00:42:46,320 Ac yna os array j ynghyd i, a oedd yn yw'r un sy'n nesaf drosodd, fel llai 875 00:42:46,320 --> 00:42:49,270 na'r hyn y mae eich isafswm cyfredol gwerth yn, ydych am gyfnewid. 876 00:42:49,270 --> 00:42:56,850 >> Felly, gadewch i 'jyst dweud rydym wedi got, fel, 2, 5, 1, 8. 877 00:42:56,850 --> 00:43:01,610 Ar hyn o bryd, fi yn hafal i 0 ac j yn hafal i 0. 878 00:43:01,610 --> 00:43:05,210 A dyna ein gwerth lleiaf. 879 00:43:05,210 --> 00:43:09,950 Os arae-j plws i-- felly os yr un dyna ar ôl yr un rydym yn edrych ar 880 00:43:09,950 --> 00:43:13,450 yn fwy na'r un ger ei fron, mae'n mynd i fod y lleiaf. 881 00:43:13,450 --> 00:43:18,120 >> Felly dyma ni yn gweld bod 5 yn llai na hynny. 882 00:43:18,120 --> 00:43:19,730 Felly, mae'n mynd i beidio â bod 5. 883 00:43:19,730 --> 00:43:23,580 Rydym yn gweld bod 1 yn llai na 2, dde? 884 00:43:23,580 --> 00:43:32,970 Felly nawr rydym yn gwybod bod ein isafswm yw mynd i fod yn werth mynegai ar 0, 1, 2. 885 00:43:32,970 --> 00:43:34,030 Yeah? 886 00:43:34,030 --> 00:43:39,170 Ac yna pan fyddwch yn mynd i lawr fan hyn, gallwch gyfnewid y gwerthoedd cywir. 887 00:43:39,170 --> 00:43:42,610 >> Felly, pan fyddwch yn guys yn unig yn cael y j o'r blaen, nid ydych yn edrych ar y un 888 00:43:42,610 --> 00:43:43,260 ar ei ôl. 889 00:43:43,260 --> 00:43:44,520 Rydych yn edrych ar yr un gwerth, a oedd yn 890 00:43:44,520 --> 00:43:46,290 Dyna pam ei bod nid yn unig oedd yn gwneud unrhyw beth. 891 00:43:46,290 --> 00:43:49,721 A yw hynny'n gwneud synnwyr i bawb, pam yr oedd angen hynny ac 1 yno? 892 00:43:49,721 --> 00:43:50,220 IAWN. 893 00:43:50,220 --> 00:43:53,345 Nawr, gadewch i jyst yn rhedeg drwyddi i wneud yn siŵr bod y gweddill y cod yn gywir. 894 00:43:53,345 --> 00:44:04,424 895 00:44:04,424 --> 00:44:05,340 Pam mae hynny'n digwydd? 896 00:44:05,340 --> 00:44:14,780 897 00:44:14,780 --> 00:44:16,364 Ah, 'i' y min yma. 898 00:44:16,364 --> 00:44:17,780 Roeddem yn cymharu gwerth anghywir. 899 00:44:17,780 --> 00:44:24,944 900 00:44:24,944 --> 00:44:25,906 O na. 901 00:44:25,906 --> 00:44:30,720 902 00:44:30,720 --> 00:44:33,482 >> O ie, i lawr yma roeddem gyfnewid y gwerthoedd anghywir hefyd. 903 00:44:33,482 --> 00:44:34,940 Oherwydd ein bod yn edrych ar ff ac g. 904 00:44:34,940 --> 00:44:36,440 Mae'r rhai yw'r rhai yr oeddem yn gwirio. 905 00:44:36,440 --> 00:44:39,160 Rydym mewn gwirionedd yn awyddus i gyfnewid y lleiaf, yr isafswm ar hyn o bryd, 906 00:44:39,160 --> 00:44:40,550 gyda beth bynnag mae'r un y tu allan yn. 907 00:44:40,550 --> 00:44:59,510 908 00:44:59,510 --> 00:45:05,402 Ac fel y gallwch chi weld guys i lawr yma, mae gennym amrywiaeth didoli. 909 00:45:05,402 --> 00:45:07,110 'I jyst yn gorfod ei wneud gyda y ffaith bod pan fydd 910 00:45:07,110 --> 00:45:09,350 yr oeddem yn edrych ar y gwerthoedd yr oeddem yn cymharu, 911 00:45:09,350 --> 00:45:11,226 Nid oeddem yn edrych ar y gwerthoedd cywir. 912 00:45:11,226 --> 00:45:13,850 Rydym yn edrych ar yr un un yma, nid mewn gwirionedd yn cyfnewid ei. 913 00:45:13,850 --> 00:45:17,135 Mae'n rhaid i chi edrych ar yr un nesaf iddo ac yna gallwch gyfnewid. 914 00:45:17,135 --> 00:45:19,260 Felly dyna beth oedd yn fath o bugging ein cod blaen. 915 00:45:19,260 --> 00:45:22,460 A beth wnes i yma yw popeth gallai'r debugger wedi ei wneud ar eich cyfer 916 00:45:22,460 --> 00:45:23,810 Fi jyst yn gwneud hynny ar y bwrdd, am ei fod yn haws 917 00:45:23,810 --> 00:45:26,320 i weld yn hytrach na cheisio i chwyddo i mewn ar y dadfygiwr. 918 00:45:26,320 --> 00:45:29,391 A yw hynny'n gwneud synnwyr i bawb? 919 00:45:29,391 --> 00:45:29,890 Cool. 920 00:45:29,890 --> 00:45:34,800 921 00:45:34,800 --> 00:45:35,410 >> Iawn. 922 00:45:35,410 --> 00:45:41,070 Gallwn symud ymlaen i siarad am nodiant asymptotic, a oedd yn 923 00:45:41,070 --> 00:45:44,580 yn unig yw ffordd ffansi o ddweud y runtimes holl mathau hyn. 924 00:45:44,580 --> 00:45:47,650 Felly, yr wyf yn gwybod David, yn y ddarlith, cyffwrdd runtimes. 925 00:45:47,650 --> 00:45:52,124 Ac efe a aeth drwy'r fformiwla cyfan o sut i gyfrifo'r runtimes. 926 00:45:52,124 --> 00:45:53,040 Dim pryderon am hynny. 927 00:45:53,040 --> 00:45:54,660 Os ydych chi'n wirioneddol chwilfrydig ar sut mae hynny'n gweithio, 928 00:45:54,660 --> 00:45:55,810 mae croeso i chi siarad â mi ar ôl adran. 929 00:45:55,810 --> 00:45:57,560 Gallwn cerdded drwy fformiwlâu at ei gilydd. 930 00:45:57,560 --> 00:46:00,689 Ond mae'n rhaid i 'n sylweddol pawb' ch guys wybod yw bod n sgwâr dros 2 931 00:46:00,689 --> 00:46:01,980 yr un peth â n sgwâr. 932 00:46:01,980 --> 00:46:04,710 Oherwydd bod y nifer fwyaf, y ddehonglwr, yn tyfu y mwyaf. 933 00:46:04,710 --> 00:46:06,590 Ac felly ar gyfer ein dibenion, cyfan yr ydym yn gofalu am 934 00:46:06,590 --> 00:46:09,470 yw bod nifer enfawr sy'n tyfu. 935 00:46:09,470 --> 00:46:13,340 >> Felly beth yw'r achos gorau Rhedeg o'r math dethol? 936 00:46:13,340 --> 00:46:15,830 Os ydych yn mynd i gael i ailadrodd trwy restr 937 00:46:15,830 --> 00:46:18,712 ac yna ailadrodd drwy gweddill y rhestr, 938 00:46:18,712 --> 00:46:20,420 faint o amser yn cael eu ydych yn mynd i yn ôl pob tebyg, 939 00:46:20,420 --> 00:46:24,612 yn y achos-- gwaethaf yn y achos gorau, sorry-- rhedeg drwy? 940 00:46:24,612 --> 00:46:27,070 Efallai y cwestiwn gwell yw i ofyn, beth yw'r achos gwaethaf 941 00:46:27,070 --> 00:46:28,153 Rhedeg o'r math dethol. 942 00:46:28,153 --> 00:46:29,366 GYNULLEIDFA: n sgwâr. 943 00:46:29,366 --> 00:46:30,740 Andi Peng: Mae'n sgwâr n, ar y dde. 944 00:46:30,740 --> 00:46:36,986 Felly yn ffordd hawdd i feddwl am hyn yn debyg, unrhyw adeg gennych ddau nythu ar gyfer dolenni, 945 00:46:36,986 --> 00:46:38,110 mae'n mynd i gael ei sgwario n. 946 00:46:38,110 --> 00:46:40,386 Oherwydd nid yn unig ydych chi rhedeg drwy unwaith eto, 947 00:46:40,386 --> 00:46:42,260 rhaid i chi fynd yn ôl o gwmpas ac yn rhedeg drwy ei 948 00:46:42,260 --> 00:46:44,980 unwaith eto y tu mewn ar gyfer pob gwerth. 949 00:46:44,980 --> 00:46:48,640 Felly, yn yr achos hwnnw, ydych yn rhedeg n Amseroedd n sgwâr, sy'n yw-- ddrwg gennym, 950 00:46:48,640 --> 00:46:50,505 n amserau n, sy'n hafal sgwâr n. 951 00:46:50,505 --> 00:46:53,230 952 00:46:53,230 --> 00:46:56,360 >> Ac didoli hefyd ychydig unigryw yn yr ystyr 953 00:46:56,360 --> 00:46:59,774 nad yw o bwys os yw'r rhain Gwerthoedd eisoes mewn trefn. 954 00:46:59,774 --> 00:47:01,440 Mae'n dal i fynd i redeg trwy anyways. 955 00:47:01,440 --> 00:47:03,872 Gadewch i 'jyst dweud hyn oedd 1, 2, 3, 4. 956 00:47:03,872 --> 00:47:07,080 Ni waeth ai peidio oedd yn gorchymyn, mae'n dal y byddai wedi rhedeg drwy 957 00:47:07,080 --> 00:47:08,620 ac yn dal i edrych ar y gwerth lleiaf. 958 00:47:08,620 --> 00:47:10,100 Byddai wedi gwneud y un nifer o wiriadau 959 00:47:10,100 --> 00:47:12,780 bob tro, hyd yn oed os yw'n Nid oedd mewn gwirionedd yn cyffwrdd unrhyw beth. 960 00:47:12,780 --> 00:47:16,940 >> Felly, mewn achos o'r fath, y gorau a'r gwaethaf runtimes mewn gwirionedd cyfwerth. 961 00:47:16,940 --> 00:47:19,160 Felly mae'r Rhedeg disgwyliedig o'r math dethol, 962 00:47:19,160 --> 00:47:23,790 yr ydym yn dynodi gan y symbol o theta, theta, yn yr achos hwn, 963 00:47:23,790 --> 00:47:24,790 Byddai hefyd yn cael eu sgwario n. 964 00:47:24,790 --> 00:47:26,480 Mae'r tri o'r rhain yn cael eu sgwario n. 965 00:47:26,480 --> 00:47:29,653 A yw pawb yn glir ynglŷn â pham mae'r Rhedeg yn sgwâr n? 966 00:47:29,653 --> 00:47:33,360 967 00:47:33,360 --> 00:47:33,980 >> Iawn. 968 00:47:33,980 --> 00:47:39,120 Felly, Im 'jyst yn mynd i redeg yn gyflym drwy weddill y math. 969 00:47:39,120 --> 00:47:41,137 Mae'r algorithm ar gyfer sort-- swigen cofiwch, 970 00:47:41,137 --> 00:47:43,220 hwn oedd yr un cyntaf Dafydd a aeth yn y ddarlith. 971 00:47:43,220 --> 00:47:46,000 Yn y bôn, chi gam drwy'r rhestr gyfan 972 00:47:46,000 --> 00:47:48,950 ac yr ydych swap-- ch jyst cymharu dau ar y tro. 973 00:47:48,950 --> 00:47:51,350 Ac os bydd un yn fwy, nag ydych newydd eu cyfnewid. 974 00:47:51,350 --> 00:47:53,590 Felly os yw'r rhain yn fwy, a fyddech yn cyfnewid. 975 00:47:53,590 --> 00:47:56,180 Mae gen swyddogol yma. 976 00:47:56,180 --> 00:47:59,100 >> Felly, gadewch i 'jyst dweud eich bod wedi cael 8, 6, 4, 2. 977 00:47:59,100 --> 00:48:00,571 Byddech yn cymharu'r 8 a 6. 978 00:48:00,571 --> 00:48:01,570 Byddai angen i chi gyfnewid eu cyfer. 979 00:48:01,570 --> 00:48:02,610 Byddech yn cymharu'r 8 a 4. 980 00:48:02,610 --> 00:48:03,609 Byddai angen i chi gyfnewid eu cyfer. 981 00:48:03,609 --> 00:48:07,000 Os oes rhaid i chi gyfnewid y 8 a y 2, yn eu newid hefyd. 982 00:48:07,000 --> 00:48:10,760 Felly, mewn ystyr o'r fath, gallwch weld, chwarae allan dros gyfnod hir o amser, 983 00:48:10,760 --> 00:48:13,730 sut gwerthoedd math o swigen i y ben, a dyna pam rydym yn galw ei 984 00:48:13,730 --> 00:48:15,320 didoli swigen. 985 00:48:15,320 --> 00:48:19,950 >> Byddem yn unig yn rhedeg drwy unwaith eto ar ein hail pasio, ac mae ein trydydd pasio, 986 00:48:19,950 --> 00:48:21,150 ac mae ein pedwerydd pasio. 987 00:48:21,150 --> 00:48:25,820 Yn y bôn, swigen fath dim ond yn rhedeg hyd nes nad ydych yn gwneud unrhyw mwy o gyfnewidiadau. 988 00:48:25,820 --> 00:48:31,109 Felly, yn yr ystyr hwnnw, mae hyn yn unig y pseudocode cyffredinol ar ei gyfer. 989 00:48:31,109 --> 00:48:32,650 Dim pryderon, bydd y rhain i gyd fod ar-lein. 990 00:48:32,650 --> 00:48:34,990 Nid oes rhaid i ni fynd mewn gwirionedd dros hyn. 991 00:48:34,990 --> 00:48:38,134 >> Rydym yn unig gychwyn y cyfrif newidyn sy'n dechrau ar 0. 992 00:48:38,134 --> 00:48:39,800 Ac rydym yn ailadrodd drwy'r casgliad cyfan. 993 00:48:39,800 --> 00:48:43,420 Ac os bydd un gwerth yw-- os yw hyn gwerth yn fwy na gwerth, 994 00:48:43,420 --> 00:48:44,610 ydych chi'n mynd i gyfnewid eu cyfer. 995 00:48:44,610 --> 00:48:46,860 Ac yna rydych yn unig mynd i ddal ati. 996 00:48:46,860 --> 00:48:47,970 A ydych yn mynd i gyfrif. 997 00:48:47,970 --> 00:48:50,845 A ydych ond yn mynd i barhau i wneud hwn tra y cownter yn fwy 998 00:48:50,845 --> 00:48:53,345 na 0, sy'n golygu bod bob tro y mae'n rhaid i chi gyfnewid, 999 00:48:53,345 --> 00:48:55,220 eich bod yn gwybod eich bod am fynd yn ôl ac edrychwch eto. 1000 00:48:55,220 --> 00:48:59,510 Ydych am gadw wirio nes eich bod yn gwybod nad oes rhaid i chi gyfnewid anymore. 1001 00:48:59,510 --> 00:49:05,570 >> Felly beth yw'r gorau a'r gwaethaf achos runtimes ar gyfer y math swigen? 1002 00:49:05,570 --> 00:49:09,300 Ac mae hyn hint-- mewn gwirionedd yn wahanol o fath dewis yn yr ystyr 1003 00:49:09,300 --> 00:49:11,810 nad yw'r ddau ateb yr un fath. 1004 00:49:11,810 --> 00:49:14,709 Meddyliwch am beth fyddai'n digwydd mewn achos os yw eisoes wedi'i datrys. 1005 00:49:14,709 --> 00:49:16,500 A meddwl am yr hyn y fyddai'n digwydd pe bai'n 1006 00:49:16,500 --> 00:49:18,372 yn yr achos lle na chafodd ei datrys. 1007 00:49:18,372 --> 00:49:20,580 A gallwch fath o redeg drwy pam mae hynny'n digwydd. 1008 00:49:20,580 --> 00:49:22,954 'N annhymerus' yn rhoi guys i chi, fel, 30 eiliad i feddwl am hynny. 1009 00:49:22,954 --> 00:49:52,330 1010 00:49:52,330 --> 00:49:53,540 >> IAWN. 1011 00:49:53,540 --> 00:49:57,462 Oes gan unrhyw un ddyfalu ar yr hyn y Rhedeg achos gwaethaf o'r math swigen yw? 1012 00:49:57,462 --> 00:49:57,962 Yeah. 1013 00:49:57,962 --> 00:50:07,810 >> GYNULLEIDFA: A fyddai'r fod, fel, n amserau n minws 1 neu rywbeth fel 'na? 1014 00:50:07,810 --> 00:50:10,650 Fel, bob tro y mae'n rhedeg, 'i' jyst, fel, un cyfnewid yn llai 1015 00:50:10,650 --> 00:50:10,960 bod beth bynnag yr oedd. 1016 00:50:10,960 --> 00:50:12,668 >> Andi Peng: Yeah, felly eich bod yn hollol gywir. 1017 00:50:12,668 --> 00:50:15,940 Ac mae hyn yn achos lle eich ateb oedd mewn gwirionedd yn fwy cymhleth 1018 00:50:15,940 --> 00:50:17,240 na'r un mae angen i ni roi. 1019 00:50:17,240 --> 00:50:19,772 Felly, mae'n mynd i run-- rwy'n mynd i ddileu hyn i gyd yma. 1020 00:50:19,772 --> 00:50:20,480 A yw pawb yn dda? 1021 00:50:20,480 --> 00:50:21,869 Alla i ddileu hyn? 1022 00:50:21,869 --> 00:50:22,368 IAWN. 1023 00:50:22,368 --> 00:50:27,904 1024 00:50:27,904 --> 00:50:30,320 Rydych yn mynd i redeg trwy n Amseroedd y tro cyntaf, dde? 1025 00:50:30,320 --> 00:50:33,200 Ac maen nhw'n mynd i redeg drwy n minws 1 yr ail dro, dde? 1026 00:50:33,200 --> 00:50:37,130 Ac yna rydych yn mynd i gadw mynd, n pwll 2, et cetera. 1027 00:50:37,130 --> 00:50:40,210 David yn gwneud hyn mewn darlith, lle, os ydych yn ychwanegu i fyny i gyd gwerthoedd hynny, 1028 00:50:40,210 --> 00:50:48,080 eich bod yn cael rhywbeth sy'n like-- yeah-- dros 2, sydd yn eu hanfod yn unig yn lleihau 1029 00:50:48,080 --> 00:50:49,784 i lawr i n sgwâr. 1030 00:50:49,784 --> 00:50:51,700 Rydych yn mynd i gael ffracsiwn rhyfedd mewn 'na. 1031 00:50:51,700 --> 00:50:53,892 Ac felly jyst yn gwybod bod y n sgwâr bob amser 1032 00:50:53,892 --> 00:50:55,350 cymryd blaenoriaeth dros y ffracsiwn. 1033 00:50:55,350 --> 00:50:58,450 Ac felly yn yr achos hwn, y gwaethaf Byddai Rhedeg yn cael ei sgwario n. 1034 00:50:58,450 --> 00:51:00,210 Os oedd yn ddisgynnol gorchymyn, yn meddwl, i chi 1035 00:51:00,210 --> 00:51:02,530 rhaid i wneud cyfnewid bob tro. 1036 00:51:02,530 --> 00:51:05,170 >> Beth fyddai, o bosibl, yr Rhedeg achos gorau? 1037 00:51:05,170 --> 00:51:08,580 Gadewch i 'jyst dweud, os y rhestr yn barod er, beth fyddai'r Rhedeg fod? 1038 00:51:08,580 --> 00:51:09,565 >> GYNULLEIDFA: n. 1039 00:51:09,565 --> 00:51:10,690 Andi Peng: Mae'n n, yn union. 1040 00:51:10,690 --> 00:51:11,600 A pham ei fod n? 1041 00:51:11,600 --> 00:51:13,850 GYNULLEIDFA: Oherwydd eich bod yn unig rhaid i wirio ar bob unwaith. 1042 00:51:13,850 --> 00:51:14,770 Andi Peng: Yn union. 1043 00:51:14,770 --> 00:51:17,150 Felly, yn y Rhedeg gorau posibl, os y rhestr hon eisoes 1044 00:51:17,150 --> 00:51:20,270 sorted-- gadewch i ni ddweud 1, 2, 3, 4-- chi Byddai dim ond yn mynd drwy, byddech yn gwirio, 1045 00:51:20,270 --> 00:51:21,720 byddech yn gweld, oh, maent i gyd yn sosban allan. 1046 00:51:21,720 --> 00:51:22,636 Nid oedd rhaid i mi gyfnewid. 1047 00:51:22,636 --> 00:51:23,370 Dwi wedi gorffen. 1048 00:51:23,370 --> 00:51:26,500 Felly, yn yr achos hwnnw, 'i' jyst n neu nifer y camau yr ydych yn unig 1049 00:51:26,500 --> 00:51:29,870 roedd yn rhaid i wirio yn y rhestr gyntaf. 1050 00:51:29,870 --> 00:51:33,990 >> Ac ar ôl, rydym yn awr yn taro didoli mewnosod, lle 1051 00:51:33,990 --> 00:51:39,260 yr algorithm yn ei hanfod i rannu i mewn cyfran didoli a heb eu didoli. 1052 00:51:39,260 --> 00:51:42,810 Ac yna o un i un, gwerthoedd heb eu didoli yn 1053 00:51:42,810 --> 00:51:46,880 mewnosod yn eu priodol swyddi yn y dechrau y rhestr. 1054 00:51:46,880 --> 00:51:52,120 >> Felly, er enghraifft, mae gennym rhestr o 3, 5, 2, 6, 4 eto. 1055 00:51:52,120 --> 00:51:54,750 Rydym yn gwybod ei bod yn bryd heb eu didoli gan ein bod ni newydd 1056 00:51:54,750 --> 00:51:57,030 Dechreuodd edrych arno. 1057 00:51:57,030 --> 00:52:00,610 Rydym yn cymryd golwg ac rydym yn gwybod bod mae'r gwerth cyntaf yn cael ei ddidoli, dde? 1058 00:52:00,610 --> 00:52:04,190 Os ydych yn edrych yn unig ar amrywiaeth o maint un, byddwch yn gwybod ei fod yn datrys. 1059 00:52:04,190 --> 00:52:08,230 >> Felly, yna rydym yn gwybod bod y pedwar arall yn heb eu didoli. 1060 00:52:08,230 --> 00:52:10,980 Rydym yn mynd drwy ac rydym yn gweld bod gwerth. 1061 00:52:10,980 --> 00:52:11,730 Gadewch i ni fynd yn ôl. 1062 00:52:11,730 --> 00:52:13,130 Gweler y gwerth o 5? 1063 00:52:13,130 --> 00:52:14,110 Rydym yn edrych ar hynny. 1064 00:52:14,110 --> 00:52:15,204 Rydym yn ei gymharu i 3. 1065 00:52:15,204 --> 00:52:17,870 Rydym yn gwybod ei bod yn fwy na 3, felly rydym yn gwybod bod hynny wedi datrys. 1066 00:52:17,870 --> 00:52:22,940 Felly, rydym bellach yn gwybod bod y ddau gyntaf yn cael eu didoli ac nid y tri olaf yn cael eu. 1067 00:52:22,940 --> 00:52:24,270 >> Rydym yn edrych ar 2. 1068 00:52:24,270 --> 00:52:25,720 Rydym yn gyntaf wirio gyda 5. 1069 00:52:25,720 --> 00:52:26,700 A yw'n llai na 5? 1070 00:52:26,700 --> 00:52:27,240 Nid yw'n. 1071 00:52:27,240 --> 00:52:29,510 Felly, mae'n rhaid i ni gadw yn edrych i lawr. 1072 00:52:29,510 --> 00:52:30,940 Yna byddwch yn gwirio 2 off 3. 1073 00:52:30,940 --> 00:52:31,850 A yw'n llai na? 1074 00:52:31,850 --> 00:52:32,350 Na 1075 00:52:32,350 --> 00:52:35,430 Felly, ydych chi'n gwybod am 2 gael ei fewnosod i mewn i'r tu blaen a 3 a 5 1076 00:52:35,430 --> 00:52:38,200 y ddau yn gorfod eu gwthio allan. 1077 00:52:38,200 --> 00:52:42,190 Gwnewch hyn eto gyda 6 a 4. 1078 00:52:42,190 --> 00:52:48,962 Ac rydym yn unig yn cadw wirio ei hanfod, lle rydym yn unig yn gwirio, gwirio, gwirio. 1079 00:52:48,962 --> 00:52:51,170 A hyd nes ei fod yn hawl sefyllfa, rydym yn fath o yn unig 1080 00:52:51,170 --> 00:52:54,890 mewnosod i mewn i'r safle cywir, a dyna ble y daeth yr enw ohono o. 1081 00:52:54,890 --> 00:52:59,830 >> Felly dyna dim ond y algorithm, pseudocode fel y cyfryw, math o, 1082 00:52:59,830 --> 00:53:04,990 ar sut y byddem yn gweithredu yn fath fewnosod. 1083 00:53:04,990 --> 00:53:05,954 Pseudocode yma. 1084 00:53:05,954 --> 00:53:06,620 Mae hyn i gyd ar-lein. 1085 00:53:06,620 --> 00:53:10,720 Dim pryderon os ydych guys yn ceisio copïo hyn i lawr. 1086 00:53:10,720 --> 00:53:14,500 Felly, unwaith eto, yr un question-- beth Byddai fod y gorau a'r gwaethaf runtimes 1087 00:53:14,500 --> 00:53:16,120 am fath gosod? 1088 00:53:16,120 --> 00:53:17,750 Mae'n debyg iawn i'r cwestiwn diwethaf. 1089 00:53:17,750 --> 00:53:20,479 'N annhymerus' yn rhoi guys i chi, fel, 30 eiliad i feddwl am hyn hefyd. 1090 00:53:20,479 --> 00:53:47,150 1091 00:53:47,150 --> 00:53:50,071 >> OK A oes unrhyw un eisiau rhoi'r Rhedeg gwaethaf i mi? 1092 00:53:50,071 --> 00:53:50,570 Yeah. 1093 00:53:50,570 --> 00:53:51,490 >> GYNULLEIDFA: n sgwâr. 1094 00:53:51,490 --> 00:53:52,573 >> Andi Peng: Mae'n sgwâr n. 1095 00:53:52,573 --> 00:53:53,730 A pham ei fod sgwâr n? 1096 00:53:53,730 --> 00:53:57,562 >> GYNULLEIDFA: Oherwydd yn trefn cefn, mae gennych 1097 00:53:57,562 --> 00:54:02,619 i fynd drwy gyfnodau n n, sy'n yw-- 1098 00:54:02,619 --> 00:54:03,660 Andi Peng: Yeah, yn union. 1099 00:54:03,660 --> 00:54:06,610 Felly un peth ag yn y math swigen. 1100 00:54:06,610 --> 00:54:08,720 Os yw rhestr hon yn mewn trefn ddisgynnol, rydych yn 1101 00:54:08,720 --> 00:54:11,240 mynd i gael i wirio unwaith gyntaf. 1102 00:54:11,240 --> 00:54:13,470 Ac yna gyda phob gwerth ychwanegol, rydych yn 1103 00:54:13,470 --> 00:54:16,390 mynd i gael ei wirio yn erbyn pob un gwerth, dde? 1104 00:54:16,390 --> 00:54:20,290 Ac felly yn gyfan gwbl, rydych chi'n mynd i wneud mae amseroedd pasio n arall n pasio, a oedd yn 1105 00:54:20,290 --> 00:54:21,750 wedi'i sgwâr n. 1106 00:54:21,750 --> 00:54:22,860 Beth am yr achos gorau? 1107 00:54:22,860 --> 00:54:24,360 Yeah. 1108 00:54:24,360 --> 00:54:28,840 >> GYNULLEIDFA: n minws 1, oherwydd bod y un cyntaf eisoes yn sgwâr. 1109 00:54:28,840 --> 00:54:30,270 >> Andi Peng: Felly, yn agos. 1110 00:54:30,270 --> 00:54:31,850 Yr ateb ydy 'n weithredol n. 1111 00:54:31,850 --> 00:54:37,189 Oherwydd tra bod yr un cyntaf yn didoli, efallai na fydd actually-- ei 1112 00:54:37,189 --> 00:54:38,980 rydym yn unig lucked allan, yn hynny enghraifft, bod 2 1113 00:54:38,980 --> 00:54:40,930 digwydd bod y nifer lleiaf. 1114 00:54:40,930 --> 00:54:43,680 Ond ni fydd bob amser yn wir. 1115 00:54:43,680 --> 00:54:48,040 Os 2 eisoes yn cael ei ddidoli yn y dechrau ond yr ydych yn edrych ac mae 'na o 1 yma, 1116 00:54:48,040 --> 00:54:49,144 1 yn mynd i hwb iddo. 1117 00:54:49,144 --> 00:54:51,060 Ac mae'n mynd i ben i fyny yn cael ei wthio anyways. 1118 00:54:51,060 --> 00:54:56,250 >> Felly, yn y senario achos gorau, 'i' mewn gwirionedd yn jyst yn mynd i fod yn n. 1119 00:54:56,250 --> 00:54:59,090 Os oes gennych 1, 2, 3, 4, 5, 6, 7, 8, rydych yn 1120 00:54:59,090 --> 00:55:00,940 mynd i redeg drwy y rhestr gyfan unwaith 1121 00:55:00,940 --> 00:55:03,430 i wirio i weld a yw popeth yn iawn. 1122 00:55:03,430 --> 00:55:07,390 A yw pawb yn glir ynghylch rhedeg adegau o ddethol hefyd? 1123 00:55:07,390 --> 00:55:09,960 Rwy'n gwybod fy mod i'n mynd trwy mae'r rhain yn gyflym iawn. 1124 00:55:09,960 --> 00:55:13,330 Ond dim ond yn gwybod os ydych yn gwybod y cysyniadau cyffredinol, dylech fod yn dda. 1125 00:55:13,330 --> 00:55:16,070 IAWN. 1126 00:55:16,070 --> 00:55:19,790 Felly byddaf rhowch guys i chi efallai, fel, munud i siarad â'ch cymdogion 1127 00:55:19,790 --> 00:55:21,890 ar yr hyn yn rhai o'r prif wahaniaethau 1128 00:55:21,890 --> 00:55:23,540 rhwng y mathau hyn o ryw fath. 1129 00:55:23,540 --> 00:56:24,571 1130 00:56:24,571 --> 00:56:25,570 Byddwn yn mynd dros yn fuan. 1131 00:56:25,570 --> 00:56:26,444 GYNULLEIDFA: O, OK. 1132 00:56:26,444 --> 00:56:27,320 Andi Peng: Yeah. 1133 00:56:27,320 --> 00:56:28,380 IAWN. 1134 00:56:28,380 --> 00:56:33,420 Cool, gadewch i ailgynnull fel dosbarth. 1135 00:56:33,420 --> 00:56:34,330 IAWN. 1136 00:56:34,330 --> 00:56:37,579 Felly, mae hyn yn fath o cwestiwn penagored yn yr ystyr 1137 00:56:37,579 --> 00:56:39,120 bod yna lawer o atebion iddynt. 1138 00:56:39,120 --> 00:56:40,746 A byddwn yn mynd dros rai ohonynt yn gryno. 1139 00:56:40,746 --> 00:56:43,411 Fi jyst eisiau i fynd â chi guys meddwl am yr hyn gwahaniaethol 1140 00:56:43,411 --> 00:56:44,530 pob un o'r tri math o ryw fath. 1141 00:56:44,530 --> 00:56:47,440 Ac yr wyf yn clywed, hefyd, yn fawr question-- beth mae yn uno fath yn ei wneud? 1142 00:56:47,440 --> 00:56:50,110 Cwestiwn mawr, oherwydd dyna beth rydym yn cwmpasu nesaf. 1143 00:56:50,110 --> 00:56:52,850 >> Felly uno didoli yw'r un math sy'n swyddogaethau 1144 00:56:52,850 --> 00:56:56,100 yn wahanol iawn i'r mathau eraill. 1145 00:56:56,100 --> 00:56:58,180 Fel y gallwch guys see-- wnaeth David yn gwneud hynny demo 1146 00:56:58,180 --> 00:57:01,130 lle cafodd yr holl oer synau o weld sut uno 1147 00:57:01,130 --> 00:57:04,010 Rhedodd didoli, fel, ganmil gyflymach na'r ddau fath arall? 1148 00:57:04,010 --> 00:57:04,510 IAWN. 1149 00:57:04,510 --> 00:57:07,580 Felly mae hynny oherwydd uno didoli gweithredu y rhaniad 1150 00:57:07,580 --> 00:57:11,020 a gorchfygu cysyniad fod rydym wedi siarad am lawer yn y ddarlith. 1151 00:57:11,020 --> 00:57:14,550 Yn yr ystyr ein bod yn hoffi gweithio graffach, nid yn galetach, pan fyddwch yn rhannu 1152 00:57:14,550 --> 00:57:18,120 a gorchfygu problemau, ac yn torri nhw lawr, ac yna ei roi at ei gilydd, 1153 00:57:18,120 --> 00:57:19,930 pethau da bob amser yn digwydd. 1154 00:57:19,930 --> 00:57:21,960 >> Felly, y ffordd y mae uno didoli yn y bôn yn gweithio 1155 00:57:21,960 --> 00:57:24,660 yw ei fod yn rhannu yn amrywiaeth heb eu didoli yn ei hanner. 1156 00:57:24,660 --> 00:57:26,500 Ac yna 'i' got dau hanner arrays. 1157 00:57:26,500 --> 00:57:28,220 Ac 'i jyst yn didoli'r rheiny ddau hanner. 1158 00:57:28,220 --> 00:57:31,750 'I jyst yn cadw rhannu yn ei hanner, yn hanner, yn ei hanner hyd nes popeth yn cael ei datrys 1159 00:57:31,750 --> 00:57:33,680 ac yna recursively yn ei roi i gyd at ei gilydd. 1160 00:57:33,680 --> 00:57:36,550 >> Felly dyna wir yn haniaethol. 1161 00:57:36,550 --> 00:57:38,750 Felly, mae hyn yn unig yw ychydig o pseudocode. 1162 00:57:38,750 --> 00:57:41,040 A yw hynny'n gwneud synnwyr mewn y ffordd y mae'n rhedeg? 1163 00:57:41,040 --> 00:57:43,870 Felly, gadewch i 'jyst dweud gennych amrywiaeth o elfennau n, dde? 1164 00:57:43,870 --> 00:57:45,450 Os yw n yn llai na 2, gallwch ddychwelyd. 1165 00:57:45,450 --> 00:57:49,040 Oherwydd eich bod yn gwybod, os oes dim ond un peth, mae'n rhaid ei datrys. 1166 00:57:49,040 --> 00:57:52,600 Arall, i ddatrys yr hanner chwith, ac yna i ddatrys yr hanner cywir, 1167 00:57:52,600 --> 00:57:54,140 ac yna rydych uno. 1168 00:57:54,140 --> 00:57:56,979 >> Felly, er bod yn edrych yn hawdd iawn, mewn gwirionedd, yn meddwl am ei fod yn 1169 00:57:56,979 --> 00:58:00,270 math o anodd. Am eich bod yn hoffi, yn dda, mae hynny'n fath o rhedeg ar ei hun. 1170 00:58:00,270 --> 00:58:00,769 Iawn? 1171 00:58:00,769 --> 00:58:02,430 Mae'n rhedeg ar ei hun. 1172 00:58:02,430 --> 00:58:05,479 Felly, yn yr ystyr honno, cyffwrdd David ar dychweliad yn y dosbarth. 1173 00:58:05,479 --> 00:58:07,270 A dyna cysyniad byddwn yn siarad am fwy. 1174 00:58:07,270 --> 00:58:11,430 Mae'n bod hyn, mae'r ddwy linell yma, mewn gwirionedd dim ond y rhaglen 1175 00:58:11,430 --> 00:58:13,860 dweud iddo redeg ei hun gyda mewnbwn gwahanol. 1176 00:58:13,860 --> 00:58:17,230 Felly yn hytrach na rhedeg ei hun gyda y cyfan o'r elfennau n, 1177 00:58:17,230 --> 00:58:20,530 gallwch ei dorri i lawr i mewn i'r chwith hanner a hanner cywir 1178 00:58:20,530 --> 00:58:22,680 ac yna rhedeg eto. 1179 00:58:22,680 --> 00:58:26,050 >> Ac yna byddwn yn edrych arno ar eu golwg, am fy mod i'n ddysgwr gweledol. 1180 00:58:26,050 --> 00:58:27,270 Mae'n gweithio'n well i mi. 1181 00:58:27,270 --> 00:58:29,890 Felly, byddwn yn edrych ar enghraifft weledol yma. 1182 00:58:29,890 --> 00:58:36,237 >> Lets 'ddeud gennym amrywiaeth, chwech elfennau, 3, 5, 2, 6, 4, 1, nid yw didoli. 1183 00:58:36,237 --> 00:58:37,820 Mae pob hawl, mae llawer ar y dudalen hon. 1184 00:58:37,820 --> 00:58:43,179 Felly, os gallwch chi guys yn edrych ar y cam cyntaf yma, 3, 5, 2, 6, 4, 1, 1185 00:58:43,179 --> 00:58:44,220 gallwch ei rannu yn ei hanner. 1186 00:58:44,220 --> 00:58:45,976 Mae gennych 3, 5, 2, 6, 4, 1. 1187 00:58:45,976 --> 00:58:48,850 Rydych yn gwybod bod y rhain aren't-- chi nid ydynt yn gwybod os ydynt yn didoli neu beidio, 1188 00:58:48,850 --> 00:58:52,517 felly eich bod yn cadw torri i lawr, yn ei hanner, yn ei hanner, yn ei hanner, nes yn y pen draw, 1189 00:58:52,517 --> 00:58:53,600 Dim ond un elfen i chi. 1190 00:58:53,600 --> 00:58:56,790 Ac un elfen yn cael ei datrys bob amser, dde? 1191 00:58:56,790 --> 00:59:01,560 >> Felly, rydym yn gwybod bod 3, 5, 2, 4, 6, 1, ynddynt eu hunain, yn cael eu datrys. 1192 00:59:01,560 --> 00:59:05,870 Ac yn awr y gallwn ni eu rhoi yn ôl at ei gilydd. 1193 00:59:05,870 --> 00:59:07,510 Felly, rydym yn gwybod y 3, 5. 1194 00:59:07,510 --> 00:59:08,510 Rydym yn rhoi hynny at ei gilydd. 1195 00:59:08,510 --> 00:59:09,617 Rydym yn gwybod bod yn didoli. 1196 00:59:09,617 --> 00:59:10,450 Mae'r 2 yn dal i fod yno. 1197 00:59:10,450 --> 00:59:11,830 Gallwn roi'r 4 a 6 gyda'i gilydd. 1198 00:59:11,830 --> 00:59:13,996 Gwyddom fod hynny wedi eu didoli, felly rydym yn rhoi hynny at ei gilydd. 1199 00:59:13,996 --> 00:59:14,940 Ac mae'r 1 yno. 1200 00:59:14,940 --> 00:59:18,720 >> Ac yna 'ch jyst yn edrych ar y ddau hanner iawn yma. 1201 00:59:18,720 --> 00:59:21,300 Mae gennych y 3, 5, 2, 2, 3, 5. 1202 00:59:21,300 --> 00:59:23,465 Alli jyst gymharu'r gan ddechrau o bopeth. 1203 00:59:23,465 --> 00:59:26,340 Oherwydd eich bod yn gwybod bod hyn yn cael ei datrys a ydych yn gwybod bod hynny wedi datrys. 1204 00:59:26,340 --> 00:59:29,360 Felly peidiwch hyd yn oed yn rhaid i chi cymharu'r 5, 'ch jyst cymharu'r 3. 1205 00:59:29,360 --> 00:59:32,070 Ac mae'r 2 yn llai na 3, felly Mae'n rhaid eich bod yn gwybod 2 yn mynd yn y diwedd. 1206 00:59:32,070 --> 00:59:33,120 >> Un peth drosodd yno. 1207 00:59:33,120 --> 00:59:34,740 Mae'n rhaid i'r 1 ewch yma. 1208 00:59:34,740 --> 00:59:37,330 Ac yna pan fyddwch yn mynd i roi dau werth hynny at ei gilydd, 1209 00:59:37,330 --> 00:59:39,950 eich bod yn gwybod bod hyn yn cael ei ddidoli a'i eich bod yn gwybod bod hynny'n cael ei datrys. 1210 00:59:39,950 --> 00:59:43,240 Felly, yna y 1 a'r 2, mae'r 1 yn llai na 2. 1211 00:59:43,240 --> 00:59:45,570 Mae hynny'n dweud wrthych fod y 1 Dylai fynd ar ddiwedd y 1212 00:59:45,570 --> 00:59:47,480 heb hyd yn oed edrych ar 3 neu 5. 1213 00:59:47,480 --> 00:59:50,100 Ac yna y 4, gallwch jyst siec, mae'n mynd yn iawn yn fan hyn. 1214 00:59:50,100 --> 00:59:51,480 Nid oes rhaid i chi edrych ar y 5. 1215 00:59:51,480 --> 00:59:52,570 Yr un peth â'r 6. 1216 00:59:52,570 --> 00:59:55,860 Rydych yn gwybod bod y 6-- 'i jyst Nid oes angen gofalu. 1217 00:59:55,860 --> 00:59:57,870 >> Ac felly yn y ffordd honno, rydych yn dim ond arbed eich hun 1218 00:59:57,870 --> 00:59:59,526 llawer o gamau pan fyddwch yn cymharu. 1219 00:59:59,526 --> 01:00:02,150 Nid oes rhaid i chi gymharu pob elfen yn erbyn elfennau eraill. 1220 01:00:02,150 --> 01:00:05,230 Rydych yn unig yn cymharu yn erbyn y rhai bod angen i chi gymharu yn ei erbyn. 1221 01:00:05,230 --> 01:00:06,870 Felly dyna fath o gysyniad haniaethol. 1222 01:00:06,870 --> 01:00:10,540 Dim pryderon os nad yw'n hollol chi taro yn iawn eto. 1223 01:00:10,540 --> 01:00:14,740 Ond yn gyffredinol, mae hyn yn sut fath uno yn gweithio. 1224 01:00:14,740 --> 01:00:17,750 Cwestiynau, cwestiynau cyflym, cyn i mi symud ymlaen? 1225 01:00:17,750 --> 01:00:18,550 Yeah. 1226 01:00:18,550 --> 01:00:22,230 >> GYNULLEIDFA: Felly yr ydych wedi dweud eich bod yn cymryd y 1, ac yna y 4, ac mae'r 6 1227 01:00:22,230 --> 01:00:23,860 ac yn eu rhoi mewn. 1228 01:00:23,860 --> 01:00:26,800 Felly nid ydynt yn cael eu nid those-- ydych yn edrych arnynt 1229 01:00:26,800 --> 01:00:28,544 fel elfennau ar wahân, nid fel y cyfan? 1230 01:00:28,544 --> 01:00:29,210 Andi Peng: Yeah. 1231 01:00:29,210 --> 01:00:32,020 Felly, beth sy'n digwydd yw eich bod yn y bôn 1232 01:00:32,020 --> 01:00:33,650 yn creu amrywiaeth newydd sbon. 1233 01:00:33,650 --> 01:00:36,690 Felly rydych yn gwybod bod, yma, yr wyf wedi ddau arae o faint 3, dde? 1234 01:00:36,690 --> 01:00:39,600 Felly, rydych yn gwybod bod fy array ddidoli Mae angen i gael chwe elfen. 1235 01:00:39,600 --> 01:00:42,270 Felly rydych yn unig yn creu swm newydd o gof. 1236 01:00:42,270 --> 01:00:44,270 Felly rydych yn fath o fel bod yn wastraffus o gof, 1237 01:00:44,270 --> 01:00:46,186 ond nid yw hynny'n fater am ei fod mor fach. 1238 01:00:46,186 --> 01:00:48,590 Felly, rydych yn edrych ar y 1 ac edrych ar y 2. 1239 01:00:48,590 --> 01:00:50,770 A ydych yn gwybod bod y 1 yn llai na 2. 1240 01:00:50,770 --> 01:00:53,840 Felly, rydych yn gwybod y dylai 1 fynd i mewn ddechrau pob un o'r rheini. 1241 01:00:53,840 --> 01:00:55,850 >> Nid oes angen i chi hyd yn oed yn edrych ar y 3 a'r 5. 1242 01:00:55,850 --> 01:00:57,400 Felly, rydych yn gwybod 1 yn mynd yno. 1243 01:00:57,400 --> 01:00:59,300 Yna byddwch yn y bôn torri oddi ar y 1. 1244 01:00:59,300 --> 01:01:00,370 Mae'n, fel, yn farw i ni. 1245 01:01:00,370 --> 01:01:03,690 Yna, rydym yn unig yn cael 2, 3, 5, ac yna 4 a 6. 1246 01:01:03,690 --> 01:01:06,270 Ac yna rydych yn gwybod hynny, yr ydych cymharu'r 4 a'r 2, 1247 01:01:06,270 --> 01:01:07,560 oh, dylai'r 2 yn mynd i mewn 'na. 1248 01:01:07,560 --> 01:01:09,685 Felly rydych sw n plopian y 2 lawr, byddwch yn torri 'i off. 1249 01:01:09,685 --> 01:01:12,060 Felly, yna 'ch jyst yn cael y 3 a'r 5 yn y 4 a 6. 1250 01:01:12,060 --> 01:01:14,650 A ydych yn jyst cadw torri i ffwrdd hyd nes y byddwch yn eu rhoi yn y rhesi. 1251 01:01:14,650 --> 01:01:17,110 >> GYNULLEIDFA: Felly rydych yn unig bob amser cymharu'r [Anghlywadwy]? 1252 01:01:17,110 --> 01:01:17,710 >> Andi Peng: Yn union. 1253 01:01:17,710 --> 01:01:19,590 Felly, yn yr ystyr honno, rydych yn dim ond cymharu, yn y bôn, 1254 01:01:19,590 --> 01:01:21,240 un rhif yn erbyn y rhif arall. 1255 01:01:21,240 --> 01:01:22,990 Ac oherwydd eich bod yn gwybod ei fod yn didoli, yr ydych 1256 01:01:22,990 --> 01:01:24,350 Nid oes rhaid i edrych drwy pob un o'r rhifau. 1257 01:01:24,350 --> 01:01:25,870 Mae'n rhaid i chi edrych ar yr un cyntaf. 1258 01:01:25,870 --> 01:01:27,582 Ac yna gallwch sw n plopian i lawr, oherwydd eich bod yn gwybod 1259 01:01:27,582 --> 01:01:29,640 maent yn perthyn ble mae angen i berthyn. 1260 01:01:29,640 --> 01:01:31,030 Yeah. 1261 01:01:31,030 --> 01:01:32,920 Cwestiwn da. 1262 01:01:32,920 --> 01:01:35,290 >> Ac yna, os unrhyw un ohonoch yn ychydig yn uchelgeisiol, 1263 01:01:35,290 --> 01:01:38,660 mae croeso i edrych ar y cod hwn. 1264 01:01:38,660 --> 01:01:40,680 Mae hyn mewn gwirionedd y gweithredu corfforol 1265 01:01:40,680 --> 01:01:42,150 o sut y byddem yn ysgrifennu fath uno. 1266 01:01:42,150 --> 01:01:44,070 A gallwch weld, mae'n byr iawn. 1267 01:01:44,070 --> 01:01:46,310 Ond mae'r syniadau y tu ôl mae'n yn eithaf cymhleth. 1268 01:01:46,310 --> 01:01:50,865 Felly, os ydych yn teimlo fel tynnu hyn allan yn eich gwaith cartref heno, mae croeso i. 1269 01:01:50,865 --> 01:01:54,050 1270 01:01:54,050 --> 01:01:54,740 >> IAWN. 1271 01:01:54,740 --> 01:01:58,070 Felly hefyd Dafydd a aeth hyn yn y ddarlith. 1272 01:01:58,070 --> 01:02:00,660 Beth yw'r achos gorau runtimes, runtimes achos gwaethaf, 1273 01:02:00,660 --> 01:02:05,680 ac mae'r runtimes a ddisgwylir o'r math uno? 1274 01:02:05,680 --> 01:02:07,260 Mae eiliadau cwpl i feddwl. 1275 01:02:07,260 --> 01:02:11,198 Mae hyn yn eithaf caled, ond yn fath o 'n athrylithgar os ydych yn meddwl am y peth. 1276 01:02:11,198 --> 01:02:20,090 1277 01:02:20,090 --> 01:02:23,054 Iawn. 1278 01:02:23,054 --> 01:02:25,269 >> GYNULLEIDFA: A yw'r log n gwaethaf achos n? 1279 01:02:25,269 --> 01:02:26,060 Andi Peng: Yn union. 1280 01:02:26,060 --> 01:02:29,380 A pham ei fod n log n. 1281 01:02:29,380 --> 01:02:32,230 >> GYNULLEIDFA: Onid yw'n oherwydd ei fod yn yn dod yn gynt a chynt yn gyflymach, 1282 01:02:32,230 --> 01:02:35,390 felly mae fel swyddogaeth o hynny hytrach na dim ond dim ond bod yn n 1283 01:02:35,390 --> 01:02:37,529 sgwâr neu rywbeth? 1284 01:02:37,529 --> 01:02:38,320 Andi Peng: Yn union. 1285 01:02:38,320 --> 01:02:40,750 Felly y rheswm pam fod y Rhedeg ar hyn yw n log 1286 01:02:40,750 --> 01:02:44,310 n yn because-- beth ydych chi ei wneud ym mhob un o'r camau hyn? 1287 01:02:44,310 --> 01:02:46,190 Ydych ond yn torri yn ei hanner, dde? 1288 01:02:46,190 --> 01:02:48,750 Ac felly pan rydym yn ei wneud y log, y cyfan y mae'n ei wneud 1289 01:02:48,750 --> 01:02:53,150 yn rhannu problem yn ei hanner, yn ei hanner, yn ei hanner, mewn mwy o haneri. 1290 01:02:53,150 --> 01:02:56,430 Ac yn yr ystyr hwnnw, gallwch garedig o gael gwared ar y model llinol 1291 01:02:56,430 --> 01:02:57,510 ein bod wedi bod yn defnyddio. 1292 01:02:57,510 --> 01:03:00,254 Oherwydd pan fyddwch dorri pethau yn ei hanner, mae'n log. 1293 01:03:00,254 --> 01:03:02,420 Dyna dim ond y fathemategol ffordd o gynrychioli arno. 1294 01:03:02,420 --> 01:03:06,310 >> Ac yna yn olaf, ar y diwedd, rydych yn dim ond gwneud un tocyn olaf drwy 1295 01:03:06,310 --> 01:03:07,930 i roi pob un ohonynt yn eu trefn, dde? 1296 01:03:07,930 --> 01:03:10,330 Ac felly os oes gen i chi gwiriwch un peth, mae hynny'n n. 1297 01:03:10,330 --> 01:03:13,420 Ac felly eich bod yn fath o lluosi'r ddau gyda'i gilydd. 1298 01:03:13,420 --> 01:03:17,660 Felly mae fel bod gennych y rownd derfynol wirio am n lawr yma gyda log o n 1299 01:03:17,660 --> 01:03:18,390 i fyny fan hyn. 1300 01:03:18,390 --> 01:03:21,060 Ac os ydych yn lluosi wrthynt, hynny n ei logio n. 1301 01:03:21,060 --> 01:03:26,100 >> Ac felly yr achos gorau a gwaethaf achos a ddisgwylir i gyd n log n. 1302 01:03:26,100 --> 01:03:27,943 Mae'n hefyd yn hoffi fath arall. 1303 01:03:27,943 --> 01:03:30,090 Mae fel math dethol yn yr ystyr ei fod 1304 01:03:30,090 --> 01:03:32,131 nid oes gwahaniaeth beth yw eich rhestr yn, dim ond ei fod yn mynd 1305 01:03:32,131 --> 01:03:34,801 i wneud yr un peth bob tro. 1306 01:03:34,801 --> 01:03:35,300 IAWN. 1307 01:03:35,300 --> 01:03:39,950 Felly, fel y gallwch weld guys, er bod y mathau yr ydym wedi mynd through-- n 1308 01:03:39,950 --> 01:03:41,660 sgwâr, nid yw'n effeithlon iawn. 1309 01:03:41,660 --> 01:03:47,060 A hyd yn oed y n log n yn nid oedd y mwyaf effeithlon. 1310 01:03:47,060 --> 01:03:49,720 Os ydych guys yn chwilfrydig, mae mecanweithiau didoli 1311 01:03:49,720 --> 01:03:54,310 sydd mor effeithlon sy'n eu bod yn bron yn wastad yn ei hanfod yn Rhedeg. 1312 01:03:54,310 --> 01:03:55,420 >> Rydych chi wedi cael rhai log n ei. 1313 01:03:55,420 --> 01:03:58,190 Rydych chi wedi cael rhai log n ei log. 1314 01:03:58,190 --> 01:04:00,330 Nid ydym yn cyffwrdd arnynt yn y dosbarth hwn ar hyn o bryd. 1315 01:04:00,330 --> 01:04:02,663 Ond os ydych guys yn chwilfrydig, croeso i google, beth sydd 1316 01:04:02,663 --> 01:04:04,392 mecanweithiau didoli mwyaf effeithlon. 1317 01:04:04,392 --> 01:04:06,350 Nid wyf yn gwybod, mae yna rhai rhai 'n sylweddol ddoniol, 1318 01:04:06,350 --> 01:04:09,860 like-- mae rhywfaint 'n sylweddol rhai doniol y mae pobl yn ei wneud. 1319 01:04:09,860 --> 01:04:12,210 A ydych yn meddwl tybed sut y maent yn erioed wedi meddwl am hynny. 1320 01:04:12,210 --> 01:04:15,730 Felly google, os oes gennych rywfaint dros ben amser, ar, pa rai ffyrdd ddoniol 1321 01:04:15,730 --> 01:04:17,730 hynny people-- yn ogystal â pobl ways-- effeithlon 1322 01:04:17,730 --> 01:04:20,371 wedi gallu i weithredu math. 1323 01:04:20,371 --> 01:04:20,870 IAWN. 1324 01:04:20,870 --> 01:04:22,880 A dyma dim ond siart bach handi. 1325 01:04:22,880 --> 01:04:26,850 Yr wyf yn gwybod bob un ohonoch, cyn y cwis 0, Bydd yn eich ystafell yn ceisio yn ôl pob tebyg 1326 01:04:26,850 --> 01:04:27,960 i gofio hynny. 1327 01:04:27,960 --> 01:04:30,940 Felly dyna braf yn yno i chi guys. 1328 01:04:30,940 --> 01:04:37,120 Nid yn unig yn anghofio'r rhesymeg sy'n made-- pam y niferoedd hynny yn digwydd. 1329 01:04:37,120 --> 01:04:39,870 Os ydych yn colli bob tro, dim ond gwneud yn siŵr eich bod yn gwybod beth yw'r mathau yn cael eu. 1330 01:04:39,870 --> 01:04:40,820 A allwch chi redeg trwy'r nhw yn eich meddwl 1331 01:04:40,820 --> 01:04:42,903 at chyfrif i maes pam y rhai atebion yr atebion hynny. 1332 01:04:42,903 --> 01:04:46,250 1333 01:04:46,250 --> 01:04:47,600 >> Iawn. 1334 01:04:47,600 --> 01:04:49,680 Felly rydym yn mynd i symud ar, yn olaf, i chwilio. 1335 01:04:49,680 --> 01:04:51,638 Oherwydd fel y rhai ohonoch sydd wedi darllen y pset, 1336 01:04:51,638 --> 01:04:55,175 chwilio hefyd yn rhan o problem yr wythnos hon yn gosod. 1337 01:04:55,175 --> 01:04:57,300 Gofynnir i chi i weithredu dau fath o chwiliadau. 1338 01:04:57,300 --> 01:05:00,070 Mae un yn chwiliad llinol a mae un yn chwilio deuaidd. 1339 01:05:00,070 --> 01:05:01,760 >> Felly mae'r chwiliad llinol yn weddol hawdd. 1340 01:05:01,760 --> 01:05:04,070 Rydych yn unig am ei chwilio elfen o restr i weld a ydych yn ei gael. 1341 01:05:04,070 --> 01:05:05,444 Mae'n rhaid i chi ailadrodd drwy'r. 1342 01:05:05,444 --> 01:05:08,170 Ac os bydd yn hafal rhywbeth, gallwch ei ddychwelyd, dde? 1343 01:05:08,170 --> 01:05:10,890 Ond mae'r un yr ydym yn fwyaf diddordeb mewn siarad am 1344 01:05:10,890 --> 01:05:14,550 yn chwilio deuaidd, ar y dde, sef y rhannu a gorchfygu mecanwaith sy'n 1345 01:05:14,550 --> 01:05:18,190 David yn dangos mewn darlith. 1346 01:05:18,190 --> 01:05:20,810 >> Cofiwch yr enghraifft llyfr ffôn ei fod yn cadw magu, 1347 01:05:20,810 --> 01:05:23,960 yr un ei fod yn fath o trafferth ychydig ar y flwyddyn a aeth heibio, 1348 01:05:23,960 --> 01:05:27,530 lle rydych yn rhannu'r broblem yn ei hanner, yn ei hanner, yn ei hanner, dro ar ôl tro, 1349 01:05:27,530 --> 01:05:30,730 nes i chi o hyd i'r hyn rydych yn chwilio amdano? 1350 01:05:30,730 --> 01:05:33,727 A ydych wedi cael y Rhedeg o hynny hefyd. 1351 01:05:33,727 --> 01:05:35,810 A gallwch weld, 'i' llawer mwy effeithlon 1352 01:05:35,810 --> 01:05:39,080 nag unrhyw fath arall o chwilio. 1353 01:05:39,080 --> 01:05:41,880 >> Felly, y ffordd y byddem yn mynd ati i gweithredu chwiliad deuaidd 1354 01:05:41,880 --> 01:05:46,510 yw, os oedd gennym amrywiaeth, Mynegai 0-6, saith elfen, 1355 01:05:46,510 --> 01:05:49,790 gallwn edrych yn y canol, right-- ddrwg gennym, os yw ein cwestiwn first-- 1356 01:05:49,790 --> 01:05:53,840 os ydym am ofyn y cwestiwn o, mae yr amrywiaeth yn cynnwys yr elfen o 7, 1357 01:05:53,840 --> 01:05:56,840 yn amlwg, sef pobl, a chael fath amrywiaeth fach, mae'n hawdd i ni 1358 01:05:56,840 --> 01:05:58,210 i ddweud ie. 1359 01:05:58,210 --> 01:06:05,750 Ond y ffordd i weithredu deuaidd Byddai chwilio fydd edrych yn y canol. 1360 01:06:05,750 --> 01:06:08,020 >> Rydym yn gwybod bod mynegai 3 yw y canol, oherwydd ein 1361 01:06:08,020 --> 01:06:09,270 gwybod bod saith elfen. 1362 01:06:09,270 --> 01:06:10,670 Pa 7 wedi'i rannu â 2? 1363 01:06:10,670 --> 01:06:12,850 Gallwch dorri i ffwrdd y ychwanegol 1. 1364 01:06:12,850 --> 01:06:14,850 Rydych chi wedi got 3 yn y canol. 1365 01:06:14,850 --> 01:06:17,590 Felly, mae amrywiaeth o 3 hafal i 7? 1366 01:06:17,590 --> 01:06:18,900 Nid yw'n, dde? 1367 01:06:18,900 --> 01:06:21,050 Ond gallwn wneud un neu ddau o sieciau. 1368 01:06:21,050 --> 01:06:25,380 A yw amrywiaeth o 3 yn llai na 7 neu yn amrywiaeth o 3 yn fwy na 7? 1369 01:06:25,380 --> 01:06:27,240 >> Ac rydym yn gwybod ei fod yn llai na 7. 1370 01:06:27,240 --> 01:06:30,259 Felly, rydym yn gwybod bod, oh, rhaid iddo beidio â bod yn hanner chwith. 1371 01:06:30,259 --> 01:06:32,300 Rydym yn gwybod bod yn rhaid iddo fod yn yn yr hanner cywir, dde? 1372 01:06:32,300 --> 01:06:34,662 Felly gallwn jyst torri off hanner y rhesi. 1373 01:06:34,662 --> 01:06:36,370 Nid oes hyd yn oed yn rhaid i Rydym yn edrych arno anymore. 1374 01:06:36,370 --> 01:06:38,711 Oherwydd gwyddom fod hanner ein problem-- 1375 01:06:38,711 --> 01:06:41,210 rydym yn gwybod bod yr ateb yn hanner hawl ein problem. 1376 01:06:41,210 --> 01:06:42,580 Felly rydym yn unig yn edrych ar hynny yn awr. 1377 01:06:42,580 --> 01:06:44,860 >> Felly, nawr rydym yn edrych ar y canol hyn sydd ar ôl. 1378 01:06:44,860 --> 01:06:46,880 Mae hynny'n mynegai 5. 1379 01:06:46,880 --> 01:06:50,200 Rydym yn gwneud yr un siec eto ac rydym yn gweld ei fod yn llai o faint. 1380 01:06:50,200 --> 01:06:52,050 Felly, rydym yn edrych ar y chwith o hynny. 1381 01:06:52,050 --> 01:06:53,430 Ac yna rydym yn gweld bod siec. 1382 01:06:53,430 --> 01:06:57,600 Yw gwerth amrywiaeth yn Mynegai 4 hafal i 7? 1383 01:06:57,600 --> 01:06:58,260 Mae'n. 1384 01:06:58,260 --> 01:07:03,580 Er mwyn i ni ddychwelyd wir, oherwydd rydym yn dod o hyd i'r gwerth yn ein rhestr. 1385 01:07:03,580 --> 01:07:06,738 A yw'r ffordd Es i drwy hynny'n gwneud synnwyr i bawb? 1386 01:07:06,738 --> 01:07:08,760 IAWN. 1387 01:07:08,760 --> 01:07:11,670 Byddaf yn rhoi i chi guys efallai, fel, tri, pedwar munud i chyfrif i maes 1388 01:07:11,670 --> 01:07:13,270 sut i pseudocode hyn yn. 1389 01:07:13,270 --> 01:07:18,070 >> Felly dychmygwch yr wyf yn gofyn i chi ysgrifennu swyddogaeth a elwir yn chwilio () a ddychwelodd 1390 01:07:18,070 --> 01:07:20,640 gwerth, mae gwerth Boole, a oedd yn wir neu'n false-- fel, 1391 01:07:20,640 --> 01:07:22,970 wir os ydych dod o hyd i'r gwerth, ffug os na wnaethoch. 1392 01:07:22,970 --> 01:07:25,230 Ac yna oeddech yn basiwyd yn y gwerth i chi 1393 01:07:25,230 --> 01:07:28,410 yn chwilio am mewn i werthoedd, sy'n yw'r array-- oh, yr wyf yn bendant yn rhoi 1394 01:07:28,410 --> 01:07:29,410 bod yn y lle anghywir. 1395 01:07:29,410 --> 01:07:29,580 IAWN. 1396 01:07:29,580 --> 01:07:31,829 Anyways, dylai hynny gael bod ar y dde o'r gwerthoedd. 1397 01:07:31,829 --> 01:07:36,280 Ac yna int n yw nifer o elfennau yn y rhesi. 1398 01:07:36,280 --> 01:07:39,430 Sut fyddech chi'n mynd ati i geisio i pseudocode y broblem honno yn? 1399 01:07:39,430 --> 01:07:41,630 'N annhymerus' yn rhoi guys fel chi tri munud i wneud hynny. 1400 01:07:41,630 --> 01:08:00,137 1401 01:08:00,137 --> 01:08:02,595 Na, yr wyf yn meddwl bod yna only-- yeah, mae un cywir i fyny yma. 1402 01:08:02,595 --> 01:08:03,261 GYNULLEIDFA: A all i? 1403 01:08:03,261 --> 01:08:04,388 Andi Peng: Yeah, yr wyf yn got chi. 1404 01:08:04,388 --> 01:08:09,410 1405 01:08:09,410 --> 01:08:11,050 A yw hynny'n gweithio? 1406 01:08:11,050 --> 01:08:12,290 OK, oer. 1407 01:08:12,290 --> 01:10:43,590 1408 01:10:43,590 --> 01:10:44,720 >> IAWN. 1409 01:10:44,720 --> 01:10:47,630 Mae pob guys iawn, rydym yn mynd i ffrwyn i mewn. 1410 01:10:47,630 --> 01:10:49,730 IAWN. 1411 01:10:49,730 --> 01:10:54,020 Felly, yn cymryd yn ganiataol ein bod wedi cael hyn hyfryd ychydig iawn o amrywiaeth gyda gwerthoedd n ynddo. 1412 01:10:54,020 --> 01:10:55,170 Doeddwn i ddim yn tynnu y llinellau. 1413 01:10:55,170 --> 01:10:58,649 Ond sut y byddem yn mynd ati i ceisio ysgrifennu hyn? 1414 01:10:58,649 --> 01:11:00,440 A oes unrhyw un eisiau rhoi'r llinell gyntaf i mi? 1415 01:11:00,440 --> 01:11:02,814 Os ydych am roi 'm' r llinell gyntaf pseudocode hwn. 1416 01:11:02,814 --> 01:11:06,563 1417 01:11:06,563 --> 01:11:08,430 >> GYNULLEIDFA: [Anghlywadwy] 1418 01:11:08,430 --> 01:11:10,138 GYNULLEIDFA: Byddech eisiau i ailadrodd through-- 1419 01:11:10,138 --> 01:11:11,094 GYNULLEIDFA: Dim ond un arall ar gyfer dolen? 1420 01:11:11,094 --> 01:11:11,760 GYNULLEIDFA: --for. 1421 01:11:11,760 --> 01:11:15,880 1422 01:11:15,880 --> 01:11:17,780 >> Andi Peng: Felly yr un yma yn ychydig yn anodd. 1423 01:11:17,780 --> 01:11:23,130 Meddyliwch about-- ydych eisiau i gadw redeg dolen hwn 1424 01:11:23,130 --> 01:11:27,950 dro ar ôl tro hyd nes y pryd? 1425 01:11:27,950 --> 01:11:30,819 >> GYNULLEIDFA: Hyd nes y [Anghlywadwy] gwerth yn hafal i'r gwerth. 1426 01:11:30,819 --> 01:11:31,610 Andi Peng: Yn union. 1427 01:11:31,610 --> 01:11:33,900 Felly, gallwch chi mewn gwirionedd yn unig write-- gallwn hyd yn oed symleiddio yn fwy. 1428 01:11:33,900 --> 01:11:35,630 Allwn wneud dolen tra, dde? 1429 01:11:35,630 --> 01:11:39,380 Felly, gallwch gael loop-- rydym yn gwybod ei fod yn tra. 1430 01:11:39,380 --> 01:11:42,850 Ond am ar hyn o bryd, dw i'n mynd i ddweud "dolen" - drwy'r hyn? 1431 01:11:42,850 --> 01:11:46,640 Loop until-- beth yw ein cyflwr yn dod i ben? 1432 01:11:46,640 --> 01:11:47,510 Rwy'n credu fy mod wedi clywed amdano. 1433 01:11:47,510 --> 01:11:48,530 Clywais rywun yn dweud ei fod. 1434 01:11:48,530 --> 01:11:51,255 >> GYNULLEIDFA: Gwerthoedd hafal canol. 1435 01:11:51,255 --> 01:11:52,255 Andi Peng: Dywedwch eto. 1436 01:11:52,255 --> 01:11:54,470 GYNULLEIDFA: Neu, hyd nes y gwerth ydych yn chwilio 1437 01:11:54,470 --> 01:11:58,470 i yn hafal i'r gwerth canol. 1438 01:11:58,470 --> 01:12:00,280 >> Andi Peng: Beth os nad yw'n mewn 'na? 1439 01:12:00,280 --> 01:12:03,113 Beth os yw gwerth yr ydych yn chwilio am beidio mewn gwirionedd yn y arae hwn? 1440 01:12:03,113 --> 01:12:05,890 GYNULLEIDFA: Yr ydych yn dychwelyd 1. 1441 01:12:05,890 --> 01:12:08,850 >> Andi Peng: Ond beth ydyn ni eisiau ei dolen tan os oes gennym cyflwr? 1442 01:12:08,850 --> 01:12:09,350 Yeah. 1443 01:12:09,350 --> 01:12:11,239 >> GYNULLEIDFA: Hyd nes dim ond un gwerth? 1444 01:12:11,239 --> 01:12:13,530 Andi Peng: Gallwch dolen until-- felly eich bod yn gwybod eich bod yn 1445 01:12:13,530 --> 01:12:15,714 mynd i gael gwerth max, dde? 1446 01:12:15,714 --> 01:12:18,130 A ydych yn gwybod eich bod yn mynd i gael gwerth min, dde? 1447 01:12:18,130 --> 01:12:20,379 Oherwydd hefyd, dyna rhywbeth Wedi anghofio dweud o'r blaen, 1448 01:12:20,379 --> 01:12:22,640 bod rhywbeth sy'n feirniadol am chwiliad deuaidd 1449 01:12:22,640 --> 01:12:24,182 yw bod eich arae eisoes yn cael ei datrys. 1450 01:12:24,182 --> 01:12:26,973 Oherwydd does dim ffordd o wneud hyn os ydynt yn werthoedd yn unig ar hap. 1451 01:12:26,973 --> 01:12:29,190 Nid ydych yn gwybod os oes un yn fwy na'r llall, dde? 1452 01:12:29,190 --> 01:12:32,720 >> Felly, rydych yn gwybod bod eich max a eich munud yma, dde? 1453 01:12:32,720 --> 01:12:35,590 Os ydych yn mynd i gael ei addasu eich max yn eich munud a'r mid-- 1454 01:12:35,590 --> 01:12:38,470 gadewch i ni jyst cymryd yn ganiataol eich canol gwerth yn gywir Yma-- 1455 01:12:38,470 --> 01:12:43,910 ydych yn mynd i yn y bôn dolen nes bydd eich lleiaf yw 1456 01:12:43,910 --> 01:12:47,510 am yr un fath â'ch max, i'r dde, neu os nad yw eich max yn yr un fath â'ch min. 1457 01:12:47,510 --> 01:12:48,040 Iawn? 1458 01:12:48,040 --> 01:12:51,340 Oherwydd pan fydd hynny'n digwydd, byddwch yn gwybod bod eich bod yn y pen draw wedi taro un gwerth. 1459 01:12:51,340 --> 01:12:59,135 Felly rydych chi am dolen nes bydd eich min yn llai na neu'n hafal canlynol-- wps, 1460 01:12:59,135 --> 01:13:01,510 heb fod yn llai na neu'n hafal i, y ffordd arall around-- max yw. 1461 01:13:01,510 --> 01:13:15,110 1462 01:13:15,110 --> 01:13:16,160 >> Oedd yn gwneud synnwyr? 1463 01:13:16,160 --> 01:13:18,810 Cymerais ychydig o geisiau i gael hynny'n iawn. 1464 01:13:18,810 --> 01:13:21,869 Ond mae dolen nes bydd eich gwerth max yn ei hanfod bron llai 1465 01:13:21,869 --> 01:13:23,410 na neu'n hafal i eich lleiaf, dde? 1466 01:13:23,410 --> 01:13:25,201 Dyna pan fyddwch yn gwybod eich bod wedi cydgyfeirio. 1467 01:13:25,201 --> 01:13:29,290 GYNULLEIDFA: Pryd y byddai eich uchafswm werth fod yn llai na'r isafswm? 1468 01:13:29,290 --> 01:13:31,040 Andi Peng: Os ydych yn cadw addasu iddo, a oedd yn 1469 01:13:31,040 --> 01:13:32,380 beth yr ydym yn mynd i fod yn ei wneud yn hyn. 1470 01:13:32,380 --> 01:13:33,460 A yw hynny'n gwneud synnwyr? 1471 01:13:33,460 --> 01:13:35,750 Isafswm a max yn unig gyfanrifau ein bod yn ôl pob tebyg 1472 01:13:35,750 --> 01:13:39,260 mynd i eisiau creu gadw golwg ar ble rydym yn edrych. 1473 01:13:39,260 --> 01:13:41,790 Oherwydd bod y casgliad yn bodoli waeth beth yw hyn yr ydym yn ei wneud. 1474 01:13:41,790 --> 01:13:45,030 Fel, nid ydym yn mewn gwirionedd yn gorfforol torri oddi ar y array, dde? 1475 01:13:45,030 --> 01:13:47,261 Rydym yn unig addasu lle rydym yn edrych. 1476 01:13:47,261 --> 01:13:48,136 A yw hynny'n gwneud synnwyr? 1477 01:13:48,136 --> 01:13:48,472 >> GYNULLEIDFA: Yeah. 1478 01:13:48,472 --> 01:13:49,110 >> Andi Peng: OK. 1479 01:13:49,110 --> 01:13:57,090 Felly os dyna y cyflwr ar gyfer ein dolen, beth ydyn ni eisiau tu mewn dolen hwn? 1480 01:13:57,090 --> 01:13:58,700 Beth ydym yn mynd i fod eisiau ei wneud? 1481 01:13:58,700 --> 01:14:02,390 Felly ar hyn o bryd, mae gennym max a min, ar y dde, 1482 01:14:02,390 --> 01:14:04,962 Mae'n debyg ei greu i fyny yma yn rhywle. 1483 01:14:04,962 --> 01:14:07,170 Rydym yn mynd yn ôl pob tebyg i fod eisiau i ddod o hyd canol, dde? 1484 01:14:07,170 --> 01:14:08,450 Sut ydym yn mynd i fod yn gallu dod o hyd y canol? 1485 01:14:08,450 --> 01:14:09,491 Beth yw'r mathematical-- 1486 01:14:09,491 --> 01:14:11,079 GYNULLEIDFA: Max yn ogystal â min wedi'i rannu â 2. 1487 01:14:11,079 --> 01:14:11,870 Andi Peng: Yn union. 1488 01:14:11,870 --> 01:14:20,300 1489 01:14:20,300 --> 01:14:21,620 A yw hynny'n gwneud synnwyr? 1490 01:14:21,620 --> 01:14:25,780 Ac a ydych yn guys yn gweld pam ein Nid oedd dim ond use-- pam ein bod yn gwneud hyn 1491 01:14:25,780 --> 01:14:27,850 yn hytrach na gwneud dim ond n rhannu â 2? 1492 01:14:27,850 --> 01:14:30,310 Mae'n oherwydd n yn werth mae hynny'n mynd i aros yr un fath. 1493 01:14:30,310 --> 01:14:30,979 Iawn? 1494 01:14:30,979 --> 01:14:34,020 Ond wrth i ni addasu ein isafswm ac gwerthoedd y mwyaf, maent yn mynd i newid. 1495 01:14:34,020 --> 01:14:36,040 Ac o ganlyniad, mae ein canol yn mynd i newid hefyd. 1496 01:14:36,040 --> 01:14:37,873 Felly dyna pam yr ydym am i wneud hyn yn iawn yma. 1497 01:14:37,873 --> 01:14:38,510 IAWN. 1498 01:14:38,510 --> 01:14:41,600 >> Ac yna, nawr bod rydym wedi dod o hyd our-- yeah. 1499 01:14:41,600 --> 01:14:44,270 >> GYNULLEIDFA: Dim ond question-- cyflym pan fyddwch yn dweud min a max, 1500 01:14:44,270 --> 01:14:46,410 yr ydym yn tybio bod mae eisoes wedi datrys? 1501 01:14:46,410 --> 01:14:48,400 >> Andi Peng: Yeah, dyna mewn gwirionedd yn rhagamod ar gyfer chwiliad deuaidd, 1502 01:14:48,400 --> 01:14:49,816 eich bod yn rhaid i gwybod ei fod yn datrys. 1503 01:14:49,816 --> 01:14:53,660 Pa un yw pam didoli, byddwch yn ysgrifennu yn eich problem a osodwyd cyn eich chwiliad deuaidd. 1504 01:14:53,660 --> 01:14:55,910 IAWN. 1505 01:14:55,910 --> 01:14:58,876 Felly nawr ein bod yn gwybod ble mae ein pwynt canol yw, beth ydych chi eisiau ei wneud yma? 1506 01:14:58,876 --> 01:15:01,789 1507 01:15:01,789 --> 01:15:04,319 >> GYNULLEIDFA: Rydym am i gymharu hynny i'r un arall. 1508 01:15:04,319 --> 01:15:05,110 Andi Peng: Yn union. 1509 01:15:05,110 --> 01:15:12,280 Felly, rydych chi'n mynd i gymharu canol i werth, dde? 1510 01:15:12,280 --> 01:15:14,900 1511 01:15:14,900 --> 01:15:18,670 A beth mae hynny'n ei ddweud ni pan rydym yn cymharu? 1512 01:15:18,670 --> 01:15:22,226 Beth ydym ni am ei wneud wedyn? 1513 01:15:22,226 --> 01:15:25,389 >> GYNULLEIDFA: Os yw'r gwerth yn fwy na'r canolbarth, rydym am i dorri i ffwrdd. 1514 01:15:25,389 --> 01:15:26,180 Andi Peng: Yn union. 1515 01:15:26,180 --> 01:15:33,940 Felly, os yw'r gwerth yn fwy na'r canolbarth, rydym yn 1516 01:15:33,940 --> 01:15:36,550 mynd i eisiau i newid y rhain isafswm ac maxes, dde? 1517 01:15:36,550 --> 01:15:38,980 Beth ydym ni am ei newid? 1518 01:15:38,980 --> 01:15:42,145 Felly, os ydym yn gwybod gwerth yn rhywle mewn yma, yr hyn yr ydych yn ei wneud i ni ei newid? 1519 01:15:42,145 --> 01:15:44,758 Rydym yn awyddus i newid ein lleiaf i fod yn ganol, dde? 1520 01:15:44,758 --> 01:15:49,420 1521 01:15:49,420 --> 01:15:54,292 Ac yna arall, os yw'n yn hyn hanner, beth ydym am ei newid? 1522 01:15:54,292 --> 01:15:55,306 >> GYNULLEIDFA: Eich uchafswm. 1523 01:15:55,306 --> 01:15:55,972 Andi Peng: Yeah. 1524 01:15:55,972 --> 01:16:02,597 1525 01:16:02,597 --> 01:16:04,680 Ac yna ydych ond yn mynd i gadw dolennu, dde? 1526 01:16:04,680 --> 01:16:08,920 Oherwydd erbyn hyn, ar ôl un iteriad drwy, oes gennych chi max yma. 1527 01:16:08,920 --> 01:16:10,760 Ac yna gallwch chi ail-gyfrifo yn ganol. 1528 01:16:10,760 --> 01:16:11,990 Ac yna gallwch gymharu. 1529 01:16:11,990 --> 01:16:14,766 A ydych yn mynd i ddal ati nes bod y mins a'r maxes 1530 01:16:14,766 --> 01:16:15,890 wedi cydgyfeirio yn y bôn. 1531 01:16:15,890 --> 01:16:17,890 A dyna pan fyddwch yn gwybod bod eich bod wedi cyrraedd y diwedd. 1532 01:16:17,890 --> 01:16:20,280 A naill ai eich bod wedi dod o hyd iddo neu os nad oes gennych ar y pwynt hwnnw. 1533 01:16:20,280 --> 01:16:23,170 >> A yw hyn yn gwneud synnwyr i bawb? 1534 01:16:23,170 --> 01:16:26,020 1535 01:16:26,020 --> 01:16:26,770 IAWN. 1536 01:16:26,770 --> 01:16:27,900 Mae hyn yn eithaf pwysig, oherwydd bydd gennych 1537 01:16:27,900 --> 01:16:29,760 i ysgrifennu hyn yn eich cod heno. 1538 01:16:29,760 --> 01:16:32,660 Ond byddwch yn guys yn cael 'n bert da synnwyr o'r hyn y dylech fod yn ei wneud, 1539 01:16:32,660 --> 01:16:34,051 sydd yn dda. 1540 01:16:34,051 --> 01:16:34,550 IAWN. 1541 01:16:34,550 --> 01:16:38,840 Felly, mae gennym tua saith munud ar ôl adran. 1542 01:16:38,840 --> 01:16:43,170 Felly rydym yn mynd i siarad am pset hwn y byddwn yn ei wneud. 1543 01:16:43,170 --> 01:16:46,410 Felly mae'r pset wedi ei rannu yn ddau hanner. 1544 01:16:46,410 --> 01:16:50,230 Mae'r hanner cyntaf yn cynnwys gweithredu darganfyddiad 1545 01:16:50,230 --> 01:16:54,210 yr ydych yn ysgrifennu chwiliad llinol, a chwilio deuaidd, ac algorithm didoli. 1546 01:16:54,210 --> 01:16:56,690 >> Felly, mae hyn yw'r cyntaf amser mewn pset lle 1547 01:16:56,690 --> 01:17:00,050 byddwn yn rhoi i chi guys hyn a elwir cod dosbarthu, sef cod 1548 01:17:00,050 --> 01:17:02,740 ein bod wedi rhag-ysgrifenedig, ond newydd adael rhai darnau oddi ar 1549 01:17:02,740 --> 01:17:04,635 i chi orffen ysgrifennu. 1550 01:17:04,635 --> 01:17:07,510 Felly rydych guys, pan fyddwch yn edrych ar hyn cod, efallai y byddwch yn cael ofnus mewn gwirionedd. 1551 01:17:07,510 --> 01:17:08,630 Os ydych ond yn ei hoffi, ahh, yr wyf yn ddim yn gwybod beth sy'n ei wneud, 1552 01:17:08,630 --> 01:17:11,670 Nid wyf yn gwybod, fel, sy'n ymddangos mor gymhleth, ahh, ymlacio. 1553 01:17:11,670 --> 01:17:12,170 Mae'n iawn. 1554 01:17:12,170 --> 01:17:12,930 Darllenwch y fanyleb. 1555 01:17:12,930 --> 01:17:16,920 Bydd y spec yn esbonio i chi yn union beth pob un o'r rhaglenni hyn yn ei wneud. 1556 01:17:16,920 --> 01:17:20,560 >> Er enghraifft, generate.c yn rhaglen a fydd yn dod â'ch pset. 1557 01:17:20,560 --> 01:17:24,060 Nid oes rhaid i mewn gwirionedd i chi ei gyffwrdd, ond dylech ddeall yr hyn y mae'n ei wneud. 1558 01:17:24,060 --> 01:17:28,550 Ac generate.c, pob mae'n ei wneud yw naill ai cynhyrchu rhifau ar hap 1559 01:17:28,550 --> 01:17:32,400 neu gallwch roi had ef, fel Rhif drefnwyd ymlaen llaw ei bod yn cymryd, 1560 01:17:32,400 --> 01:17:34,140 ac mae'n ei gynhyrchu fwy o rifau. 1561 01:17:34,140 --> 01:17:37,170 Felly mae ffordd benodol i gweithredu generate.c lle 1562 01:17:37,170 --> 01:17:42,760 gallwch wneud criw o rifau i chi brofi eich dulliau eraill ar. 1563 01:17:42,760 --> 01:17:45,900 >> Felly, os ydych yn dymuno, er enghraifft, profi eich darganfyddiad, 1564 01:17:45,900 --> 01:17:48,970 byddech am redeg generate.c, cynhyrchu criw o rifau, 1565 01:17:48,970 --> 01:17:50,880 ac yna yn rhedeg eich swyddogaeth cynorthwywyr. 1566 01:17:50,880 --> 01:17:53,930 Eich swyddogaeth cynorthwywyr yw lle rydych yn mewn gwirionedd yn ysgrifennu cod yn gorfforol. 1567 01:17:53,930 --> 01:17:59,330 A meddwl am helpwyr fel ffeil llyfrgell rydych yn ysgrifenedig bod darganfyddiad yn galw. 1568 01:17:59,330 --> 01:18:02,950 Ac felly o fewn helpers.c, wnewch chi helpu wneud chwilio a didoli. 1569 01:18:02,950 --> 01:18:06,500 >> Ac yna rydych chi'n mynd i yn y bôn dim ond nhw i gyd gyda'i gilydd. 1570 01:18:06,500 --> 01:18:10,350 Bydd y spec dweud wrthych sut i rhoi hynny ar y llinell orchymyn. 1571 01:18:10,350 --> 01:18:14,880 A byddwch yn gallu profi pa un a nad yw eich didoli a chwilio yn gweithio. 1572 01:18:14,880 --> 01:18:15,870 Cool. 1573 01:18:15,870 --> 01:18:18,720 Oes unrhyw un wedi dechrau'n barod ac problemau neu gwestiynau a gafwyd 1574 01:18:18,720 --> 01:18:20,520 sydd ganddynt ar hyn o bryd gyda hyn? 1575 01:18:20,520 --> 01:18:21,020 IAWN. 1576 01:18:21,020 --> 01:18:21,476 >> GYNULLEIDFA: Arhoswch. 1577 01:18:21,476 --> 01:18:21,932 Mae gen i cwestiwn. 1578 01:18:21,932 --> 01:18:22,844 >> Andi Peng: Yeah. 1579 01:18:22,844 --> 01:18:28,390 >> GYNULLEIDFA: Felly yr wyf yn dechrau yn ei wneud y chwiliad llinol yn helpers.c 1580 01:18:28,390 --> 01:18:29,670 ac nad oedd yn gweithio mewn gwirionedd. 1581 01:18:29,670 --> 01:18:34,590 Ond yna yn ddiweddarach, cefais allan rydym yn unig rhaid ei ddileu ac yn gwneud chwiliad deuaidd. 1582 01:18:34,590 --> 01:18:36,991 Felly mae'n ei ots os na fydd yn gweithio? 1583 01:18:36,991 --> 01:18:39,700 1584 01:18:39,700 --> 01:18:41,510 >> Andi Peng: Yr ateb byr yw na. 1585 01:18:41,510 --> 01:18:42,642 Ond ers ein bod not-- 1586 01:18:42,642 --> 01:18:44,350 GYNULLEIDFA: Ond does neb yn gwirio mewn gwirionedd. 1587 01:18:44,350 --> 01:18:46,058 Andi Peng: Rydym byth yn mynd i weld hynny. 1588 01:18:46,058 --> 01:18:49,590 Ond mae'n debyg y byddwch am wneud yn siŵr bod eich chwiliad yn gweithio. 1589 01:18:49,590 --> 01:18:51,700 Oherwydd os bydd eich llinol Nid yw chwilio yn gweithio, 1590 01:18:51,700 --> 01:18:54,410 Yna, mae'n bur debyg eich deuaidd Nid yw chwiliad yn mynd i'r gwaith yn ogystal. 1591 01:18:54,410 --> 01:18:56,646 Oherwydd bod gennych debyg rhesymeg yn y ddwy ohonynt. 1592 01:18:56,646 --> 01:18:58,020 Ac na, nid yw'n wir bwys. 1593 01:18:58,020 --> 01:19:01,300 Felly yr unig rai y byddwch yn troi yn cael eu didoli a chwilio deuaidd. 1594 01:19:01,300 --> 01:19:02,490 Yeah. 1595 01:19:02,490 --> 01:19:06,610 >> A hefyd, mae llawer o blant yn ceisio llunio helpers.c. 1596 01:19:06,610 --> 01:19:09,550 Chewch chi ddim mewn gwirionedd i wneud hynny, oherwydd helpers.c 1597 01:19:09,550 --> 01:19:11,200 Nid oes gan brif swyddogaeth. 1598 01:19:11,200 --> 01:19:13,550 Ac felly dylech dim ond yn llunio mewn gwirionedd 1599 01:19:13,550 --> 01:19:18,670 cynhyrchu a dod o hyd, gan fod dod o hyd i alwadau helpers.c a'r swyddogaethau oddi mewn iddo. 1600 01:19:18,670 --> 01:19:20,790 Felly mae hynny'n gwneud debugging poen yn y gasgen. 1601 01:19:20,790 --> 01:19:22,422 Ond dyna beth mae'n rhaid i ni ei wneud. 1602 01:19:22,422 --> 01:19:23,880 GYNULLEIDFA: Yr ydych newydd wneud yr holl, dde? 1603 01:19:23,880 --> 01:19:27,290 Andi Peng: Gallwch yn unig gwneud yr holl ogystal, yeah. 1604 01:19:27,290 --> 01:19:28,060 IAWN. 1605 01:19:28,060 --> 01:19:32,570 Felly dyna ni o ran yr hyn mae'r pset yn gofyn i chi i gyd ei wneud. 1606 01:19:32,570 --> 01:19:35,160 Os oes gennych unrhyw gwestiynau, yn teimlo rhad ac am ddim i ofyn i mi ar ôl adran. 1607 01:19:35,160 --> 01:19:37,580 'N annhymerus' fod yma am, fel, 20 munud. 1608 01:19:37,580 --> 01:19:40,500 >> Ac ie, y pset yn wir ddim mor wael â hynny. 1609 01:19:40,500 --> 01:19:41,680 Dylech guys yn iawn. 1610 01:19:41,680 --> 01:19:43,250 Mae'r rhain, dim ond yn dilyn canllawiau. 1611 01:19:43,250 --> 01:19:47,840 Math o gael synnwyr o, yn rhesymegol, beth Dylai fod yn digwydd a byddwch yn iawn. 1612 01:19:47,840 --> 01:19:48,690 Peidiwch â bod yn rhy ofnus. 1613 01:19:48,690 --> 01:19:50,220 Mae llawer o god ysgrifennwyd yno eisoes. 1614 01:19:50,220 --> 01:19:53,011 Peidiwch â bod yn rhy ofnus os nad ydych yn ei wneud deall yr hyn i gyd mae hynny'n ei olygu. 1615 01:19:53,011 --> 01:19:54,749 Os mae'n llawer, mae'n hollol iawn. 1616 01:19:54,749 --> 01:19:55,790 A dod i oriau swyddfa. 1617 01:19:55,790 --> 01:19:57,520 Byddwn yn eich helpu gymryd golwg. 1618 01:19:57,520 --> 01:20:00,810 >> GYNULLEIDFA: Gyda'r ychwanegol swyddogaethau, ydyn ni'n ceisio rhai hyd? 1619 01:20:00,810 --> 01:20:03,417 >> Andi Peng: Yeah, y rhai yn y cod. 1620 01:20:03,417 --> 01:20:05,750 Yn y gêm o 15, hanner mae eisoes wedi ysgrifennu ar eich cyfer. 1621 01:20:05,750 --> 01:20:09,310 Felly y swyddogaethau hynny yn cael eu eisoes yn y cod. 1622 01:20:09,310 --> 01:20:12,020 Yep. 1623 01:20:12,020 --> 01:20:12,520 Iawn. 1624 01:20:12,520 --> 01:20:14,000 Wel, pob lwc. 1625 01:20:14,000 --> 01:20:15,180 Mae'n ddiwrnod ffiaidd. 1626 01:20:15,180 --> 01:20:19,370 Felly gobeithio nad ydych guys yn teimlo yn rhy ddrwg am aros y tu mewn a chodio. 1627 01:20:19,370 --> 01:20:22,133