Transcripciones
1. Introducción: Buenos días, señoras y señores en Bienvenidos a este video elecciones Siris sobre una introducción a los algoritmos en Python. Mi nombre es Harmon. Soy diseñadora y desarrolladora de videojuegos actualmente trabajando en Sea Monster Entertainment en Ciudad del Cabo, Sudáfrica. He trabajado en la industria I T desde hace un tiempo. Solía construir sistemas gigantes de comercio electrónico, pero encontré que el diseño de juegos era más de mi agrado. Y realmente disfruto enseñando. Estudié informática y multimedia en la Universidad de Pretoria y siempre me he fascinado con cómo funcionan los algoritmos en las mentes brillantes detrás de estas
estructuras de datos y algoritmos. En esta serie de videos, vamos a estar echando un vistazo a los algoritmos de clasificación específicamente. Entonces, ¿por qué deberías aprender algoritmos de abastecimiento? Por lo que son un gran lugar para empezar a aprender algoritmos. Entonces tal vez estés diciendo, ¿Por qué deberías aprender habitaciones tan individuales, ya
están incluidas en muchos lenguajes de programación. Bueno, esto es cierto,
uh, uh, python Say, por ejemplo, tiene el algoritmo Tim vendido. Esto es más un ejercicio académico. Teoh te da un pie en la puerta sobre cómo funcionan los albertanos. Da a una persona más perspicacia sobre cómo funcionan estos sistemas en realidad sobre su relevancia para los problemas del mundo
real. Y por último, es porque son bonitas las necesita. Muy cool. Entonces primero vamos a aprender sobre la complejidad computacional y la eficiencia de los algoritmos. Entonces vamos a estar haciendo la fuente más básica, ese tipo de burbujas. Entonces la clasificación de inserción. Después de eso, echaremos un vistazo a mi favorito personal, el tipo de fusión,
y finalmente, y finalmente, el semi apropiadamente llamado Quick Sort. Cada lección se desglosa en una descripción, un desglose de la complejidad del Oliver, ellos mejor promedio y peor caso. Después echamos un vistazo a una visualización de la función Halabi realiza, seguida de una inmersión en la codificación que el algoritmo Onda. Envolveremos todo eso haciendo una visualización una ganancia ya que entonces sabrás lo que está
pasando detrás de la cortina. Esto es para estudiantes que están interesados en algoritmos sobre las sutilezas de la informática . Ya sea que estés empezando o seas viejo sombrero, será algo dentro de esta videoelección Siris para ti
2. Complejos informativos: buenos días, señoras y señores, y bienvenidos a esta lección sobre Big O sobre complejidad computacional. El motivo por el que necesitamos aprender más grande y complejidad computacional es porque es la forma que medimos la eficiencia fuera de los algoritmos que utilizamos. Por lo que es muy importante en informática y específicamente algoritmos insultantes definir qué es un bien o un mal sobre ellos. El Big O notación se utiliza en ciencias de la computación para describir el rendimiento o la complejidad. A menudo el algoritmo Big oh describió específicamente el peor de los casos,
sin embargo, se puede utilizar para describir el tiempo de ejecución requerido o el espacio utilizado ya sea en memoria o en disco por el algoritmo, específicamente con algoritmos de clasificación. También podemos usarlo para describir un caso promedio o un mejor escenario de caso, ya que los algoritmos de clasificación pueden tener un estado preordenado de peor o mejor caso promedio. A lo que me refiero con eso es, si tenemos una matriz fuera de cinco números, eso es 38216 Eso está completamente sin sal, ¿
verdad? Pero no está completamente en orden inverso, lo que significa que sería un escenario de caso promedio. peor de los casos sería si fuera 54321 La razón por la que eso sería peor es porque el algoritmo tiene toe realmente revertir esa matriz entera. Entonces ese sería el peor de los casos. Fort Best case escenario sería 12345 lo que significa que las matrices en realidad ya se
ordenaron , y solo estamos comprobando para ver que lo es. Como programador, encontré la mejor manera de entender el Big 0 30 es a través del código, y lo estaremos haciendo a lo largo del curso. Lo que voy a hacer es describirles los diferentes estados off big o on. Los verás surgiendo aquí en ese primero tenemos 01 Así que nadie describe un algoritmo que siempre se ejecutará en el mismo tiempo o espacio, independientemente del tamaño de los datos de importación. Por lo que eso es extremadamente eficiente. Es increíble, Andi, hay muy, muy pocos ordenando habitaciones antiguas que en realidad pueden sacar adelante en una. Entonces tenemos Oh, y así O N describe un viejo ritmo cuyo rendimiento crecerá linealmente en
proporción directa al tamaño del conjunto de datos de entrada. A lo que me refiero con eso es, si tenemos una matriz fuera de 20 artículos, ¿
verdad? Si le agregamos otro hielo, el procesamiento requerido para ese Isil crecerá sólo linealmente. En tanto que como veremos más adelante, con Owen al cuadrado, crece exponencialmente. Entonces eso está representado en este oficio que escuchamos en el amarillo es que a medida que más datos se sumen más ítems en este caso,
a un ritmo, la complejidad computacional de la misma aumenta linealmente. Voy a llegar a logaritmos como N log end, Andi Log y Nana. Pero primero, pasemos por 20 y calamar. Por lo que Owen cuadrado representa un algoritmo cuyo rendimiento es directamente proporcional al cuadrado fuera del tamaño del conjunto de datos de entrada. Por lo que esto es común con algoritmos que involucraron inspiraciones anidadas sobre el conjunto de datos. Mensajes más profundos. Raciones resultarán en O. M. Al
poder de tres o o o fin al poderoso etcétera, etcétera, etcétera. Entonces esto es muy ineficiente. Reaction realmente quiere mantenerse alejado de esto. Entonces por aquí podemos ver oh, y cuadrado en estos en este video, Siri es donde esa es la peor complejidad computacional que vamos a ver. No vamos a ver al 02 al poder del fin en absoluto porque para ser totalmente honestos, si ordenar sobre ellos es tan ineficiente, simplemente no lo usamos. Ni siquiera lo estudiamos. Hablemos a punto de terminar. Denota un viejo ritmo cuyo crecimiento se duplica con cada adición a los insumos. Conjunto de datos. La curva de crecimiento off 02 a la potencia de y función es exponencial, comenzando con iniciar un Lee meteórico muy superficial y ascendente. Echemos un vistazo a los logaritmos, por lo que los logaritmos son ligeramente más complicados de explicar. Tan viejo log n se refiere a una función o más antiguos ellos o pisando todos ellos, trabajando en una cantidad de tiempo proporcional al amante de por lo general una base a en la mayoría de los casos y todos los ejemplos que vamos a ver en el futuro. Por lo que los atributos más comunes de a de funciones de tiempo de ejecución logarítmicas son que
la elección del siguiente elemento en el que realizar algunas acciones es una de varias posibilidades. Andi de nuevo solo y sólo habrá que elegir uno o los elementos en los que se realiza la acción son dígitos desactivados. Entonces 00 log enemiga aquí es ridículamente eficiente, no tan eficiente como 01 pero ciertamente más eficiente que el lineal o n. Y luego oh, y mira, y en realidad es bastante grande rango por aquí. Pero sigue siendo una mejor complejidad computacional que decir, Oh, y al cuadrado. Vamos a estar profundizando mucho más en este concepto en los próximos videos. Quédate ahí para eso.
3. Ordenación de burbujas: Hola, señoras y señores, y bienvenidos a esta lección sobre el tipo de burbujas. Entonces vamos a saltar justo ahí. ¿ Cuál es el tipo de burbuja? Bueno, la burbuja fuente una de las fuentes más básicas de abastecimiento a logaritmos ondas, la más simple de entender, razón por la
que vamos a estar empezando aquí. Se trata de ideas básicas para burbujear los elementos más grandes o los más pequeños, dependiendo de si estás clasificando o revirtiendo el abastecimiento en el segundo más grande en el tercero y así sucesivamente. Es el que hasta el final de la lista. Cada Elements toma un barrido completo a través de la lista para encontrarse en su lugar correcto, Así que el abastecimiento de bolas es un algoritmo terriblemente ineficiente. Andi Personas preguntando Por
qué, por qué aprendes la clase de burbujas cuando ya programan lenguajes como python ya comida. Excelente clasificación mayor como Tim ordenar por. Esto se hace. Maura es un ejercicio académico para no olvidar los principios básicos fuera de la clasificación. Entonces las fuentes de bala, dije terriblemente, terriblemente ineficientes, con una peor y media complejidad de casos fuera oh, y al cuadrado, lo que significa los elementos Mawr que se agregan a la matriz. El incumplimiento del dique del tiempo de procesamiento se elevó exponencialmente. Curiosamente, sin embargo, es el mejor caso y son donde se escriben todos los elementos de la matriz. Ordenado es O. N, lo
que significa que solo necesita correr a través de la matriz. Qué es lo que es bastante genial para probar si las matrices ya especie de, pero no tan grande en realmente abastecer la matriz. Por lo que aquí tengo un sitio web abasteciendo el 80. Te recomiendo encarecidamente que lo revises. Es un recurso muy, muy interesante cuando estás aprendiendo tus diferentes algoritmos de clasificación que
tiene toda una multitud de ellos. Voy a estar usando esto a lo largo de todas mis clases. Por lo que tenemos un completamente sin clasificar muy 09328614 cinco en siete. Entonces esencialmente, cómo es el balón por lo que funciona se comparará con los socios adyacentes. En primer caso va a ser cero y nueve. Se va a ver si están en sus posiciones correctas. Si no
lo son, les va a dar la vuelta. En este caso, no pasará nada. Pero cuando nueve se compara con 39 y tres,
vamos a dar la vuelta y al siguiente te comparan ahora nueve, porque es el más grande de esta matriz seguirá burbujeando hasta el final de la lista. Entonces, medida que pasemos se pone, H y H seguirán burbujeando, siempre a la derecha junto a las nueve, después seis, etcétera, etcétera, etcétera. Su trabajo. Echemos un vistazo a cómo funciona eso. De acuerdo, así que nueve voltean y simplemente continúa, burbujeando, burbujeando hasta el final de la lista y de vuelta al principio. Tres. Y para cambiar a los agentes seis. Lo que dice. Se puede ver que son solo estas comparaciones entre estos pares del dedo del pie. Mételos en la posición correcta, y eso suele ser ineficiente, pero lo está haciendo, y luego vamos ahí. Tenemos nuestra lista ordenada o tarifa, así que voy a traernos de vuelta a esta visualización. Ahora vamos primero a saltar a algún código para ver lo que realmente está pasando detrás de las cortinas. Tengo este archivo python o un set up ordenar DuPuy en lugar de mi abastecimiento más viejo de la
carpeta de ellos en solo eso. Podemos usar este mismo archivo para todas las diferentes habitaciones antiguas de abastecimiento que hacemos. En esta lección, voy a más viejo de esta manera. Voy a decir, importar al azar, uh, en. Y vamos a crear la matriz que vamos a estar abasteciendo es artículos aleatorios. Vamos a poblar esto ya con grand ins aleatorios Oh, digamos menos 52 100. Entonces vamos a crear enteros aleatorios entre menos 50 en 100 cuatro en un rayo fuera de una longitud 20. De acuerdo, entonces sólo que podamos probar la prueba los algoritmos de distancia en la parte inferior de los documentos por aquí. Voy a decir,
Príncipe, Príncipe, antes de artículos aleatorios. Entonces eso le va a Prince La matriz sin origen. Iban a llamar a los abastecimientos ordinarios los de elección. En este caso, vamos a estar llamando a la fuente formal, que implementará ahora y más artículos aleatorios a través de ella y príncipe después, y eso está justo ahí para asegurarnos de lo más viejo que las obras. Entonces empecemos a implementar una muerte tipo burbuja, tipos
locales, pasando por estos artículos. Entonces lo primero que vamos a hacer aquí es en realidad correr a través de toda la tarifa desde cero hasta la longitud de los artículos vender una caja fuerte para I en rango. Gracias. Ah, artículos. A continuación, vamos a volver a correr por toda esta gama, pero no vamos a golpear el final de la misma porque sabemos que el elemento más grande de esta matriz ya está al final. Entonces para J range off make items menos uno menos I, ¿ cuál es esta variable? Entonces vamos a decir, si los ítems de J son mayores que los ítems O j más uno. Entonces, esencialmente, esa es la comparación entre los dos elementos para comprobar cuál es el mayor de los dos , y luego vamos a cambiarlos. Ahora hay dos formas de cambiarlos. Lenguajes de programación tradicionales. Se crearía una variable de temp y medico it temp item es igual a ítems O. J. Y luego ponemos vitaminas O. J gente dos artículos fuera de J más uno y luego dice ítems O J +12 temporizando. Entonces eso es muy verboso. Y no me gusta mucho en Python tiene una forma bastante genial de abastecerse de esto, señor. Echemos un vistazo a lo que es eso. Bueno, digamos artículos de J comas artículos R J más uno es gente dos artículos fuera de J más uno mis pecados. O Shea. Eso va a hacer exactamente lo mismo. Y es sólo mucho más elegante hasta la patente y leer. Entonces echemos un vistazo a si nuestro pequeño algoritmo de abastecimiento de burbujas por aquí funciona según sea necesario. Ya estoy abriendo mi terminal por aquí, y ya estoy dentro de este sourcing sobre Holder dentro de esa carpeta está ordenando punto alto. Entonces ejecutemos esto y actualmente ejecutando Python tres, pero el guión dos debería funcionar perfectamente bien. De acuerdo, Semana arriba. Entonces antes tenemos negativo seis negativo 35 yendo todo el camino a través de
enteros completamente aleatorios entre menos 50 y 100 encendido después de que parece que todo está en orden, pasando de menos 50 hasta 90. Por lo que sabemos que nuestro pequeño algoritmo ha hecho su trabajo. Echemos otro vistazo a esta visualización ahora que sabemos lo que está pasando por aquí. Entonces eso es que yo sólo debería pasarlo a través de él. Está bien. Por lo que se compara. Nueve y tres y nueve sigue burbujeando hasta el final de la lista. Y luego tres burbujas de esta h siguen burbujeando hasta el final, y seis burbujas hasta el final hasta justo al lado de las siete. Y ahora solo tenemos que meter esa prueba que quieres en su posición correcta. ¡ Andi! Ahí lo tenemos. Señoras y señores, la fuente de la burbuja. Muchas gracias. Te veo en la siguiente lección.
4. Ordenación de inserción: buenos días, señoras y señores. Y bienvenido a esta lección sobre el ordenamiento de inserción en los algoritmos básicos de abastecimiento y tubería en Khost. Entonces saltemos a la derecha en los insurgentes fuera de las obras tomando elementos de la lista sin clasificar e insertándolos en el lugar correcto en un nuevo tipo de lista. El listado ordenado está vacío. El inicio. Este es el número total de elementos en la nueva y la vieja lista permanecen igual. Podemos usar el sin costuras para representar surtidos en las secciones sin clasificar. Entonces esencialmente, lo que esto significa es que vamos a, si calificar a lo largo, comparar a los diferentes socios ser elementos completamente adyacentes hasta que encontremos uno que no esté en el lugar correcto y lo movamos hacia abajo a su correcto posición. Esencialmente, hacer interruptores como vimos en el tipo de burbuja es como una burbuja hacia abajo cada vez que encontramos ciertos elementos de posiciones. Entonces echemos un vistazo rápido a la eficiencia y luego hagamos una visualización. Thea Eficiencia fuera de la fuente de inserción también es suficiente. Romper. Este es otro de esos tipos académicos es que el peor desempeño de los casos es O. N sudor, tanto en comparaciones como en swaps. El caso promedio interpreta también a Owens Square. En el mejor de los casos realiza similar a la clase de burbujas es OM, que significa que todo está en la posición correcta Que sólo tiene que operar a través de la lista una vez. Entonces echemos un vistazo a cómo funciona esto. En primer lugar, vamos a comparar uno con nueve. Veremos que están en eso médicos correctos. Entonces me iban a comparar con ocho. Van a cambiar, entonces nueve se va a convertir en ella para llenar ahora porque no era nada. Esa es la posición correcta. Por lo que se va a mover a su lugar, se va a comparar con ocho y cambiarse y luego nos movemos todo el camino de regreso a nueve y dos y dos no está en su posición correcta. Entonces vamos a bajar la lista y otra vez. Ahí vamos para que veas que puedes ver la tendencia de aquí. Zero tendrá que moverse hasta el fondo de la lista. Dice que no está en su posición correcta, y yo sólo voy a acelerar estos altibajos ahora que tienes la esencia de lo que está pasando por aquí. Tenemos seis moviéndose abajo tres moviéndose hacia abajo todo el camino hacia abajo hasta el principio y luego fuego cuando pongamos junto a seis en siete serán cosas en su posición correcta. Y entonces tenemos la fuente de lista. Entonces Entonces, echemos un vistazo al código. Por aquí tenemos el también de la última vez. Definamos una nueva inserción de función. Por lo que sólo toma en la lista de artículos. No lo digas solo para asegurarnos de que no olvidemos esto, agregué salsa de inserción aquí. Por lo que a ambos insurgentes se les llamará cuando se esté ejecutando el expediente. Primero necesitamos dedo del pie es correr a través de toda la tasa de una a la longitud Esta siguiente
vamos a poner J personas a I La razón por la que estamos poniendo J ableto ojos solo para que tengamos la
posición mientras nos movíamos hacia arriba. Entonces, si bien J es mayor que cero, simplemente no es el primer elemento. Y Bison está fuera Jay o menos que Isis está apagado. Licencia de J menos uno. De acuerdo, entonces esta comparación de aquí está revisando para ver si, uh si los elementos vecinos están en sus posiciones correctas y si están en las posiciones
incorrectas, vamos a cambiarlos ya que no tazón se detiene. Vamos a decir artículos de J salen así que j menos uno y verás que estamos usando J menos uno
en lugar de J más uno , ya que no hicimos la fuente de burbuja de La razón de esto es que en realidad estamos haciendo la
comparación hacia atrás para que podamos seguir cambiando estos a esos médicos correctos. Off J de Tyson menos un artículo apagado, dice
J. Está girando alrededor, y luego la última y probablemente la parte más importante es ésta. Jay es menos igual a uno. Entonces lo que eso va a hacer es que va a mover el índice hacia abajo mientras estos elementos no están en la posición correcta. Entonces comprobando para asegurarnos de que no estamos bien al principio, estamos revisando para asegurarnos de que estas cosas estén en orden. Si no están en orden. Lo que hacemos es cambiarlos y bajarlos,
cambiarlos,
movernos cambiarlos hacia arriba. De acuerdo, así que echemos un vistazo a cómo esas habitaciones Vale, así que corremos, uh, ordenando. No Y otra vez este amigos de la pipa en dos y tres allá vamos Pronto tenemos un Unsalted list 97 85 3 42 21 Onda. Tenemos la lista después, que todo parece que se ha ordenado en ella y se encuentra en su posición correcta. Por si no estuvieras cerca para la última lección, nosotros jet. Generamos aleatoriamente una lista fuera de 2028 pulgadas entre menos 50 en 100 que es el Array que está ordenado. Echemos un vistazo rápido a ordenar ese 18 para ver una representación visual de esto ahora que mejor nos entiendes. Muy bien, así nueve movimientos en movimiento completo estado posición correcta para moverse todo el camino hacia abajo a su
posición correcta también, y cero se mueve todo el camino a través. Eso es así de salvaje en sordos, emitiendo la J en un tres años todo el camino hasta el principio también. Cinco. En esta posición correcta sobre finalmente siete en su posición correcta. Bueno, espero que esto te dé una comprensión mucho mejor de cómo funciona el ordenamiento de inserción y también te
dé una mejor comprensión de cómo los algoritmos de clasificación en el trabajo general tienen que verte en la siguiente lección. Ten uno genial
5. Mezcla de la salida: buenos días, damas y caballeros, y bienvenidos a este video sobre el tipo de fusión en los algoritmos básicos en video Python, Siri Vamos a saltar justo en el tipo de fusión. Funciona subdividiendo la lista en dos sub listas, ordenándolas usando merge, ordenándolas para repetir Siple y luego fusionándolas de nuevo. A medida que se hace la Encuesta Recursiva para subdividir cada lista en una sub lista, eventualmente
alcanzarán el tamaño de una, que técnicamente es una lista ordenada. Entonces vamos a tener una larga lista bonita de enteros en. Vamos a subdividir eso en dos listas más pequeñas a listas más pequeñas a listas más pequeñas hasta que tengamos enteros individuales. Entonces vamos a utilizar la llamada recursiva para fusionarlos en pegarlos en el lugar
correcto a medida que van. Echemos un vistazo a la complejidad computacional, por lo que la complejidad computacional fuera de la fuente emerge en el peor mejor de los casos promedio son todos o n log, y debes recordar de nuestro video y complejidad computacional que esto es terrible, como y al cuadrado. Pero no es rico. Es justo. Es un vistazo rápido a cómo funciona la fusión para que así como tenemos en la imagen por aquí, tenemos una matriz sin clasificar de 38 27 43 39 82 y 10. Dividimos esa matriz en dos, separados para elevar o a sub listas, usando un cool recursivo que es 30 edad 27 43 3 en un lado y 1982 y 10 en el otro lado , y subdividimos cada una de esas listas también en. Seguimos subdividiendo hasta que tengamos elementos individuales todo el camino. Ahora la solicitud de Cool los fusionará de nuevo mientras hace comparaciones para ver qué elemento va a dónde. Por lo que 30 18 27 se fusionan y se comparan entre sí. Entonces tenemos 27 38 43 3 se comparan entre sí, y termina como una sub lista de tres y 43 lo mismo se hace aquí con 1982 y finalmente 10 aquí. Honestamente solitario. Entonces tenemos estas sub listas se fusionan para crear estas sublistas mayores en Finalmente, estas dos sub listas se fusionan entre sí y todas se ordenan en el orden correcto 39 10 27 38 43 en el día 82. Echemos un vistazo rápido a la clasificación Done 80. Ordenar ese 80 como he mencionado mis videos anteriores es un recurso fantástico para visualizar algoritmos de clasificación y una muy recomendable que lo revises. Dieta de clasificación. Puede que no sea la mejor manera de visualizar el alma de fusión, pero te recomiendo encarecidamente que vayas a echar un vistazo. Lo vamos a recorrer más tarde, justo después de entrar en el código. Por lo que tenemos nuestro orden público y de inserción desde la última vez. Definamos aquí una nueva función de la misma. Fuente de fusión en frío le toma una matriz de elementos en Vamos. Vamos a decir si la longitud de los artículos es mayor que uno, entonces seleccionamos el medio, que es la longitud de los artículos divididos por dos. Ver algo un poco igual sobre ellos y nos queda más. El Resumen de la izquierda y Python tiene una buena forma de definir los ítems de los resúmenes de la izquierda desde cero hasta el punto medio, y tenemos el resumen correcto, que es ITV. Noticias. Off to the end is a lovely little expressions in python y te recomiendo encarecidamente que hagas un curso de
introducción a Python solo para que estés muy familiarizado con todos estos
trucos fantásticos . De acuerdo, entonces aquí es donde el rickerson comienza a suceder dentro de dentro de esta función, en realidad vamos a enfriar fuente de fusión otra vez con el resumen de la izquierda, y vamos a llamar a merge, ordenar con el resumen correcto . Entonces, esencialmente, lo que está pasando aquí va a seguir sucediendo y seguir sucediendo mientras que la licencia de
longitud fuera es si la longitud de los artículos es mayor que uno. De acuerdo, entonces ahora vamos a fusionar a la izquierda en la lista derecha. Entonces nos hemos ido, ¿verdad? Es igual a cero es tu. Esa es sólo una buena manera de definir esto. Esos índices van a decir, o yo en longitud de rango fuera artículos corrían a través de todo el rayo. Vamos a decir valor a la izquierda, encontrar esto definido. Esta variable es igual a izquierda en el índice izquierdo. Si el índice izquierdo es menor que el largo apagado que queda encendido, si ese no es el caso más, No, hagamos lo mismo por los derechos. Decimos que el valor correcto es igual a la matriz de derechos en índice. Son si el si el índice correcto es menor que el largo apagado, correcto, Porque no queremos que Teoh vaya una y otra vez, vamos a decir lo contrario no. usted dijera si existe el valor de la izquierda y el valor de la derecha existe y el valor de la izquierda es menor que derecha. Entonces aquí es donde empieza a hacerse la comparación o si el valor correcto no es ninguno. De acuerdo, entonces la razón por la que estamos haciendo esto es porque hay posibilidades de que haya una
sola instancia a ambos lados de la lista. Vas a decir, Si eso es entonces son artículos. Ah, yo ya que seguimos pisando aquí es igual al valor de la izquierda. Está bien, así que lo está metiendo en ese mejor anillo. Vamos a decir izquierda bendice a la gente a querer solo implementado por uno para que podamos seguir
pisando por la izquierda o la derecha. Entonces ahora vamos a hacer lo mismo por el otro lado. Vamos a decir que vamos a decir si el valor izquierdo y el valor correcto, asegúrate de que existan y el valor izquierdo esta vez sea mayor o igual al valor correcto . Vas a decir eso o valor a la izquierda no es nada de lo cual está montado por aquí, entonces vamos a hacer la misma película aquí. Artículos todo yo es gente demasiado brillante valor. Y luego incrementamos nuestro índice ambos, y esto es sólo un poco de cheque. Podemos quedarnos. Plantear excepción. Los golpes de campana se fusionan, y lo está haciendo más descriptivo. Los tamaños de las submatrices no coinciden con la matriz principal. Genial. Entonces ese es el código. Echemos un vistazo rápido a través de él otra vez que esta es una petición de cool. Nos vamos a ver volver a pasar por la matriz de nuevo en incrementos más pequeños y más pequeños . Si la longitud de los artículos es mayor que uno y refinando los puntos medios, estamos creando una matriz izquierda y derecha, y entonces estamos llamando a la clasificación de fusión en el aumento del metro. Además, estamos estableciendo un índice para izquierda y derecha a las 00 Entonces vamos a correr por porque soy reinados, no rabia por la longitud fuera que iban a tener esos artículos. El valor de la izquierda es igual al valor off left en todo índice. Si el índice es menor que la longitud de la izquierda, solo asegúrate de que esté dentro. Está dentro de ese resumen más. El valor de la izquierda es igual a ninguno Que vamos a estar revisando aquí. Lo mismo con el valor correcto. Va a estar en la derecha Resumen en índice nuestro Si el nuestro es menor que la longitud fuera de la derecha nos separan, nuestro valor es igual a no. Y vamos a hacer el cheque. Digamos, si el valor izquierdo en el valor de la derecha existe en el valor de la izquierda es menor que el valor de la derecha Esta es esa comparación. O si el valor correcto no es ninguno, entonces vamos a llamar. Entonces vamos a establecer elementos de I igual al valor de la izquierda un valor de incremento izquierdo. Lo mismo sucede aquí, justo en el lado derecho. Y si algo de eso falla, vamos a plantear una excepción diciendo que no podía fusionarse. Los tamaños separados no coinciden con la tarifa principal. De acuerdo, vamos a correr en la terminal por aquí. Guípticos ordenando punto y correr. De acuerdo, entonces tenemos la lista sin clasificar de la parte superior, que es una matriz aleatoria de longitud de 20 que cada entero está aleatoriamente entre menos 50 y 100 después tenemos una lista perfectamente ordenada. Fantástico. Espero que esto les haya dado algunas ideas valiosas sobre cargas asesinas. Algoritmos en general sobre cómo funciona Rikers. Nos vemos en el siguiente video.
6. Comparte rápido: buenos días, señoras y señores, y bienvenidos a este video sobre el tipo rápido. Vayamos directo a ello. El rápido vendido funciona seleccionando primero un elemento pivotal de la lista. El pivote elementos es bastante fundamental en el rápido sort on, la selección del elemento profeta puede aumentar o disminuir la complejidad computacional del mismo. Entonces el elemento pivot que vamos a estar usando va a ser el centro directo fuera de la lista o matriz, luego crea dos listas, una que contiene elementos menos que el público y la otra que contiene elementos me contrataron. Después agrede a las dos listas y se les une con el perfecto en medio, al
igual que el tipo de fusión. Cuando las listas se subdividen a listas de Tamaño uno, se
consideran ya ordenadas. También, igual que el tipo de fusión. Vamos a estar usando Rikers en sí, la eficiencia fuera de la fuente rápida en el peor de los casos es O n cuadrado, similar a las sales de burbujas y no muy eficiente. El mejor caso y rendimiento promedio de casos R O N log y similar al emerge sort, que no está mal. Tampoco es bueno . Es gordo. Llamémoslo justo. Hagamos una visualización del tipo rápido. Ahora, como con el tipo de fusión por todo lo que está pasando detrás de la cortina de Rikers en ella puede no tener mucho sentido. Entonces primero, lo que pasa es que seleccionamos un punto de pivote. Este es el primero es aireación a través de él, y vamos a cavar en el código, así que mejor comprenderás lo que está pasando de él. Encuentra tesis entrar de títere, y luego es Cambia esos dos, pero en realidad no los cambia. Lo que está pasando detrás de bambalinas es que está poniendo el seis en el menor que el
array de ganancias y está poniendo el nueve en el mayor que el rayo pivotal. Asumiendo que lo prueben aquí son cinco. Siguiente. A medida
que pasamos, cambia siete y uno y otra vez, cuando digo interruptores, significa que pone uno en el menos que un rastrillo y pone siete en el Ranger que Rick. Entonces tenemos lleno puesto en el menos siglo y seis puestos en el mayor que terreno on. Por último, tenemos 25 cambiar sobre cada uno de ellos, seleccionar su propio punto de pivote todo el camino hacia abajo, y luego aquellos para cambiar y Como puedes ver, poco comienza a crear un socialista, y finalmente siete y cada uno se voltean sobre. Ahí. Tenemos de nuevo la lista ordenada. Esta no es la mejor utilización de eso. Echemos un vistazo al código, y creo que lo entenderás mejor. Entonces aquí está el archivo de clasificación DuPuy que configuramos para el par de lecciones anteriores. Tiene un ítems aleatorios listos, que es una matriz de 20 elementos de largo, cada uno de ellos generado aleatoriamente. Entre menos 50 y 100 es encontrar aquí una nueva función de la misma, llamada Wick Sorts. Protege en la lista de ítems y tomar en la lista de ítems es muy importante porque
vamos a estar llamándolos dentro de la función porque es regresiva. También he llamado rápido sort down aquí para asegurarme de que es la función a la que se llama cuando ejecutamos la ordenación del archivo alto. Muy bien, genial. Entonces primero lo primero, como con el tipo de fusión iban a decir si la longitud de los artículos es mayor que uno, porque como fueron subdivididos, queremos hacer stock. A continuación seleccionamos nuevamente el índice privado. Esta la selección del índice de Pivot podría ser una función complicada en sí misma para tratar de encontrar el lugar correcto para ello. Pero en nuestro caso, y para fines de demostración, lo
vamos a tener como la longitud de la tarifa dividida por dos tan centro muerto. A continuación creamos artículos más pequeños y más grandes se levantan sobre. Empezaron como vacíos y les estarán poblando naturaleza. iTunes más grande es gente para grabar varietales. Fantástico. Entonces aquí es donde empieza a suceder la magia. Es un cuatro
I. Iba a ser el índice que va a mantener nuestro lugar y tú que era el valor
fuera de la cosa que vamos a estar enumerando grupo lo numerador a través de brillantez de ítems. Entonces otra vez, yo sosteniendo el valor que contiene el índice val. Dices que no soy gente, tampoco he indexado porque no queremos que los covets reales estén cambiando. Entonces si el arco es menos de glaseados fuera dentro de la siguiente, dos estaban haciendo la comparación para ver si es genial para ellos o menos de ocho índice on, porque el valor es menor en la siguiente, tómalo y ponlo en artículos más pequeños y y luego si es no menos que pero es de hecho mayor que o sobre no igual a, porque estamos haciendo ese chequeo allá y seguro más. Más grande Iceman's hace un valor colgante fantástico, por lo que esto no sería una matriz recursiva sin un cool recursivo. Simplemente lo atravesaría una vez, y tienes un poquito más especie de nosotros. En realidad, sería sólo un elemento único que se atasca en las redadas de suburbios clases nazis, artículos
más pequeños. Entonces esencialmente, lo que está pasando ahí es Vamos a ser rápido abastecimiento cada respuesta individual cada separado todo el camino hacia abajo. Por lo que cada uno separa elige su propio índice de codiciado. Crea una pequeña licencia y un rayo de glaseado más grande y cada uno de estos luego consigue algún tipo de ese tipo Francia. Se clasifica a grande, surge señora Bueno, y luego finalmente, lo que vamos a hacer es que vamos a decir ítems iguales a artículos más pequeños, más el de ella invierte más artículos más grandes. Entonces eso solo lo sutura todo junto al final. Entonces tenemos artículos más pequeños, y luego en el medio tenemos elementos de índice, y luego tenemos los ítems más grandes. Entonces, solo echémosle un vistazo desde arriba. Vamos a asegurarnos de que la longitud de cada uno de ellos sea No. Uno. Vamos a seleccionar un índice de pivote, declarar más pequeño y más grande Ice Marie y luego vamos a correr. Vamos a enumerar a través de los ítems en. vamos a meter en aumento más pequeño o más grande, dependiendo de dónde deban estar. Y por último, vamos a núcleo rápido, ordenar en cada uno de esos resúmenes. Echemos un vistazo rápido, ver si esto funciona. Tienen mi clasificación P. WiFi encendido. Yo lo voy a ejecutar, pensé, ordenando arriba. Y como pueden ver, tenemos un sin clasificar No hemos desclasificado más. 28 26 93 menos dos en después tenemos una especie completamente de tasa de menos 50 a 98. Fantástico. Sabíamos que nuestra matriz de la píldora funciona. Echemos un segundo vistazo a la visualización de nuevo. El visualizador no es todo tan contador por todo el rickerson que está pasando, pero es interesante ver y vamos. Entonces estamos asumiendo que el primitivo aquí es de cinco, y esos se cambian a su mayor o menor este más grande o más pequeño resúmenes también el tipo rápido de a veces llamado el intercambio de peticiones vendido, lo que creo es mucho nombre más apt para como realmente particionado y luego ordenar cada una de esas particiones diferentes. Ah, entiendes el tipo rápido de diminuto pero mejor en viejos ritmos en pelea en general. Muchas gracias por acompañarme en. Ten una cita fantástica.