1 00:00:00,000 --> 00:00:13,300 2 00:00:13,300 --> 00:00:15,010 >> ROB BOWDEN: Hi, mwen se Rob. 3 00:00:15,010 --> 00:00:16,790 Ki jan nou anplwaye yon rechèch binè? 4 00:00:16,790 --> 00:00:18,770 Se pou yo jwenn deyò. 5 00:00:18,770 --> 00:00:23,400 Se konsa, sonje ke rechèch sa a nou pral aplike recursive. 6 00:00:23,400 --> 00:00:27,470 Ou kapab tou aplike binè rechèch iterativman, kidonk si w fè sa, 7 00:00:27,470 --> 00:00:29,280 sa a, se parfe amann. 8 00:00:29,280 --> 00:00:32,820 >> Koulye a, premye, se pou yo sonje sa a paramèt nan rechèch yo vle di ke yo dwe. 9 00:00:32,820 --> 00:00:36,120 Isit la, nou wè valè Int, ki se sipoze valè a itilizatè a se 10 00:00:36,120 --> 00:00:37,320 pou chèche. 11 00:00:37,320 --> 00:00:40,800 Nou wè etalaj la valè Int, ki se etalaj la nan ki nou ap 12 00:00:40,800 --> 00:00:42,520 pou chèche valè. 13 00:00:42,520 --> 00:00:45,602 Lè nou wè Int n, ki se longè a nan etalaj nou an. 14 00:00:45,602 --> 00:00:47,410 >> Koulye a, premye bagay an premye. 15 00:00:47,410 --> 00:00:51,350 Nou tcheke yo wè si n egal 0, nan ka sa a nou retounen fo. 16 00:00:51,350 --> 00:00:54,770 Se jis di si nou gen yon vid etalaj, valè a se klèman pa nan yon 17 00:00:54,770 --> 00:00:57,860 etalaj vid, pou nou ka retounen fo. 18 00:00:57,860 --> 00:01:01,250 >> Koulye a, nou aktyèlman vle fè binè la pati rechèch la binè rechèch la. 19 00:01:01,250 --> 00:01:04,780 Se konsa, nou vle jwenn mitan an eleman nan etalaj sa a. 20 00:01:04,780 --> 00:01:09,130 Isit la, nou di mitan egal n divize pa 2, depi eleman nan mitan an se 21 00:01:09,130 --> 00:01:12,240 pral fè longè a nan etalaj nou divize pa 2. 22 00:01:12,240 --> 00:01:15,040 Koulye a, nou ap ale nan tcheke yo wè si la eleman mitan egal valè a nou ap 23 00:01:15,040 --> 00:01:16,160 pou chèche. 24 00:01:16,160 --> 00:01:21,030 Se konsa, si valè mitan egal valè, nou ka retounen vre depi nou te jwenn nan 25 00:01:21,030 --> 00:01:22,810 valè nan etalaj nou an. 26 00:01:22,810 --> 00:01:26,380 >> Men, si sa ki te pa vre, koulye a nou bezwen fè repetitif la 27 00:01:26,380 --> 00:01:27,840 etap nan binè rechèch la. 28 00:01:27,840 --> 00:01:30,450 Nou bezwen nan rechèch swa nan la kite nan etalaj la oswa nan la 29 00:01:30,450 --> 00:01:32,320 mwayen nan etalaj la. 30 00:01:32,320 --> 00:01:39,280 Se konsa, isit la, nou di si valè nan mitan an se mwens pase valè, sa vle di ke valè 31 00:01:39,280 --> 00:01:41,350 te pi gwo pase mitan an nan etalaj la. 32 00:01:41,350 --> 00:01:45,790 Se konsa, valè yo dwe a dwat a la eleman ki nou jis gade. 33 00:01:45,790 --> 00:01:48,090 >> Se konsa, isit la, nou ap ale nan rechèch recursive. 34 00:01:48,090 --> 00:01:50,320 Epitou, n ap gade nan ki sa nou ap pase sa a nan yon dezyèm fwa. 35 00:01:50,320 --> 00:01:53,440 Men, nou ap ale nan rechèch la dwat Bondye ki gen eleman nan mitan. 36 00:01:53,440 --> 00:01:57,710 Ak nan lòt ka a, sa vle di valè te mwens pase la nan mitan an 37 00:01:57,710 --> 00:02:00,660 etalaj, e konsa nou pral nan rechèch sou bò goch la. 38 00:02:00,660 --> 00:02:03,520 Koulye a, bò gòch la a pwal yon ti jan pi fasil fè yon gade nan. 39 00:02:03,520 --> 00:02:07,770 Se konsa, nou wè isit la ke nou ap recursive rele rechèch kote premye a 40 00:02:07,770 --> 00:02:10,120 agiman se, ankò, valè a nou ap chèche sou. 41 00:02:10,120 --> 00:02:14,970 Agiman nan dezyèm a pwal nan etalaj ke nou te chache sou. 42 00:02:14,970 --> 00:02:17,090 Apre sa, eleman ki sot pase a kounye a se presegondè. 43 00:02:17,090 --> 00:02:21,650 Sonje dènye paramèt a se Int nou n, se konsa sa a, se longè a nan etalaj nou an. 44 00:02:21,650 --> 00:02:25,310 >> Nan apèl la repetitif nan rechèch, nou kounye a ki di ke longè a nan la 45 00:02:25,310 --> 00:02:27,230 etalaj se presegondè. 46 00:02:27,230 --> 00:02:32,900 Se konsa, si etalaj nou an te nan gwosè 20 ak nou fouye nan endèks 10, depi mitan an se 47 00:02:32,900 --> 00:02:36,930 20 divize pa 2, sa vle di nou ap pase 10 kòm nouvo a 48 00:02:36,930 --> 00:02:38,300 longè nan etalaj nou an. 49 00:02:38,300 --> 00:02:41,910 Sonje ke lè ou gen yon etalaj longè 10, sa vle di ki valab la 50 00:02:41,910 --> 00:02:45,450 eleman yo nan endis 0 jiska 9. 51 00:02:45,450 --> 00:02:50,120 Se konsa, sa a se ekzakteman ki sa nou vle presize mete ajou etalaj nou yo - bò gòch la 52 00:02:50,120 --> 00:02:53,010 etalaj soti nan eleman la presegondè. 53 00:02:53,010 --> 00:02:55,710 >> Se konsa, kap sou bò dwat la se yon ti jan pi difisil. 54 00:02:55,710 --> 00:03:00,170 Koulye a, premye, se pou yo konsidere longè a nan etalaj la a dwat a la 55 00:03:00,170 --> 00:03:01,240 mitan eleman. 56 00:03:01,240 --> 00:03:08,390 Se konsa, si etalaj nou an te nan gwosè n, Lè sa a, nan nouvo etalaj yo pral nan gwosè n mwens 57 00:03:08,390 --> 00:03:10,140 mwens mitan 1. 58 00:03:10,140 --> 00:03:12,530 Se konsa, kite a panse a n mitan mwens. 59 00:03:12,530 --> 00:03:18,710 >> Yon fwa ankò, si etalaj la yo te nan gwosè 20 ak nou divize pa 2 yo ka resevwa mitan an, 60 00:03:18,710 --> 00:03:23,540 Se konsa, mitan an se 10, Lè sa a, n mwens mitan ki pral ban nou 10, Se konsa, 10 61 00:03:23,540 --> 00:03:25,330 eleman sou bò dwat la nan mitan. 62 00:03:25,330 --> 00:03:27,780 Men, nou menm tou nou gen mwens sa a 1, depi nou pa vle 63 00:03:27,780 --> 00:03:29,700 gen ladan mitan nan tèt li. 64 00:03:29,700 --> 00:03:34,190 Se konsa, n mwens mitan mwens 1 ban nou an manm kantite eleman sou bò dwat la 65 00:03:34,190 --> 00:03:36,800 nan endèks la presegondè yo nan etalaj la. 66 00:03:36,800 --> 00:03:41,870 >> Koulye a isit la, sonje ke lekòl presegondè a paramèt se etalaj la valè. 67 00:03:41,870 --> 00:03:46,180 Se konsa, isit la, nou ap pase yon mete ajou valè etalaj. 68 00:03:46,180 --> 00:03:50,930 Sa a valè plis mitan plis 1 se aktyèlman li di recursive rele 69 00:03:50,930 --> 00:03:56,460 rechèch, pase nan yon nouvo etalaj, kote ke nouvo etalaj kòmanse nan mitan an 70 00:03:56,460 --> 00:03:59,370 plis youn nan nou an valè etalaj orijinal la. 71 00:03:59,370 --> 00:04:05,400 >> Yon sentaks lòt pou sa, kounye a ke ou te te kòmanse wè pwent, se 72 00:04:05,400 --> 00:04:10,170 valè komersyal mitan plis 1. 73 00:04:10,170 --> 00:04:17,149 Se konsa, gen tan pwan adrès ki nan mitan an plis yon eleman nan valè. 74 00:04:17,149 --> 00:04:23,690 >> Koulye a, si ou pa t 'alèz modifye yon etalaj tankou sa yo, ou 75 00:04:23,690 --> 00:04:28,900 ta ka tou te aplike sa a lè l sèvi avèk yon fonksyon k'ap vin ede repetitif, kote 76 00:04:28,900 --> 00:04:31,680 ki fonksyon k'ap vin ede pran plis agiman. 77 00:04:31,680 --> 00:04:36,610 Se konsa, olye pou yo pran jis valè an, nan etalaj, ak gwosè a nan etalaj la, 78 00:04:36,610 --> 00:04:42,315 fonksyon an k'ap vin ede kapab pran plis agiman, ki gen ladan endèks la pi ba 79 00:04:42,315 --> 00:04:45,280 ke ou ta pran swen sou nan etalaj la ak endèks la anwo ke ou pran swen 80 00:04:45,280 --> 00:04:46,300 sou etalaj la. 81 00:04:46,300 --> 00:04:49,770 >> Se konsa, kenbe tras nan tou de pi ba a endèks ak endèks la anwo kay la, ou pa fè sa 82 00:04:49,770 --> 00:04:52,780 bezwen tout tan tout tan modifye nan valè orijinal etalaj. 83 00:04:52,780 --> 00:04:56,390 Ou ka jis kontinye sèvi ak etalaj la valè. 84 00:04:56,390 --> 00:04:59,540 Men, isit la, remake nou pa bezwen yon lòt moun sanble fonksyone osi lontan ke nou ap 85 00:04:59,540 --> 00:05:01,760 vle modifye orijinal la valè etalaj. 86 00:05:01,760 --> 00:05:05,020 Nou vle pase nan yon mete ajou valè. 87 00:05:05,020 --> 00:05:09,140 >> Koulye a, nou pa kapab binè rechèch sou yon etalaj se sa ki triye. 88 00:05:09,140 --> 00:05:12,220 Se konsa, kite a jwenn sa a Ranje soti. 89 00:05:12,220 --> 00:05:17,650 Koulye a, remake ke sòt se sot pase yo de paramèt int valè, ki se nan 90 00:05:17,650 --> 00:05:21,110 etalaj ke nou ap klasman, ak Int n, ki se longè a nan etalaj la ki 91 00:05:21,110 --> 00:05:22,250 nou ap klasman. 92 00:05:22,250 --> 00:05:24,840 Se konsa, isit la nou vle aplike yon algorithm Fouye 93 00:05:24,840 --> 00:05:26,690 se sa ki o n okib. 94 00:05:26,690 --> 00:05:30,560 Ou te kapab chwazi sòt ti wonn, seleksyon sòt, oswa ensèsyon sòt, oswa 95 00:05:30,560 --> 00:05:32,670 kèk lòt sòt nou pa jwenn okenn wè nan klas la. 96 00:05:32,670 --> 00:05:36,380 Men, isit la, nou ap ale nan sèvi ak sòt seleksyon an. 97 00:05:36,380 --> 00:05:40,030 >> Se konsa, nou ap ale nan repňte sou etalaj la tout antye. 98 00:05:40,030 --> 00:05:44,360 Oke, isit la nou wè ke nou ap iteration ki ant 0 a n mwens 1. 99 00:05:44,360 --> 00:05:45,990 Poukisa nou pa tout wout la jiska n? 100 00:05:45,990 --> 00:05:49,320 Bon, si nou te deja klase premye a n mwens 1 eleman, Lè sa a, nan 101 00:05:49,320 --> 00:05:54,420 trè dènye eleman sa yo dwe deja ap nan plas ki kòrèk la, se konsa klasman sou 102 00:05:54,420 --> 00:05:56,520 etalaj la tout antye. 103 00:05:56,520 --> 00:05:58,770 >> Koulye a, sonje ki jan seleksyon sòt travay. 104 00:05:58,770 --> 00:06:01,950 Nou pral ale sou etalaj la tout antye kap chèche valè minimòm lan nan 105 00:06:01,950 --> 00:06:04,480 etalaj la ak baton ki nan kòmansman an. 106 00:06:04,480 --> 00:06:07,610 Lè sa a, nou pral ale sou tout la etalaj ankò kap chèche dezyèm lan 107 00:06:07,610 --> 00:06:10,410 pi piti eleman, ak baton ki nan yon pozisyon nan dezyèm nan la 108 00:06:10,410 --> 00:06:12,100 etalaj, ak sou sa. 109 00:06:12,100 --> 00:06:14,330 Se konsa, se sa ki sa a ap fè. 110 00:06:14,330 --> 00:06:17,290 >> Isit la, nou ap wè ke nou ap mete minimòm aktyèl la 111 00:06:17,290 --> 00:06:20,030 valè nan endèks la m-th. 112 00:06:20,030 --> 00:06:23,160 Se konsa, sou iterasyon a an premye, nou pral yo konsidere valè a minimòm yo dwe 113 00:06:23,160 --> 00:06:25,030 nan kòmansman an nan etalaj nou an. 114 00:06:25,030 --> 00:06:28,500 Lè sa a, nou pral repňte sou la rès nan etalaj la, tcheke 115 00:06:28,500 --> 00:06:31,870 wè si gen nenpòt eleman ki pi piti pase youn nan ki nou ap kounye a 116 00:06:31,870 --> 00:06:33,900 konsidere minimòm la. 117 00:06:33,900 --> 00:06:38,840 >> Se konsa, isit la, valè j plis yon - sa a mwens pase sa nou yo kounye a 118 00:06:38,840 --> 00:06:40,380 konsidere minimòm la. 119 00:06:40,380 --> 00:06:42,940 Lè sa a, nou pral mete sa nou panse se minimòm nan 120 00:06:42,940 --> 00:06:44,640 endèks j plis 1. 121 00:06:44,640 --> 00:06:48,540 Se konsa, fè sa atravè etalaj la an antye, ak apre sa a pou bouk, minimòm 122 00:06:48,540 --> 00:06:53,160 yo ta dwe eleman minimòm-nan soti nan pozisyon nan m-th nan etalaj la. 123 00:06:53,160 --> 00:06:57,350 >> Yon fwa nou genyen ki, nou ka swap la minimòm valè nan pozisyon an mwen-th 124 00:06:57,350 --> 00:06:58,230 nan etalaj la. 125 00:06:58,230 --> 00:07:00,130 Se konsa, sa a se jis yon swap estanda. 126 00:07:00,130 --> 00:07:03,940 Nou sere nan yon valè pou yon ti tan - valè a m-th nan etalaj la - 127 00:07:03,940 --> 00:07:08,460 mete nan valè a m-th nan etalaj la nan minimòm valè pou moun ki te la, 128 00:07:08,460 --> 00:07:13,580 ak Lè sa a, magazen tounen antre nan kote a kounye a valè minimòm itilize yo dwe nan 129 00:07:13,580 --> 00:07:16,460 valè m-th nan etalaj la, se konsa ke nou pa t 'pèdi li. 130 00:07:16,460 --> 00:07:20,510 >> Se konsa, ki ap kontinye sou pwochen iterasyon la. 131 00:07:20,510 --> 00:07:23,480 Nou pral kòmanse kap chèche dezyèm lan minimòm valè ak insert ki nan la 132 00:07:23,480 --> 00:07:24,590 dezyèm pozisyon. 133 00:07:24,590 --> 00:07:27,440 Sou twazyèm iterasyon a, nou pral gade pou valè minimòm-nan twazyèm ak insert 134 00:07:27,440 --> 00:07:31,550 ki nan twazyèm pozisyon an, e konsa sou jouk nou gen yon etalaj tri. 135 00:07:31,550 --> 00:07:33,820 Non mwen se Rob, ak sa a te sòt seleksyon an. 136 00:07:33,820 --> 00:07:39,456