1 00:00:00,000 --> 00:00:04,419 >> [Música tocando] 2 00:00:04,419 --> 00:00:05,401 3 00:00:05,401 --> 00:00:08,460 >> Doug LLOYD: OK, entón unha combinación tipo é un algoritmo 4 00:00:08,460 --> 00:00:11,200 que podemos utilizar para resolver os elementos dunha matriz. 5 00:00:11,200 --> 00:00:14,480 Pero, como veremos, ten un diferenza moi fundamental 6 00:00:14,480 --> 00:00:17,850 de selección tipo, burbulla tipo e ordenación por inserción 7 00:00:17,850 --> 00:00:20,280 que o fan realmente moi intelixente. 8 00:00:20,280 --> 00:00:24,290 >> A idea básica por tras de mesclagem tipo é clasificar matrices menores 9 00:00:24,290 --> 00:00:27,430 e, a continuación, combinar esas matrices xuntos, ou mesturar eles-- 10 00:00:27,430 --> 00:00:31,440 de aí o nome-- na orde de clasificación. 11 00:00:31,440 --> 00:00:34,230 O xeito que merge sort fai é dicir, aproveitando unha ferramenta 12 00:00:34,230 --> 00:00:37,290 chamado recursão, que é o que nós imos estar falando en breve, 13 00:00:37,290 --> 00:00:39,720 pero nós realmente non falamos sobre iso aínda. 14 00:00:39,720 --> 00:00:43,010 >> Aquí é a idea básica por tras merge sort. 15 00:00:43,010 --> 00:00:46,320 Ordenar a metade esquerda da matriz, asumindo que n é maior que 1. 16 00:00:46,320 --> 00:00:49,980 E o que quero dicir cando digo asumindo que n é maior que 1 é, 17 00:00:49,980 --> 00:00:53,970 Creo que podemos aceptar que se unha matriz consiste soamente dun único elemento, 18 00:00:53,970 --> 00:00:54,680 é clasificado. 19 00:00:54,680 --> 00:00:56,560 Nós realmente non precisa para facer calquera cousa para el. 20 00:00:56,560 --> 00:00:58,059 Podemos só declaralo lo para ser clasificado. 21 00:00:58,059 --> 00:01:00,110 É só un único elemento. 22 00:01:00,110 --> 00:01:03,610 >> Así, o pseudocódigo, de novo, é ordenar a metade á esquerda da matriz, 23 00:01:03,610 --> 00:01:08,590 a continuación, clasificar a metade dereita da matriz, a continuación, mesturar as dúas metades xuntas. 24 00:01:08,590 --> 00:01:11,040 Agora, xa que pode ser pensar, el tipo de só 25 00:01:11,040 --> 00:01:14,080 Parece que está adiando as-- non está realmente facendo algo. 26 00:01:14,080 --> 00:01:16,330 Está dicindo clasificar á esquerda metade, ordenar a metade dereita, 27 00:01:16,330 --> 00:01:19,335 pero non está dicindo me como está facendo iso. 28 00:01:19,335 --> 00:01:22,220 >> Pero lembre que, mentres unha matriz é un único elemento, 29 00:01:22,220 --> 00:01:23,705 podemos declaralo la clasificada. 30 00:01:23,705 --> 00:01:25,330 Entón podemos só combina-los xuntos. 31 00:01:25,330 --> 00:01:27,788 E iso é realmente o idea fundamental detrás merge sort, 32 00:01:27,788 --> 00:01:31,150 é para rompe-lo para abaixo, para que súas matrices son de tamaño un. 33 00:01:31,150 --> 00:01:33,430 E entón reconstruír a partir de aí. 34 00:01:33,430 --> 00:01:35,910 >> Merge sort é sempre un algoritmo complicado. 35 00:01:35,910 --> 00:01:38,210 E é tamén un pouco complicada para ver. 36 00:01:38,210 --> 00:01:41,870 Polo tanto, esperamos que, a visualización que temos aquí vai axudar a seguir adiante. 37 00:01:41,870 --> 00:01:45,640 E eu vou probar o meu mellor para narrar as cousas e continuar con este un pouco máis 38 00:01:45,640 --> 00:01:49,180 lentamente do que os outros só coa esperanza de obter a súa cabeza 39 00:01:49,180 --> 00:01:51,800 en torno ás ideas detrás merge sort. 40 00:01:51,800 --> 00:01:54,680 >> Polo tanto, temos a mesma matriz como a outras algoritmo de clasificación vídeos 41 00:01:54,680 --> 00:01:57,120 se xa viu eles-- unha matriz de seis elementos. 42 00:01:57,120 --> 00:02:02,110 E o noso código pseudocode aquí é clasificar a metade esquerda, ordenar a metade dereita, 43 00:02:02,110 --> 00:02:03,890 mesturar as dúas metades xuntas. 44 00:02:03,890 --> 00:02:09,770 Entón, imos dar este ladrillo vermello moi escuro array e clasificar a metade esquerda do mesmo. 45 00:02:09,770 --> 00:02:13,380 >> Entón, por agora, imos a ignorar as cousas á dereita. 46 00:02:13,380 --> 00:02:15,740 É alí, pero estamos non naquel paso aínda. 47 00:02:15,740 --> 00:02:18,220 Non somos a especie a metade dereita da matriz. 48 00:02:18,220 --> 00:02:21,037 Estamos en especie á esquerda metade da matriz. 49 00:02:21,037 --> 00:02:22,870 E só por unha cuestión de ser un pouco máis 50 00:02:22,870 --> 00:02:26,480 claro, para que eu poida consultar ao paso que estamos no, 51 00:02:26,480 --> 00:02:29,800 Vou cambiar o cor deste conxunto de laranxa. 52 00:02:29,800 --> 00:02:33,190 Agora, aínda estamos a falar sobre o mesma metade esquerda da matriz orixinal. 53 00:02:33,190 --> 00:02:38,520 Pero eu estou esperando que por poder refírense ás cores de varios elementos, 54 00:02:38,520 --> 00:02:40,900 vai facelo un pouco máis claro o que está a suceder aquí. 55 00:02:40,900 --> 00:02:43,270 >> OK, entón agora temos un tres matriz elemento. 56 00:02:43,270 --> 00:02:46,420 Como podemos clasificar a metade esquerda deste matriz, o que é aínda neste paso? 57 00:02:46,420 --> 00:02:49,400 Estamos tentando clasificar á esquerda metade do ladrillo vermello array-- 58 00:02:49,400 --> 00:02:52,410 a metade esquerda das cales Eu teño agora de cor laranxa. 59 00:02:52,410 --> 00:02:54,840 >> Ben, nós poderíamos tentar cabo este proceso de novo. 60 00:02:54,840 --> 00:02:56,756 Entón, nós aínda estamos no medio tentando clasificar 61 00:02:56,756 --> 00:02:58,700 a metade esquerda da matriz completa. 62 00:02:58,700 --> 00:03:00,450 A metade esquerda do array, eu só vou 63 00:03:00,450 --> 00:03:03,910 para decidir arbitrariamente que a metade esquerda será menor que a metade dereita, 64 00:03:03,910 --> 00:03:06,550 porque isto acontece a composto por tres elementos. 65 00:03:06,550 --> 00:03:11,260 >> E así eu vou dicir que o metade esquerda da metade esquerda da matriz 66 00:03:11,260 --> 00:03:14,050 é só o elemento cinco. 67 00:03:14,050 --> 00:03:18,360 Cinco, sendo un único elemento array, sabemos como solucionar isto. 68 00:03:18,360 --> 00:03:21,615 E así cinco está clasificada. 69 00:03:21,615 --> 00:03:22,990 Nós só estamos indo a declarar isto. 70 00:03:22,990 --> 00:03:24,890 É unha única matriz elemento. 71 00:03:24,890 --> 00:03:29,015 >> Entón, nós temos agora clasificados a metade esquerda da esquerda half-- 72 00:03:29,015 --> 00:03:33,190 ou mellor, temos clasificados a metade esquerda da laranxa. 73 00:03:33,190 --> 00:03:37,970 Entón, agora, a fin de aínda completa metade esquerda da matriz total, 74 00:03:37,970 --> 00:03:43,481 necesitamos clasificar a metade dereita da laranxa, ou esas cousas. 75 00:03:43,481 --> 00:03:44,230 Como facemos isto? 76 00:03:44,230 --> 00:03:45,930 Ben, temos un array con dous elementos. 77 00:03:45,930 --> 00:03:50,470 Así, podemos clasificar a metade esquerda da matriz, que é dous. 78 00:03:50,470 --> 00:03:52,090 Dous é un único elemento. 79 00:03:52,090 --> 00:03:55,890 Polo que é clasificado por defecto. Entón, podemos clasificar a metade dereita 80 00:03:55,890 --> 00:03:58,530 de que a porción de matriz, a unha. 81 00:03:58,530 --> 00:04:00,210 Isto é tipo de xeito predeterminado. 82 00:04:00,210 --> 00:04:03,610 >> Isto é agora por primeira vez chegamos a un paso de mesclagem. 83 00:04:03,610 --> 00:04:06,135 Nós completados, aínda agora estamos tipo de aniñados down-- 84 00:04:06,135 --> 00:04:08,420 e que é unha especie de complicado cousa con recursividade é, 85 00:04:08,420 --> 00:04:10,930 precisa para manter o seu cabeza sobre onde estamos. 86 00:04:10,930 --> 00:04:15,560 Entón, nós tipo de esquerda metade da porción de laranxa. 87 00:04:15,560 --> 00:04:21,280 >> E agora, estamos no medio de selección a metade dereita da porción de laranxa. 88 00:04:21,280 --> 00:04:25,320 E, nese proceso, estamos agora a piques de ser no chanzo, 89 00:04:25,320 --> 00:04:27,850 mesturar as dúas metades xuntas. 90 00:04:27,850 --> 00:04:31,700 Cando ollamos para as dúas metades da matriz, vemos dous e un. 91 00:04:31,700 --> 00:04:33,880 Elemento que é menor? 92 00:04:33,880 --> 00:04:35,160 Unha. 93 00:04:35,160 --> 00:04:36,760 >> A continuación, o cal elemento é menor? 94 00:04:36,760 --> 00:04:38,300 Ben, é dúas ou nada. 95 00:04:38,300 --> 00:04:39,910 Polo tanto, é dous. 96 00:04:39,910 --> 00:04:43,690 Entón, agora, só para enmarcar novo onde estamos no contexto, 97 00:04:43,690 --> 00:04:48,230 nós ter resolto o metade esquerda da laranxa 98 00:04:48,230 --> 00:04:49,886 ea metade dereita da orixe. 99 00:04:49,886 --> 00:04:52,510 Sei que eu mudei as cores de novo, pero que é onde estabamos. 100 00:04:52,510 --> 00:04:54,676 E a razón pola que eu fixen iso é porque este proceso é 101 00:04:54,676 --> 00:04:57,870 seguirá, a iteración abaixo. 102 00:04:57,870 --> 00:05:00,500 Temos clasificados esquerda a metade da laranxa ex 103 00:05:00,500 --> 00:05:02,590 ea metade dereita do ex laranxa. 104 00:05:02,590 --> 00:05:05,620 >> Agora necesitamos mesturar os dúas metades xuntos tamén. 105 00:05:05,620 --> 00:05:07,730 Esa é a etapa na que estamos. 106 00:05:07,730 --> 00:05:11,440 Polo tanto, considerar todas as elementos que son agora verde, 107 00:05:11,440 --> 00:05:12,972 a metade esquerda da matriz orixinal. 108 00:05:12,972 --> 00:05:14,680 E nós mesturar os utilizando o mesmo proceso de 109 00:05:14,680 --> 00:05:18,660 fixemos para mesturar dous e un só un momento atrás. 110 00:05:18,660 --> 00:05:23,080 >> A metade da esquerda, a menor elemento na metade esquerda é cinco. 111 00:05:23,080 --> 00:05:25,620 O elemento máis pequeno a metade dereita é un deles. 112 00:05:25,620 --> 00:05:27,370 Cal destas é menor? 113 00:05:27,370 --> 00:05:29,260 Unha. 114 00:05:29,260 --> 00:05:32,250 >> O elemento máis pequeno a metade esquerda é cinco. 115 00:05:32,250 --> 00:05:35,540 O elemento máis pequeno a metade dereita é dous. 116 00:05:35,540 --> 00:05:36,970 Cal é o menor? 117 00:05:36,970 --> 00:05:38,160 Dous. 118 00:05:38,160 --> 00:05:41,540 E para rematar, a continuación, cinco e nada, podemos dicir cinco. 119 00:05:41,540 --> 00:05:43,935 >> OK, polo tanto, gran figura, imos facer unha pausa por un segundo 120 00:05:43,935 --> 00:05:46,080 e descubrir onde estamos. 121 00:05:46,080 --> 00:05:48,580 Se começássemos desde o principio, nós 122 00:05:48,580 --> 00:05:51,640 agora completou para a matriz global só 123 00:05:51,640 --> 00:05:53,810 un paso do código pseudocode aquí. 124 00:05:53,810 --> 00:05:56,645 Nós ter resolto o metade esquerda da matriz. 125 00:05:56,645 --> 00:05:59,490 >> Lembre que o orixinal orde era cinco, dous, un. 126 00:05:59,490 --> 00:06:02,570 Ao pasar por este proceso e nidificación abaixo e repetir, 127 00:06:02,570 --> 00:06:05,990 continuando a romper o problema en partes cada vez máis pequenos, 128 00:06:05,990 --> 00:06:09,670 temos agora rematada un paso do pseudocode 129 00:06:09,670 --> 00:06:13,940 para toda a matriz de saída. 130 00:06:13,940 --> 00:06:16,670 Nós resolver súa media esquerda. 131 00:06:16,670 --> 00:06:18,670 >> Entón agora imos conxelar alí. 132 00:06:18,670 --> 00:06:23,087 E agora imos clasificar a dereita metade da matriz orixinal. 133 00:06:23,087 --> 00:06:25,670 E imos facelo por pasando pola mesma iterativo 134 00:06:25,670 --> 00:06:30,630 proceso de romper as cousas e, a continuación, mesclando los xuntos. 135 00:06:30,630 --> 00:06:34,290 >> Así, a metade esquerda da vermello, ou a metade esquerda 136 00:06:34,290 --> 00:06:38,830 da metade dereita do orixinal array, eu vou dicir é tres. 137 00:06:38,830 --> 00:06:40,312 Unha vez máis, eu estou sendo consistente aquí. 138 00:06:40,312 --> 00:06:42,020 Se tes un estraño número de elementos, ela 139 00:06:42,020 --> 00:06:44,478 Non importa realmente se fai o esquerdo menor 140 00:06:44,478 --> 00:06:45,620 ou o dereito dun menor. 141 00:06:45,620 --> 00:06:49,230 >> O importante é que sempre que atopou con este problema na condución 142 00:06:49,230 --> 00:06:51,422 unha mala, ten que ser consistente. 143 00:06:51,422 --> 00:06:53,505 Quere sempre ten facer un á esquerda menor 144 00:06:53,505 --> 00:06:55,421 ou sempre que facer o lado dereito menor. 145 00:06:55,421 --> 00:06:57,720 Aquí, eu escollín para sempre facer á esquerda menor 146 00:06:57,720 --> 00:07:04,380 cando a miña matriz, ou o meu sub-array, é dunha dimensión raro. 147 00:07:04,380 --> 00:07:07,420 >> Tres é un único elemento, e por iso é ordenada. 148 00:07:07,420 --> 00:07:10,860 Temos aproveitado esa suposición en todo o noso proceso ata agora. 149 00:07:10,860 --> 00:07:15,020 Entón agora imos clasificar a dereita metade da metade dereita, 150 00:07:15,020 --> 00:07:18,210 ou a metade dereita do vermello. 151 00:07:18,210 --> 00:07:20,390 >> Unha vez máis, temos que dividir isto para abaixo. 152 00:07:20,390 --> 00:07:21,910 Este non é un único elemento de matriz. 153 00:07:21,910 --> 00:07:23,970 Non podemos declaralo la clasificada. 154 00:07:23,970 --> 00:07:27,060 E así en primeiro lugar, imos para clasificar a metade esquerda. 155 00:07:27,060 --> 00:07:31,620 >> A metade da esquerda é un único elemento, polo que é tipo de xeito predeterminado. 156 00:07:31,620 --> 00:07:34,840 Entón imos clasificar a dereita metade, que é un único elemento. 157 00:07:34,840 --> 00:07:41,250 É clasificado por defecto. E agora, que pode mesturar os dous xuntos. 158 00:07:41,250 --> 00:07:45,820 Catro é menor, e a continuación, seis é menor. 159 00:07:45,820 --> 00:07:48,870 >> Unha vez máis, o que fixemos neste momento? 160 00:07:48,870 --> 00:07:52,512 Temos clasificados esquerda metade da metade dereita. 161 00:07:52,512 --> 00:07:54,720 Ou volver ao orixinal cores que estaban alí, 162 00:07:54,720 --> 00:07:57,875 temos ordenados esquerda metade do vermello máis suave. 163 00:07:57,875 --> 00:08:00,416 El foi orixinalmente un ladrillo escuro vermello e agora é un vermello máis suave, 164 00:08:00,416 --> 00:08:02,350 ou un vermello foi máis suave. 165 00:08:02,350 --> 00:08:05,145 >> E entón temos o clasificado metade dereita do vermello máis suave. 166 00:08:05,145 --> 00:08:08,270 Agora ben, son verde de novo, só porque estamos pasando por un proceso. 167 00:08:08,270 --> 00:08:10,720 E nós temos que repetir iso máis e máis. 168 00:08:10,720 --> 00:08:14,695 >> Entón agora podemos mesturar os dúas metades xuntas. 169 00:08:14,695 --> 00:08:15,820 E iso é o que facemos aquí. 170 00:08:15,820 --> 00:08:17,653 Así, a liña negra só dividido á metade esquerda 171 00:08:17,653 --> 00:08:19,690 ea metade dereita da parte tipo. 172 00:08:19,690 --> 00:08:24,310 >> Nós comparamos o menor valor na parte esquerda da array-- 173 00:08:24,310 --> 00:08:26,710 ou me desculpar, o menor valor da metade esquerda 174 00:08:26,710 --> 00:08:30,790 ao valor menor da dereita metade e descubrir que tres é menor. 175 00:08:30,790 --> 00:08:32,530 E agora un pouco de unha optimización, non? 176 00:08:32,530 --> 00:08:35,175 Hai realmente nada esquerda, na parte esquerda. 177 00:08:35,175 --> 00:08:37,440 >> Non hai nada que resta na parte esquerda, 178 00:08:37,440 --> 00:08:40,877 para que poidamos eficientemente só move-- podemos declarar 179 00:08:40,877 --> 00:08:42,960 o resto é, en realidade, clasificadas e só predica-la 180 00:08:42,960 --> 00:08:45,126 sobre, porque non hai nada outra para comparación. 181 00:08:45,126 --> 00:08:49,140 E sabemos que o lado dereito da dereita está clasificada. 182 00:08:49,140 --> 00:08:52,770 >> OK, entón agora imos conxelar de novo e descubrir onde estamos na historia. 183 00:08:52,770 --> 00:08:56,120 En xeral a matriz, o que fixemos? 184 00:08:56,120 --> 00:08:58,790 Nós realmente realizar Agora os pasos un e dous etapa. 185 00:08:58,790 --> 00:09:03,300 Separamos a metade esquerda, e nós ordenamos a metade dereita. 186 00:09:03,300 --> 00:09:08,210 >> Entón, agora, todo o que queda é para nós para mesturar estas dúas metades xuntas. 187 00:09:08,210 --> 00:09:11,670 Entón, nós comparamos o menor valorado elemento de cada metade da matriz 188 00:09:11,670 --> 00:09:13,510 á súa vez, e continúe. 189 00:09:13,510 --> 00:09:16,535 Un é inferior a tres, para que se pasa. 190 00:09:16,535 --> 00:09:19,770 >> Dous é inferior a tres, así que dous vai. 191 00:09:19,770 --> 00:09:22,740 Tres é inferior a 5, de xeito que tres intentos. 192 00:09:22,740 --> 00:09:25,820 Catro é inferior a 5, de xeito que vai de catro. 193 00:09:25,820 --> 00:09:30,210 A continuación, cinco é menos de seis, e seis é todo o que queda. 194 00:09:30,210 --> 00:09:31,820 >> Agora, sei, iso foi unha serie de etapas. 195 00:09:31,820 --> 00:09:33,636 E deixamos moi de memoria na nosa comentario. 196 00:09:33,636 --> 00:09:35,260 E iso é o que eses son cadrados gris. 197 00:09:35,260 --> 00:09:40,540 E probablemente me sentín como que tivo un moito máis que a ordenación por inserción, burbulla 198 00:09:40,540 --> 00:09:42,660 sort, ou ordenación por selección. 199 00:09:42,660 --> 00:09:45,330 >> Pero en realidade, porque un moitos destes procesos 200 00:09:45,330 --> 00:09:48,260 están a ocorrer ao mesmo tempo-- que é algo que vai, unha vez máis, 201 00:09:48,260 --> 00:09:51,100 falar cando falamos de recursão nun futuro video-- 202 00:09:51,100 --> 00:09:53,799 este algoritmo efectivamente claramente é fundamentalmente 203 00:09:53,799 --> 00:09:55,590 diferente de todo vimos antes 204 00:09:55,590 --> 00:09:58,820 pero tamén é significativamente máis eficiente. 205 00:09:58,820 --> 00:09:59,532 >> Por que é iso? 206 00:09:59,532 --> 00:10:01,240 Ben, no peor escenario, temos 207 00:10:01,240 --> 00:10:04,830 para dividir n elementos up e logo recombinam a eles. 208 00:10:04,830 --> 00:10:06,680 Pero cando recombinar los, o que estamos facendo 209 00:10:06,680 --> 00:10:11,110 é basicamente dobrando o tamaño das matrices menores. 210 00:10:11,110 --> 00:10:14,260 Temos unha morea de un elemento matrices que efectivamente 211 00:10:14,260 --> 00:10:16,290 combinar en dúas matrices de elementos. 212 00:10:16,290 --> 00:10:18,590 E, a continuación, tomamos os dúas matrices elemento 213 00:10:18,590 --> 00:10:21,890 e combina-los catro matrices de elementos, e así por diante, 214 00:10:21,890 --> 00:10:26,130 etc., e así por diante, ata que ten unha única matriz elemento n. 215 00:10:26,130 --> 00:10:29,910 >> Pero cantas repetidos que fai falta para chegar ao n? 216 00:10:29,910 --> 00:10:31,460 Pense de novo o exemplo do libro de teléfono. 217 00:10:31,460 --> 00:10:34,490 Cantas veces hai que rasgar o libro de teléfono pola metade, cantos máis 218 00:10:34,490 --> 00:10:38,370 veces hai que rasgar o libro de teléfono en metade, se o tamaño do libro de teléfono 219 00:10:38,370 --> 00:10:39,680 duplicou? 220 00:10:39,680 --> 00:10:41,960 Hai só un, non? 221 00:10:41,960 --> 00:10:45,360 >> Polo tanto, hai algún tipo de elemento logarítmica aquí. 222 00:10:45,360 --> 00:10:48,590 Pero nós tamén aínda temos que, polo menos, mirar para todo n elementos. 223 00:10:48,590 --> 00:10:53,860 Así, no peor dos casos, merge sort é executado en log n n. 224 00:10:53,860 --> 00:10:56,160 Temos que mirar para todo n elementos, 225 00:10:56,160 --> 00:11:02,915 e temos que combina-los en conxunto en N rexistro N conxuntos de pasos. 226 00:11:02,915 --> 00:11:05,290 No mellor dos casos, a matriz é perfectamente ordenadas. 227 00:11:05,290 --> 00:11:06,300 Isto é óptimo. 228 00:11:06,300 --> 00:11:09,980 Pero baseado no algoritmo que temos aquí, aínda temos que dividir e recombinar. 229 00:11:09,980 --> 00:11:13,290 Aínda que, neste caso, o recombinación é unha especie de ineficaz. 230 00:11:13,290 --> 00:11:14,720 Isto non é necesario. 231 00:11:14,720 --> 00:11:17,580 Pero aínda pasar por todo o proceso de calquera maneira. 232 00:11:17,580 --> 00:11:21,290 >> Así, no mellor dos casos e, no peor caso, 233 00:11:21,290 --> 00:11:24,970 este algoritmo é executado en log n n tempo. 234 00:11:24,970 --> 00:11:29,130 Merge sort é sempre un pouco máis complicado do que os outros principais algoritmos de ordenación 235 00:11:29,130 --> 00:11:33,470 xa falamos sobre CS50, pero é substancialmente máis poderoso. 236 00:11:33,470 --> 00:11:35,400 >> E por iso, se algunha vez atoparse ocasión para que del 237 00:11:35,400 --> 00:11:38,480 ou usalo para clasificar unha gran conxunto de datos, obtendo 238 00:11:38,480 --> 00:11:41,940 súa cabeza en torno á idea de recursão será realmente poderoso. 239 00:11:41,940 --> 00:11:45,270 E que vai facer o seu programas realmente moito máis eficiente 240 00:11:45,270 --> 00:11:48,700 usando merge sort contra calquera outra cousa. 241 00:11:48,700 --> 00:11:49,640 Eu son Doug Lloyd. 242 00:11:49,640 --> 00:11:51,970 Este é CS50. 243 00:11:51,970 --> 00:11:53,826