Saltar al reproductorSaltar al contenido principal
  • hace 1 semana

Categoría

📚
Aprendizaje
Transcripción
00:00:00Buenas noches. Hola, buenas noches. ¿Cómo te encuentras?
00:00:05Pues bien, hasta ahorita.
00:00:08¿Qué tal? ¿Ya tuvieron tiempo de revisar nuestro módulo?
00:00:14Yo apenas lo estoy revisando. Está un poquito más pesado.
00:00:20Pero lo vamos a explicar el día de hoy. ¿Te parece?
00:00:24¿Qué complicaciones tuviste en el módulo 2? ¿Todo bien?
00:00:30¿Ve que me ayudó a configurar mi VS Code?
00:00:33Lo haga de cuenta. Cuando lo quería correr, tuve otro problema y no me dejaba correrlo.
00:00:39Me agarraba el anterior.
00:00:42Ahora sí que agarraba mi código anterior porque decía que había un error.
00:00:50¿Qué hiciste?
00:00:51No supe por qué fue, pero pues ya lo volví a hacer.
00:00:54Pues ahora sí que estaba haciendo ahí el código.
00:00:58Lo empecé a correr.
00:01:00Me marcaba error, lo volví a hacer.
00:01:03Y ya cuando lo quise correr nuevamente, este, me jaló el, ahora sí que mi código anterior que tenía.
00:01:10No sé por qué jaló el anterior.
00:01:11Pero me jalaba el anterior, el que hemos hecho de, ahora sí que es de las unidades pasadas.
00:01:20Claro, a lo mejor es porque a todos les pusiste el mismo nombre y los estabas abriendo, ¿no?
00:01:26No hubo, de hecho tenían diferentes nombres y le estaba poniendo de hecho el nombre de esta unidad.
00:01:35Pero no sé por qué me jalaba el otro código.
00:01:37Qué raro, porque no debería de marcarte un tipo de error, un tipo de error así, porque VS Code es muy, es muy, este, pues digamos que sensible a eso.
00:01:48Mira, por ejemplo, aquí está.
00:01:52Yo puedo correr varios SGL y aquí en la terminal me va a aparecer el formato, mira.
00:01:59Aquí yo le doy play.
00:02:00Y aquí me va a aparecer del que yo tengo seleccionado.
00:02:10Y ahí me va a empezar a ejecutar el código.
00:02:13Ok, a lo mejor es porque cuando tú, como esto es un, esto es algo que se compila, mira, por ejemplo, aquí sí le voy a poner este 8 salido, ¿no?
00:02:21¿Cómo funciona VS Code? ¿Cómo funciona C++?
00:02:24Además, ya te había explicado que esto es, que esto, este código que todos nosotros tenemos aquí, lo que hace primero es compilarse.
00:02:35Una vez que se compila, porque en realidad lo primero que hacemos es ponerle este que dice debug y después le damos uno que dice compilar y correr.
00:02:45¿Qué significa esto de buguear o hacer esto?
00:02:49Que esto se compila y se convierte en un archivo que entiende la máquina.
00:02:56Por eso es que tú agarras y cuando estás trabajando aquí, te vas a dar cuenta que te genera códigos como este que dice SGL modificado comentado punto exe.
00:03:08¿Qué quiere decir?
00:03:08Que de este código te creó un ejecutable.
00:03:11Y es lo que hacemos cuando le damos aquí en play, es que lo compilamos y lo ejecutamos.
00:03:22Cuando en teoría deberíamos de primero ejecutar, primero de buguearlo y después correrlo.
00:03:27Perdón.
00:03:29¿Ok?
00:03:29Ah, ya, sí.
00:03:30Entonces, este, a lo mejor se está ejecutando el mismo h, este, el mismo código punto exe en todos.
00:03:40Entonces, lo único que tenemos que hacer es, por ejemplo, este y darle aquí en debug file.
00:03:46Y ahí puedes escoger el que tú quieras, ¿no?
00:03:49Para poderlo compilar.
00:03:52¿Ok?
00:03:52Oye, ya sí.
00:03:54Sí, es bueno, a mí no me aparece así como tal, ya hasta que lo volví a cerrar y lo volví a abrir.
00:04:01Ya fue cuando me corrió, pero ya había hecho yo mis capturas ahora sí que de ahí.
00:04:06Ok.
00:04:06De el otro, bueno, de GBD, donde lo estaba haciendo porque dije, pues si no me deja ahí, lo voy a hacer en el otro.
00:04:13Y ya voy a checar después por qué no me dejaba y me jalaba el otro, este, el otro código anterior.
00:04:19Aquí, por ejemplo, aquí está el ejecutable del que yo acabo de compilar.
00:04:27Sí, de hecho ya me parece así y ya me aparecen como tres, este, uno, como dos con el mismo nombre, se podría decir.
00:04:36Igual me aparece así como modificado, pero sí, al principio me agarraban, ahora sí que el anterior código y pues nada que ver con este que teníamos que hacer.
00:04:45Eso es lo que estaba sucediendo, que se estaba agarrando el anterior en lugar de este nuevo.
00:04:53Exacto, ajá, sí, porque ya cuando le daba yo copilar, me jalaba el menú del anterior código.
00:05:00Ok.
00:05:01O sea, yo quería copilar el que estaba haciendo y no sé por qué me jalaba el anterior.
00:05:06En definitiva, yo dije, no, esto no es.
00:05:09Estaba escutado el código anterior.
00:05:12Pero bueno, sí lo terminaste y sí lo entregaste, ¿verdad?
00:05:18Sí, sí, se lo mandé porque le digo que al final se lo mandé, pero pues ya con el de GBD, que fue el que, pues, después te llámelo, sé.
00:05:26Y ya salí de la puerta.
00:05:28Y ya salí de la puerta.
00:05:29Y ya salí de la puerta.
00:05:30Y ya salí de la puerta.
00:05:31Exactamente a la segura y no arriesgarle tanto.
00:05:34Claro.
00:05:35Ok, Luz.
00:05:37Bienvenido este compañero, este acaba de conectarse Francisco y Rodrigo.
00:05:44Bienvenidos.
00:05:44Iniciamos en tres minutitos más, esperando se conecten más de nuestros compañeros.
00:05:49Igual, José, bienvenido.
00:05:50Y acabo de pegar aquí en la, este, en el chat de la sesión, el link para que se registren su asistencia de esta semana, por favor.
00:06:01Si son tan amables.
00:06:04Porque créanme que hay mucho que platicar para esta unidad.
00:06:08Mucho, mucho, mucho.
00:06:09Y mientras, este, pues ya se conectó, este, Francisco, José, Rodrigo.
00:06:23¿Qué tal su experiencia en el módulo 2?
00:06:26Cuéntenme, por favor.
00:06:29¿Cómo les fue?
00:06:33Francisco, José, Rodrigo.
00:06:36¿Me escuchan?
00:06:39Bueno, ya se fue Francisco.
00:06:48Rodrigo, José, ¿qué tal su experiencia en la unidad número 2?
00:06:52Antes de que empecemos con nuestra unidad número 3, cuéntenme, por favor.
00:07:06No, nada.
00:07:06Yo creo que les voy a, les voy a obligar a participar.
00:07:14Si no, les voy a bajar un punto, van a ver.
00:07:22Bueno.
00:07:24Iniciamos en un minuto más, esperando se conecten otro de nuestros compañeros.
00:07:29Nosotros apenas tenemos 5, somos muy poquitos.
00:07:32Así es que vamos a empezar.
00:07:33Y curiosamente, esta es una unidad muy complicada.
00:07:36Y van a ver por qué.
00:07:37Ricardo, muy buenas noches.
00:08:06Entonces, vamos a iniciar ya contigo nuestra sesión síncrona número 3, de nuestra semana número 3.
00:08:12¿Qué les parece que empezamos compartiendo nuestra pantalla?
00:08:18Me dicen, por favor, si se ve completa.
00:08:22Y vamos a empezar a trabajar poco a poco esta pantalla.
00:08:28Ok, esta unidad.
00:08:29Vamos a poner a momento a poner esto.
00:08:33Y empezamos.
00:08:37Primeramente, nuestro módulo 3 se llama estructuras no lineales.
00:08:41Es curioso que en el módulo 3, pues precisamente es aquí donde se empiezan a ver todo lo que vimos en el módulo 2,
00:08:49que eran lo que nos dejaron a nosotros en nuestras tareas, que son los árboles, el concepto de árboles, las operaciones con los árboles.
00:08:58Y también hay algo muy, muy interesante, ¿no?
00:09:04Que son los métodos de ordenamiento.
00:09:07¿Ok?
00:09:08Y ya hablamos desde el método de ordenamiento, que es la burbuja, el quicksword, el shellsword, el radix.
00:09:14Entonces, pues existen por montículos, mezcla indirecta, mezcla natural.
00:09:20Existen muchísimos diferentes métodos de ordenamiento.
00:09:24Y aquí vamos el día de hoy a evaluar cada uno de estos.
00:09:28¿Ok?
00:09:28Y a qué se refiere el concepto del método de ordenamiento y en qué consiste.
00:09:33Entonces, prácticamente en esta unidad vemos todos los conceptos de lo que son las estructuras no lineales.
00:09:39Lo que estuvimos viendo la vez pasada, el módulo pasado.
00:09:45Y anexo a los métodos de estructuras no lineales están los métodos de ordenamiento.
00:09:52¿Ok?
00:09:54Eso es lo que nosotros vamos a ver en esta unidad número 3.
00:10:01¿Vale?
00:10:02Hasta ahorita, alguno de los que están conectados ya repasó la unidad.
00:10:07¿Ya tuvo tiempo de observar de qué trata?
00:10:14Bueno, si no, vamos a iniciar de una vez con ella.
00:10:20Y se inició el día 24, es decir, el día de ayer y termina el 2 de diciembre.
00:10:24Vamos muy rápido para serles sinceros en este bloque.
00:10:30Termina el 2 de diciembre, inició el 24.
00:10:33Para esta unidad nos plantean diferentes elementos.
00:10:36Tenemos como primer elemento, ya sabemos, nuestro foro de planeación.
00:10:42Aquí ustedes encuentran cómo es todo lo que se ve en esta unidad.
00:10:48Van a poder descargar el plan de trabajo.
00:10:50También lo tienen ahí, en este módulo.
00:10:53También van a encontrar las grabaciones de las sesiones síncronas, semana por semana,
00:10:57para que ustedes la puedan verificar.
00:11:00Anexo a eso, el material adicional de esta sesión.
00:11:06Que por favor, de verdad, si tienen tiempo, verifiquenlo, porque ya saben que siempre nos ayuda muchísimo el material adicional.
00:11:15¿Qué es lo que tenemos para esta unidad?
00:11:17En esta unidad 3 ya tenemos muchas cosas muy interesantes.
00:11:22Uno, los códigos de ejemplo, aquí vienen todos los métodos de ordenamiento, habidos y por haber.
00:11:32Estos son los métodos de ordenamiento, desde los métodos de ordenamiento por burbuja, que es el más sencillo en que consiste,
00:11:55lo vamos a estar explicando, hasta el Shell Sort.
00:12:00¿Ok?
00:12:00Todo esto lo encuentran ahí en materiales adicionales, un podcast de esta unidad, los apuntes para poder llevar a cabo esta unidad,
00:12:12que estos son desarrollados por mí.
00:12:14También van a tener aquí una presentación de qué son las estructuras de datos no lineales.
00:12:20Entonces, todo correspondiente a esta unidad y, muy importante, el código de nuestra tarea auténtica.
00:12:30¿Ok?
00:12:31¿Por qué les digo muy importante?
00:12:33Ahorita lo vamos a ver.
00:12:34Y por último, tenemos la planeación de todas nuestras sesiones síncronas.
00:12:38Ya sabemos qué día son y cuándo nos toca, ¿no?
00:12:41Entonces, aquí lo tenemos perfectamente bien planteado, ¿no?
00:12:47Igual el link.
00:12:51Pues ya que tenemos esto, vamos a pasar a explicar la tarea auténtica.
00:12:57De los que estamos conectados, chicos, ¿quién de ustedes ya revisó de verdad?
00:13:03Perdón por la molestia de insistir tanto.
00:13:06¿Quién ya revisó algo de la tarea auténtica?
00:13:09Nadie ha revisado.
00:13:17Yo apenas lo estaba como que revisando.
00:13:21Ok.
00:13:22Pero a fondo no lo he revisado.
00:13:24Sí, me dio lo que, pero no lo he revisado así como tal a fondo.
00:13:29Ok.
00:13:30¿Alguien más que lo haya visto?
00:13:32Por ejemplo, Alma, Carlos.
00:13:33Carlos, Carlos siempre checa muy bien las cosas.
00:13:37Francisco, María Joaquina, Ricardo, Rodrigo.
00:13:42¿No han tenido el tiempo?
00:13:42Yo ya lo leí, profesor.
00:13:44¿Ya lo leíste?
00:13:45Sí.
00:13:47Perfecto.
00:13:47Entonces, cuéntame qué encontraste aquí.
00:13:53Que hay muchas cosas muy interesantes.
00:13:54¿Y qué no encontraste?
00:13:59Híjole, ahí sí me agarré en curva.
00:14:02Nada más, este, tendríamos que...
00:14:07Ah, bueno, vi el video que decía, este, para resolver la tarea auténtica que no tiene nada que ver con esta tarea.
00:14:18Este lo vio.
00:14:20Y de lo que leí, pues, este, como siempre, es integrar y mejorar el código, el código fuente.
00:14:34Aunque el que estaba viendo que subió usted, este, como le diré, no sé si se trate del mismo.
00:14:46Es que, vuelve a mencionar vectores y nosotros ya modificamos los vectores.
00:14:52Exactamente.
00:14:53Pero fíjense algo que tú dijiste muy, muy claro.
00:14:57En todas las indicaciones, a diferencia de la unidad 1 y de la unidad del módulo 1 y del módulo 2,
00:15:04nos daban el código fuente.
00:15:06Aquí, en ninguna parte, lo pueden ustedes descargar.
00:15:16Exacto.
00:15:17Te dice, modifica, actualizar, almacén en el código.
00:15:23Pero, no.
00:15:24Ah, pero, bueno, no sé si usted mandó uno los apuntes que nos mandó.
00:15:27Por eso yo tuve que solicitar a la universidad, oye, le estás solicitando a mis estudiantes que te modifiquen este código.
00:15:36¿Dónde está?
00:15:40Ya me enviaron el código y es el que yo les puse aquí.
00:15:44Y como muy claro lo acaba de comentar este, Carlos, muy atinadamente, nos vuelven a poner aquí un vector.
00:15:56¿Está correcto?
00:15:58¿Por qué?
00:15:58Porque nosotros en esta tarea vamos a trabajar sobre este.
00:16:03Vamos a explicarlo, ¿les parece?
00:16:06Sí.
00:16:07Muy bien.
00:16:08Vamos a, primeramente, a trabajar.
00:16:11Ya saben que voy a trabajar con el código, con esto, y lo voy a llevar al código.
00:16:17¿Ok?
00:16:17Para que lo estemos viendo las dos pantallas sin ningún problema, ¿les parece?
00:16:24Sí, gracias.
00:16:25Perfecto.
00:16:26Indicaciones.
00:16:27Análisis de funcionalidades.
00:16:29Identifica el método de ordenamiento utilizado implícitamente en la estructura de datos no lineal.
00:16:36Map.
00:16:37STD.
00:16:37Está impedido.
00:16:38Vamos a buscar esa.
00:16:40Es este.
00:16:42Entonces, tenemos que buscar map.
00:16:45STD.
00:16:46Pedido.
00:16:46Es este.
00:16:49Aquí, obviamente, es algo muy, muy importante.
00:16:54Aquí no se utiliza un método de ordenamiento.
00:16:58¿Saben qué es un método de ordenamiento?
00:17:00¿Alguno de ustedes?
00:17:07¿Quién ha utilizado Excel?
00:17:09Adelante, por favor.
00:17:13Buenas noches, profesor.
00:17:15Buenas noches.
00:17:15¿Sí me escucha?
00:17:16Sí.
00:17:17Ah, por lo que leí es el método burbuja.
00:17:23Ese es uno de los...
00:17:24Que hace un ordenamiento de las listas.
00:17:27Perfecto.
00:17:28Sí, esto es uno de los diferentes tipos de ordenamiento.
00:17:33Entonces, como nos...
00:17:34Para que entendamos que es ordenamiento, es como nosotros vamos a hacerle para que se acomoden
00:17:39las cosas y yo las pueda, pues, buscar.
00:17:43Ya sea de mayor a menor, de menor a mayor o, pues, de la A a la Z.
00:17:49Como nosotros queramos.
00:17:51Eso es ordenar.
00:17:53Si tienes una lista de mil, mil, este, mil números, todos revueltos, ¿cómo le haces
00:17:58para que esos mil números, pues, estén del uno al mil?
00:18:03Del mayor al menor.
00:18:05Eso es un método de ordenamiento.
00:18:08¿Ok?
00:18:09Existen muchos diferentes tipos de métodos de ordenamiento.
00:18:15Y aquí nos están diciendo, identifica el método de ordenamiento implícito en pedidos map.
00:18:24Lo primero que tenemos que identificar es que esto es un árbol.
00:18:31¿Ok?
00:18:32Esto es muy, muy interesante.
00:18:36¿Ok?
00:18:37Al ser un árbol, por ejemplo, si yo me voy aquí en map, en pedidos, yo me, por ejemplo,
00:18:42¿dónde se busca, no?
00:18:43Aquí.
00:18:45Aquí se va a empezar a buscar.
00:18:47Cuando nosotros empezamos, nosotros aquí, hay que entender que un árbol no puede utilizar
00:18:53un algoritmo de ordenamiento lineal simple.
00:18:58¿Cuál es el modelo?
00:18:59¿Cuáles son los algoritmos de ordenamiento lineal simple?
00:19:02El que acaba de comentarnos ahorita correctamente, Alma, que es el método de burbuja o el método
00:19:10de inserción, eso es un método de ordenamiento lineal simple, ¿ok?
00:19:17En cambio, como esto es un, como esto es, ya lo vimos aquí, es un árbol, es decir, a esta
00:19:27estructura que nosotros tenemos aquí, esta estructura yo ya se los había dicho, es un
00:19:33árbol de búsqueda, es una estructura de datos llamado árbol de búsqueda, ¿ok?
00:19:39Álbol de búsqueda balanceado.
00:19:40¿Qué quiere decir?
00:19:42Ya lo habíamos explicado cómo se refiere que se va distribuyendo esto por niveles como
00:19:48si fuera un grafo, como si fuera un, este, un, ¿cómo se llaman a estos, de los puestos
00:19:57de las empresas?
00:20:00Aquí está el gerente y todos los que dependen, pues así más o menos se ordena uno de estos,
00:20:04¿ok?
00:20:05Entonces, el método.
00:20:07Como las geratías.
00:20:08Ándale, algo, ándale, exactamente algo así.
00:20:11Esto ocupa un método, el método de ordenamiento que se ocupa aquí, es un método que se llama
00:20:17un método de, este, búsqueda binaria, balanceada.
00:20:33Esto es el método de búsqueda que siempre por default, al haber definido esto como un
00:20:40árbol, se va a generar, ¿ok?
00:20:43¿Estamos?
00:20:44¿Qué quiere decir?
00:20:46Cada vez que ustedes insertan un nuevo pedido a este elemento, cada vez que yo inserto un
00:20:52nuevo pedido, dentro de esta función, aquí ya lo tengo, cada vez que yo inserto un nuevo
00:20:59pedido aquí, el árbol coloca el ID en la posición correcta para poder mantener el
00:21:05orden.
00:21:06Eso, pues, hagan de cuenta que es automáticamente que yo al insertar el dato me dice, a ver,
00:21:16este, este va acá y ahí me lo coloca.
00:21:19Es decir, conforme se va insertando, se va ordenando.
00:21:23¿Qué impacto tiene esto en la eficiencia?
00:21:29Porque también nos piden esto, ¿no?
00:21:32Ya lo identificamos.
00:21:33Perfecto.
00:21:36Ahora, dice, explica cómo este ordenamiento permite una búsqueda eficiente de pedidos
00:21:43por ID.
00:21:43¿Por qué?
00:21:45Pues, porque cada vez que uno inserta un nuevo pedido, este árbol lo coloca por el
00:21:52ID en donde corresponde.
00:21:54¿Y cómo contribuye a la logística?
00:21:57Simple y sin sencillamente.
00:22:00Esto es una búsqueda eficiente.
00:22:03Gracias a que esto es un árbol, gracias a que esta estructura es un árbol, su búsqueda
00:22:18no es secuencial.
00:22:20¿Qué quiere decir consecuencial?
00:22:22O sea, su complejidad no es secuencial.
00:22:24Vamos a ponerle aquí así, ¿no?
00:22:27Vamos a ponerle abajo.
00:22:28Al ser esto un árbol, no tengo yo una búsqueda secuencial.
00:22:37¿A qué me refiero con una búsqueda secuencial?
00:22:40Que para poder encontrar el ID 10.000, por ejemplo, no tengo que recorrer del 1 al 10.000
00:22:48para poderlo llegar, para poder llegar a él.
00:22:51Esto es secuencial y el árbol no es secuencial.
00:23:00¿Ok?
00:23:02¿Qué estructura tiene este método?
00:23:06Este método, su complejidad, en lugar de ser secuencial, es algo que nosotros le llamamos
00:23:13logarítmica.
00:23:14¿Qué quiere decir es O logaritmo natural de N?
00:23:19¿Qué quiere decir esto?
00:23:21Van a decirme ahí.
00:23:22Vamos a ver.
00:23:23¿Por qué no me lo ponen aquí?
00:23:26¡O!
00:23:28¡Ay, que a mí se me salta!
00:23:31O logaritmo natural de N.
00:23:33Esto es logaritmo natural de N.
00:23:39¿Qué quiere decir?
00:23:41Que para poder encontrar, en lugar de haber recorrido, aquí se recorren mil pedidos, aquí
00:23:48se recorren los mil elementos, ¿no?
00:23:57Para poder llegar ahí.
00:23:59En un árbol, no.
00:24:03En un árbol de recorrerse mil elementos, solamente tendría que hacer aproximadamente 10 comparaciones.
00:24:13¿Por qué va?
00:24:14¿Creen que nada más tenga que hacer 10 comparaciones?
00:24:17Porque si nosotros mapeamos esto en un ejemplo, pues ¿qué quiere decir?
00:24:26Que si tengo ahí mil elementos, son 2 a la 10, más o menos, que aquí le voy a poner, no puedo poner exponente, pero digamos 2 a la 10, más o menos, me daría 1024.
00:24:42Entonces, ya me pasé, inclusive, de los elementos.
00:24:49Entonces, ¿cuántas comparaciones tengo?
00:24:52Que hace 10.
00:24:53Entonces, es mucho más eficiente, porque en lugar de recorrer mil elementos, aquí solo recorro, recorrería 10.
00:25:07Entonces, es más fácil contar del 1 al 10 que contar del 1 al mil, ¿verdad?
00:25:11Y bueno, ¿qué es lo que es?
00:25:16¿Qué beneficio nos da esto?
00:25:18Imagínense que si tuviéramos 10 mil pedidos o 10 mil pedidos.
00:25:24100 mil pedidos.
00:25:26Todavía vámonos más.
00:25:28Entonces, ¿cuánto tiempo tardaría la máquina en buscar pedido por pedido esos 100 mil o ese millón de pedidos?
00:25:36Si estamos hablando de empresas grandes, tendría que recorrer en cada búsqueda 100 mil veces o un millón de veces, hasta recorrer todos los elementos.
00:25:48Entonces, eso es una pérdida de tiempo enorme.
00:25:52Entonces, de ahí el impacto del uso de map, porque map garantiza que esto, el uso de este map, garantiza que nuestro sistema no se vuelva lento a medida que crece.
00:26:08A lo mejor al principio con 3 que ustedes capturan van a decir, o con 2, ay, profe, no, no, no se ve lento, funciona muy rápido.
00:26:19Pero si capturara 100 mil o un millón o mil o 100, ya empezaría a saber la lentitud que tiene el no haber ocupado un método como este que nosotros tenemos, que es un árbol.
00:26:34Entonces, lo primero que nos pide son esto, identificar el método de ordenamiento, ya lo identificamos, como este ordenamiento permite una búsqueda eficiente por ID, ya lo vimos.
00:26:49Y ahora nos dice, examina la función actualizar almacén y comprende su propósito.
00:26:55Ok, entonces, identifica que la búsqueda de almacenes por ID en el vector de almacenes podría ser ineficiente si hay muchos almacenes.
00:27:09Obviamente, reconoce la necesidad de ordenar los almacenes por ID antes de implementar una búsqueda eficiente.
00:27:19Ok, perfecto.
00:27:22Entonces, ahora, ¿qué es lo que nosotros tenemos que hacer aquí en nuestra función de actualizar almacén?
00:27:29Primero vamos a irnos a la función de actualizar almacén.
00:27:35Ok.
00:27:37Aquí lo teníamos, por acá andábamos con actualizar almacén.
00:27:44Acá está.
00:27:50Ojo.
00:27:53Nosotros tenemos aquí nuestro actualizar almacén.
00:27:56Ojo, aquí yo ya se los puse comentado.
00:27:59Y aquí tendríamos ustedes que, cómo hacerle para poderlo manifestar.
00:28:04Obviamente aquí ya lo tienen comentado.
00:28:06Ok.
00:28:06Para poder actualizar almacén, ojo, primeramente tendríamos que nosotros buscar, pues, que los vectores, a diferencia de un mapa, si son estructuras lineales.
00:28:21Es decir, tengo que, están uno tras de otro, es como una filita de la de las tortillas.
00:28:27Y ahí está, una persona tras de otra, tras de otra, tras de otra, tras de otra.
00:28:31Eso es un vector.
00:28:34Veanlo como un almacén grandoto, totototote, que están todos así puestos.
00:28:39Ok.
00:28:40Y esto es lo que nosotros vamos aquí a modificar.
00:28:45¿Qué es lo que nos dice?
00:28:49Para ordenar primeramente, necesitamos decir qué método nos convendría a nosotros ocupar para poder almacenar, para poder ordenar estructuras lineales.
00:29:03Por eso es que, Carlos, aquí nos volvieron a poner un vector, para que pudiéramos conocer lo que son los métodos de ordenamiento lineales.
00:29:13¿Ok?
00:29:17¿Hasta ahí? ¿Dudas? ¿Preguntas?
00:29:20Y como es una búsqueda lineal, como esto es un vector, esto que tengo aquí, es un vector.
00:29:30Lo hago chiquito para que lo pueda recorrer más fácilmente.
00:29:35Como esto de aquí es un vector, es una estructura lineal.
00:29:40¿Qué quiere decir?
00:29:41Esto
00:29:43Si es secuencial.
00:29:50¿Ok?
00:29:51¿Qué quiere decir?
00:29:53Si es una línea de datos.
00:29:54Entonces, aquí sí puedo aplicar un método de ordenamiento interesante.
00:30:00Y ustedes deben de decidir, como Alma Cristina estaba comentando,
00:30:04¿Qué método de ordenamiento lineal puedo yo ocupar?
00:30:08¿Ok?
00:30:10¿Ok?
00:30:10Ustedes van a decir, ¿sabes qué?
00:30:14Si yo ocupo un método, el más fácil, porque se me hace sencillo implementarlo, método de burbuja.
00:30:22Ok, no, pues yo quiero poner ahí un método radix.
00:30:27No, pues yo quiero un quicksort.
00:30:29No, pues yo quiero un insertion sort.
00:30:31Primeramente, pues tenemos que ver cuál nos conviene y por qué.
00:30:37Ustedes deberán de seleccionar qué método de ordenamiento van a picar acá.
00:30:44¿Y dónde lo van a poner?
00:30:47Lo van a poner en esta función que se llama actualizar almacén.
00:30:54¿Ok?
00:30:58¿Vale?
00:31:00Y aquí es donde ustedes van a empezar a ordenar.
00:31:03¿Para qué?
00:31:03Pues para que nos quede, pues más o menos, algo como este que yo ya tengo aquí ordenado.
00:31:09¿Ok?
00:31:10Para poder determinar qué método de ordenamiento, pues primeramente necesitamos repasar cuáles son los métodos de ordenamiento.
00:31:20Para eso me atreví a compartir con ustedes una presentación, un video que estuve buscando, que creo que se me hace muy muy interesante para que lo podamos ver.
00:31:32¿Les parecería que lo explicara, que se los mostrara?
00:31:37Sí, pero sí.
00:31:39Perfecto, es este.
00:31:41Díganme por favor si se ve claro y sobre todo si se escucha.
00:31:48Ok, y vamos a hacerlo en modos cine.
00:31:54Hoy voy a explicar fácilmente 10 de los algoritmos de ordenación más populares, así como las ventajas y desventajas de cada uno.
00:32:01Empecemos.
00:32:01Bobless es uno de los algoritmos de ordenación más populares, probablemente porque es el más sencillo.
00:32:10Bobless tiene un índice que recorre toda la lista.
00:32:12Si el número en el que está es mayor que el siguiente elemento, los cambia y luego avanza.
00:32:17Luego repite esto hasta que cada elemento de la lista sea resuelto correctamente.
00:32:21Y, como es lógico, el método de ordenación por burbuja tiene un rendimiento terrible y solo se utiliza para enseñar cómo funcionan los algoritmos de ordenación.
00:32:29Por lo tanto, los algoritmos suelen estar determinados por la complejidad del tiempo y el espacio.
00:32:33No, Einstein, no ese tiempo y espacio.
00:32:36Es decir, ¿cuál es el mejor y el peor escenario posible en cuanto a la rapidez con la que puede ir, así como la cantidad de espacio que consume?
00:32:42Por lo tanto, el peor caso para el método de ordenación por burbuja es o grande de n al cuadrado, mientras que el mejor caso es o grande de n esto es lo que significa en inglés.
00:32:51n se entiende universalmente como el número de elementos de la lista que quieres ordenar.
00:32:55Lo siento, mi Python lo está mostrando.
00:32:57En el mejor de los casos, la matriz ya está ordenada.
00:33:00Por lo tanto, solo necesitamos un bucle a través de todos ellos para determinarlo.
00:33:04Pero en el peor de los casos, tendríamos que realizar una operación exponencial a través de esta matriz para que se ordene.
00:33:10Lo que significa que si hubiera 5 elementos que deban ordenarse, tendríamos que hacer más de 25 operaciones para que se ordenen.
00:33:17Así que hazte un favor y sáltate esta.
00:33:23Perfecto.
00:33:23Se llama precisamente método de burbuja, porque lo que hace es recorrer del primer elemento y determinar si este elemento es mayor que el que está arriba, lo muevo.
00:33:37Si este es menor, así empieza como una burbujita a mover.
00:33:41Y empieza a mover, a hacer eso por cada diferente elemento de nuestro arreglo.
00:33:46Por eso es que se dice que es el peor método de ordenamiento, el que más tiempo y más complejidad computacional le da a nuestras computadoras.
00:33:59Continuamos con el método de selección.
00:34:01La ordenación por selección se conoce como un algoritmo de ordenación por comparación in situ y, en realidad, es bastante fácil.
00:34:19Este algoritmo divide la matriz desordenada en una sublista ordenada que comienza vacía y los elementos restantes para ordenar, que es todo por ahora.
00:34:27Luego, el algoritmo recorre la matriz desordenada uno por uno en busca del número más pequeño.
00:34:32Una vez que la matriz se ha revisado por completo en esta iteración, coloca el número más pequeño al final de la sublista.
00:34:39Esto sucede hasta que todos los elementos desaparecen y la matriz está completamente ordenada.
00:34:43Por lo tanto, la ordenación por selección tiene un peor caso de ON grande al cuadrado, así como un mejor escenario de ON grande al cuadrado.
00:34:50La coherencia significa que, al igual que la ordenación por burbuja, la ordenación por selección no es ideal en absoluto.
00:34:55Y, por lo que parece, podría decirse que es peor, ¿verdad?
00:34:58Bueno, la ordenación por selección siempre parece superar a la ordenación por burbuja en la mayoría de los escenarios, pero hay mejores opciones.
00:35:04Así que sigamos adelante.
00:35:06Y esta diferencia del método de burbuja, el método de selección, lo que hace es que va agarrando el elemento, busca el elemento menor en todo el arreglo y lo coloca al inicio.
00:35:21Y después empieza a buscar el elemento que le sigue en todo el arreglo y lo coloca al inicio.
00:35:26Entonces, está haciendo estos va y venes.
00:35:29¿Ok? Por eso se llama selección, porque va seleccionando elemento por elemento y lo va acomodando donde corresponde.
00:35:36A diferencia del de burbuja, que lo va comparando con el de arriba y lo pone.
00:35:40Y lo va comparando con el siguiente y lo pone, sin importar si es mayor o menor.
00:35:44Bueno, sin importar el tiempo que va tomando.
00:35:47La ordenación por inserción es muy similar a la ordenación por selección.
00:35:52Este algoritmo de ordenación realiza una comparación constante.
00:35:56Así es como funciona.
00:35:57La ordenación por inserción, como la ordenación por selección, crea dos matrices, una ordenada y otra sin ordenar.
00:36:03Recorre cada elemento uno por uno en la matriz sin ordenar.
00:36:06Con el elemento en el que se encuentra, determina a qué parte de la lista ordenada pertenece el elemento iterando sobre cada elemento para ver si el número está entre ellos.
00:36:14Ahora bien, el peor escenario es o n grande al cuadrado, mientras que el mejor caso es o n grande.
00:36:19Lo que ocurre con la ordenación por inserción es que se ha implementado en C++ con solo tres líneas de código.
00:36:25Y lo gracioso es que este es el algoritmo de ordenación que usas cuando sostienes un montón de tarjetas y necesitas ordenarlas.
00:36:30Para listas muy pequeñas, esta podría ser una gran opción.
00:36:33Pero cuando buscas una grande, no.
00:36:39MOR es un algoritmo de ordenación basado en comparaciones muy popular y efectivo.
00:36:43El algoritmo de inserción, si bien es un algoritmo muy fácil de implementar, es uno de los algoritmos más utilizados.
00:36:56Y sería adecuado si nosotros, por ejemplo, en nuestro vector, tuviéramos pocos elementos.
00:37:05En nuestro vector de almacén tuviéramos pocos elementos.
00:37:08En cambio, si nosotros tuviéramos muchísimos elementos, pues ya dejaría de ser un método eficiente.
00:37:16Seguiríamos teniendo el o n grande al cuadrado.
00:37:19Entonces, eso sería un método no tan adecuado.
00:37:25Encaja en una categoría que verás mucho en este video bajo los algoritmos de divide y vencerás.
00:37:32Primero, toma la matriz desordenada y divídela en la unidad más pequeña, que generalmente es solo un elemento.
00:37:38Luego comparas cada elemento con la matriz contigua y ordenas y fusionas la lista.
00:37:42Continúa hasta que tengas una matriz que esté completamente ordenada.
00:37:46Ojo, este método de ordenamiento es el, si yo tuviera que hacer su programa, es el que yo implementaría.
00:37:55¿Qué es lo que hace?
00:37:57Agarra y subdivide el arreglo en subarreglos y va comparando los menores y los va acomodando en esos subarreglos que tiene.
00:38:04En lugar de tener 10 mil elementos, a lo mejor los divido en bloques de 10 y ordeno esos 10.
00:38:11Y después esos 10 los comparo con el otro 10 y así voy haciendo más pequeño hasta llegar a tener todo el arreglo ordenado.
00:38:20Eso es lo que se hace como funciona el Merge Sort.
00:38:24Continúa hasta que tengas una matriz que esté completamente ordenada.
00:38:27More tiene un rendimiento en el peor de los casos de O grande N log N.
00:38:31Esto es lo que significa.
00:38:32N, por supuesto, representa la cantidad de números en nuestra lista.
00:38:36Log N representa la cantidad de veces que se divide N entonces.
00:38:39Si nuestra matriz desordenada es 16, entonces log N sería 4.
00:38:44Dado que podemos dividir 16 hasta 1 en 4 y 3.
00:38:50Y el mejor de los casos es Omega N log N lo que significa que no hay nada más rápido que esto.
00:38:59Básicamente, tanto si tu lista ya está un poco ordenada como si es completamente aleatoria,
00:39:04Mercur tarda más o menos el mismo tiempo en hacer su trabajo, lo que la hace fiable y eficiente.
00:39:08Pero donde estos algoritmos de divide y vencerás realmente destacan es en la capacidad de hacer cosas en paralelo.
00:39:14Dado que las cosas se dividen en muchísimas sublistas, dividir, ordenar y luego fusionar puede hacer que las cosas sean exponencialmente más rápidas.
00:39:22En realidad, es un algoritmo realmente asombroso.
00:39:24Quicksort también es uno de los algoritmos más populares que también utiliza la estrategia de ordenación de divide y vencerás.
00:39:33Los lenguajes de programación como JavaScript, Ruby y PHP utilizan Quicksort en sus funciones de biblioteca estándar.
00:39:39¿Es eso un flex o algo así?
00:39:40Quicksort funciona de forma similar a la ordenación por fusión, pero requiere algo llamado pivote.
00:39:44En la matriz sin ordenar, elige un número para que sea tu pivote.
00:39:47Este podría ser el primer número, el último número o el número del medio.
00:39:51El número que se elige como pivote se utiliza para comparar todos los valores de cada lista, menores o iguales que el pivote o mayores que el pivote.
00:40:01Luego se elige un punto pivote dentro de la lista recién creada y se realiza otra comparación si es mayor o menor.
00:40:07Una vez que se hace esto de forma recursiva en todas las submatrices, se considera ordenado.
00:40:11Por lo tanto, el peor de los casos es O grande N al cuadrado, mientras que el mejor caso es O grande y log N, pero como probablemente puedas adivinar,
00:40:19obtener ese pivote es un factor extremadamente importante en el rendimiento de este algoritmo.
00:40:23Por lo tanto, algunos hacen el primer, el medio o el último elemento.
00:40:27Otros simplemente lo hacen de forma aleatoria y luego otros eligen el medio de tres muestras pequeñas para tener una idea general.
00:40:33De lo contrario, se ordena rápidamente.
00:40:35Es una cabra.
00:40:36Hipsort es otro algoritmo basado en la comparación, también conocido como ordenación por selección, que utiliza la estructura de datos correcta.
00:40:45Bueno, sí, pero primero hablemos de la estructura de datos HIP en informática.
00:40:49HIP es una estructura de datos basada en árboles donde se rellenan todos los niveles excepto el más bajo y se rellena de izquierda a derecha.
00:40:55A menudo utilizado en señales de prioridad, el montón máximo es el mismo concepto,
00:40:59pero donde los números más altos comienzan en la parte superior y los números más bajos se desplazan hacia abajo.
00:41:04Esta estructura de datos se utiliza todo el tiempo para proporcionar operaciones rápidas, así como una excelente gestión de prioridades.
00:41:10Vale, así es como funciona el ordenamiento por montículos.
00:41:12El ordenamiento por montículos tomará una matriz sin ordenar y luego comenzará a construir un montón máximo en un proceso llamado EAPIFY.
00:41:18Lo sé, es muy creativo.
00:41:20Este proceso validará constantemente si el árbol sigue las directrices adecuadas sobre cómo funciona un montón máximo.
00:41:25Una vez construido el árbol, el elemento superior cambia con el elemento del final.
00:41:29A continuación, el montón se reconstruye y los números vuelven a cambiar.
00:41:32Se repite hasta que se ordenan.
00:41:34Esto significa que el peor y el mejor de los casos es OGRANDE y LOGN casi exactamente como el ordenamiento por inserción,
00:41:41pero no realiza un escaneo lineal de números sin ordenar, sino que utiliza la estructura de datos que proporciona.
00:41:47Vale, eso ha sido mucha explicación.
00:41:50Vale, el ordenamiento por conteo es bastante gracioso.
00:41:54Así es como funciona.
00:41:55El ordenamiento por conteo consta de tres matrices.
00:41:57La matriz desordenada, la matriz de conteo, también conocida como colección, y la matriz de salida.
00:42:02Primero, definimos el valor máximo en la matriz.
00:42:05Esto define el tamaño de la matriz de conteo.
00:42:07Itera sobre la matriz desordenada y para cada elemento que agregas al conteo en la matriz de conteo.
00:42:12Luego calculamos la suma de cada número con el número de la derecha secuencialmente.
00:42:16Estos números representan la cantidad de números anteriores.
00:42:19Luego vamos en orden inverso en la matriz de entrada donde insertamos en el índice que especifica el valor del número.
00:42:24Luego restamos uno. Repetimos hasta que todo esté ordenado.
00:42:28Entonces, el peor escenario posible es o n grande más k, donde k es el rango del número más pequeño y el número más grande.
00:42:35Es curioso, pero lamentablemente solo funciona con valores enteros.
00:42:39No puedes usarlo para ordenar colores o nombres, lo que sea.
00:42:44La ordenamiento.
00:42:46Nunca me sentí como especializada, como en algo, como en algún programa.
00:42:51Yo había perdido.
00:42:51La ordenación de Shell es un algoritmo de comparación in situ que se parece mucho a la ordenación por inserción, pero con esteroides.
00:42:58Funciona usando intervalos.
00:43:00Esto comienza con la longitud de la matriz dividida por dos.
00:43:03Luego comparamos el primero de cada matriz dentro del intervalo dado.
00:43:06Si el primer número es mayor que el segundo, se intercambian.
00:43:10Esta matriz se ve así.
00:43:12Luego dividimos nuestro intervalo por la mitad nuevamente con cuatro elementos por sublista.
00:43:16Iteramos y ordenamos cada uno.
00:43:19Cuando el intervalo llega a uno, usamos la ordenación por inserción para ordenar toda la matriz.
00:43:24Entonces, el mejor escenario es o n log n grande, mientras que el peor escenario es o n al cuadrado grande.
00:43:30Y la razón por la que esto va tan rápido a pesar de usar la ordenación por inserción es porque crea una matriz parcialmente ordenada antes de hacer la ordenación final.
00:43:39La ordenación por inserción Team se creó en 2002 y todavía se usa en Python.
00:43:47Bueno, excepto en la versión 3.11+.
00:43:50La ordenación por inserción Team separa una matriz en pequeñas submatrices llamadas series.
00:43:54Estas series se ordenan luego mediante la ordenación por inserción.
00:43:57Una vez que se han ordenado todas las series, comienza a usar la ordenación por fusión en las dos matrices más pequeñas.
00:44:02Una vez ordenadas, toma la siguiente serie y la ordena en la matriz fusionada.
00:44:07Repite hasta que todo se haya ordenado.
00:44:09Entonces, Team Sword tiene un rendimiento promedio de O mayúscula y log n y Team Sword funciona muy rápido
00:44:15porque proporciona a la ordenación por inserción y amersur una matriz pequeña o parcialmente ordenada con la que trabajar.
00:44:21Además, el inventor de Team Sword le puso su nombre, Team Peters.
00:44:25Es como la mayor innovación de todos los tiempos.
00:44:28¡Vamos!
00:44:31Entonces, Radix funciona de forma muy parecida a contar espadas,
00:44:35excepto que es un poco raro.
00:44:37Rad Sword empieza mirando el último dígito de la matriz y luego la ordena por ese número.
00:44:42Luego mira el número anterior al último número analizado y luego lo usa para ordenar la matriz de nuevo.
00:44:47Y si durante una iteración no hay un número presente, simplemente lo trata como un cero.
00:44:51Sigue haciendo esto una y otra vez hasta que la matriz está completamente ordenada.
00:44:55Y la complejidad temporal para Rad Sword es O mayúscula, perdón, un segundo.
00:45:00Dn más Bd es la cantidad de números en el número más grande.
00:45:03N es el número de elementos y B es la base de los números que se están usando.
00:45:08Entonces, 10 representará del 0 al 9.
00:45:11Y al igual que muchos de los algoritmos de los que ya hemos hablado,
00:45:14Radicor se puede utilizar en paralelo para ir incluso más rápido.
00:45:17Y un dato curioso, Radicor es antiguo, y me refiero a muy antiguo, de alrededor de 1887.
00:45:24También se utilizaba en las antiguas máquinas de tarjetas perforadas de IBM que se remontan a la década de 1920.
00:45:29Hazme saber en los comentarios si quieres que profundice un...
00:45:32Ok, vamos a dejar de compartir.
00:45:42Ok chicos, entonces, ya que ustedes seleccionaron, ya vieron cuáles son los diferentes métodos de ordenamiento que hay para lo que son estructuras lineales.
00:45:54Entonces, ustedes deberán de escoger uno, el que ustedes quieran, ya vieron la complejidad que tienen, y deberán ustedes actualizar esta función.
00:46:05La función de actualizar almacén, esta que tengo aquí, y aquí deberán ustedes, de implementar la ordenación correspondiente.
00:46:17Eso es lo que nos da que así, ok.
00:46:20Deben de dejar el método de ordenamiento que ustedes hayan elegido, y deben de dejarlo sin moverle cambios a todo lo demás.
00:46:28Entonces, deberán compilarlo y verificar que el ordenamiento funciona correctamente.
00:46:33¿Cómo van a probar que el ordenamiento funciona correctamente?
00:46:37Pues obviamente no le van a poner uno o dos elementos al vector, sino le tienen que poner al menos unos 10 para que se vea que funciona correctamente y lo ordenan.
00:46:49Después de hacer eso, ustedes deberán diseñar, pues todos los casos de prueba.
00:46:56Ojo que esto es algo que les comento mucho en las tareas auténticas.
00:47:01¿A qué me refiero con esto?
00:47:03Bien nos pone, ejecuta pruebas y registra resultados con capturas de pantalla.
00:47:08No se trata de agarrar y copio las capturas de pantalla de que el código funciona.
00:47:13No.
00:47:15Así no funciona esto.
00:47:16Tienen ustedes que decir, se probó, se tiene un, en este se tienen cargados mil datos, y voy a empezar la prueba de rendimiento, va a poner tomando el tiempo, cuánto tiempo le toma ordenar estos 10 datos que tengo con este método.
00:47:31Cuánto, y aquí voy a validar que los datos se registren correctamente, se ingresaron tantos datos, y yo espero que me devuelva esto.
00:47:38Y ahí obviamente la pantalla de que ingresaron esos datos, y la pantalla de lo que te está devolviendo, para ver que lo que ustedes están poniendo, que ustedes esperan en el programa, pues realmente se esté ejecutando.
00:47:50Esas son las evaluaciones y pruebas donde ustedes deberán estar explicándolos en su código.
00:47:57Es importante explicar, como les comento yo, el contexto.
00:48:00No solamente poner las capturas de pantalla y ya, sino el explicar el contexto de estas.
00:48:09Y ya obviamente, pues, ustedes deberán de elaborar un informe que incluye el análisis del ordenamiento de pedidos,
00:48:15explicar cómo lo llevaron a cabo, su importancia, su propuesta, como la descripción detallada del método de ordenamiento,
00:48:21una explicación del código implementado, la evaluación y los resultados, y obviamente su reflexión.
00:48:29¿Qué me deben de anexar? Dos códigos, dos archivos, el código en .cpp y su archivo en pdf.
00:48:38¿Ok? Con todos estos datos capturados.
00:48:41Esto para la tarea auténtica.
00:48:45Entonces, ya vimos todo lo que tienen que hacer.
00:48:50Ya tienen ustedes el código.
00:48:53¿Dudas, preguntas, comentarios de la tarea auténtica, jóvenes?
00:48:57Adelante, Alma, por favor.
00:49:00Yo, profesor, este, ¿vamos a hacerlo con el código original o con el código que modificamos?
00:49:08No, es con el código que te proporcioné yo aquí.
00:49:11Porque si lo haces con el código que tú modificaste, el código que tú modificaste ya es un mapa.
00:49:18O puede ser una tabla hash.
00:49:21Ajá, Jelen.
00:49:22Entonces, como ya está modificado, no tendrías que implementar un método de ordenamiento.
00:49:28Ok, gracias.
00:49:29Tiene que ser con base a este código que yo les pongo aquí, que está en los materiales adicionales, en la unidad 3.
00:49:38Gracias, profesor.
00:49:39Por nada.
00:49:39Adelante, por favor, Carlos.
00:49:44Este, yo tengo un problema.
00:49:47¿Qué pasa si mi máquina es un poco lenta para tomar el tiempo de la ejecución?
00:49:54Fíjate que no lo vas a sentir tanto.
00:49:56O sea, de todas maneras, el tiempo computacional, o sea, lo vas a medir.
00:50:00Por ejemplo, lo hago con burbuja.
00:50:02Mira, lo medí con burbuja estos días.
00:50:04A lo mejor te tarda un segundo, o menos.
00:50:09Yo no creo que tarde más de un segundo, por muy lenta que sea tu máquina, Carlos.
00:50:13Ok, ok.
00:50:15La segunda, este, ahí en el punto 4, este, dice ejecutar el programa.
00:50:23Este, en alguna parte, en algún video, vi que a la hora de ejecutar, lo que se ejecuta es el archivo .exe.
00:50:33Sí, mira, fíjate.
00:50:35¿Eso es lo que está esperando para la tarea?
00:50:37No.
00:50:38¿Qué es lo que se ejecuta?
00:50:39Cuando nosotros ejecutamos un archivo, perdón, aquí estoy abriendo esto un poquito más grande.
00:50:46Sí lo ven correctamente.
00:50:47¿Qué es lo que nosotros hacemos aquí?
00:50:50Te voy a abrir esto, por ejemplo, yo voy a poner este en el que tengo acá, ¿no?
00:50:57Cuando yo ejecuto un código, esto automáticamente, cuando nosotros tenemos un programa en C++,
00:51:07yo ya les había explicado que esto, pues, obviamente es un programa que se compila.
00:51:13¿Qué quiere decir?
00:51:14Que este código que tú tienes aquí arriba, primero lo tiene que traducir, o tiene que convertir o compilar a un lenguaje que la máquina entienda.
00:51:24Ya una vez que el lenguaje de la máquina entienda, cuando tú lo compilas, de hecho, aquí debe de decir debug, y aquí dice compilar, correr.
00:51:33¿Qué quiere decir debug?
00:51:35Pues que tú vas a generar este archivo .exe, ¿no?
00:51:39Este, por ejemplo, aquí me está poniendo aquí en output.
00:51:42Debo de tenerlo, mira, este que dice SGL U3, solución.
00:51:47Este es el archivo que me generó por haberle yo dado ahí.
00:51:50Y cuando se compila, es, cuando se ejecuta, es darle doble clic a este archivo.
00:51:57¿Qué quiere decir?
00:51:57Que yo lo estoy ahorita ejecutando aquí, pero si yo me voy a donde está este archivo .exe,
00:52:04yo podría ejecutarlo ahí en la consola de comandos de la computadora.
00:52:09Es decir, yo me podría ir fácilmente a donde se encuentran, si quieres, hasta lo hago para que lo veas,
00:52:16y ejecutar el archivo .exe, porque lo que se ejecuta es este archivo,
00:52:21que es el resultado de haber compilado este otro.
00:52:25Ok.
00:52:26Ok, eso es lo que sucede.
00:52:29Entonces, es así como funcionan todos los programas, todos los lenguajes de programación compilados.
00:52:35Ok.
00:52:36Ok, lo que yo veía en el video, pues, o los videos de los materiales, es, por ejemplo,
00:52:46a la hora de la ejecución, ya mostraba los datos ordenados.
00:52:51Exactamente, porque ya estaban ahí ahorita ordenados, ¿por qué?
00:52:55Porque si ya lo tenías en una tabla hash, es que tú creo que tú metiste una tabla hash,
00:53:01un, un, un, un, este, en tu código, pues, ¿qué es lo que sucede aquí?
00:53:06Pues, ya lo, ya automáticamente se ordena.
00:53:08Por ejemplo, si yo me voy aquí en mi cmd, yo me voy a donde yo tengo almacenado este carpeta,
00:53:16y yo aquí me voy a este que dice unidad 3, cd, unidad 3, así como lo tengo yo, ¿no?
00:53:24Ya estoy aquí en unidad 3.
00:53:26Aquí tengo una carpeta que dice output.
00:53:28Yo aquí, si yo le doy un dir, mostrando que tengo aquí, vas a darte cuenta que tengo este archivo.
00:53:38Entonces, si yo escribo este código, aquí yo debería de ser capaz de ejecutarlo.
00:53:46Entonces, yo ya lo estoy ejecutando aquí sin necesidad de mi entorno de desarrollo integrado.
00:53:51Ok.
00:53:52Porque el que se ejecuta es el .exe, no es el código.
00:53:56El código se compila y te genera un archivo .exe, y tu entorno de desarrollo integrado, automáticamente te lo compila.
00:54:04Ok.
00:54:05¿Órale?
00:54:06Sí, profesor.
00:54:08Perfecto.
00:54:08Entonces, aquí yo le voy a poner un 8, salir.
00:54:11Listo.
00:54:13¿Quedó clara la duda?
00:54:14¿Aclarar la duda?
00:54:15Sí.
00:54:16Perfecto.
00:54:17¿Alguien más dudas, preguntas, comentarios?
00:54:21No, entonces nos pasamos a esta parte.
00:54:24Ya sabemos que debemos entregar en nuestra tarea auténtica.
00:54:29Ahora vamos a pasar a nuestro foro de reforzamiento.
00:54:34Y aquí en nuestro foro de reforzamiento, perdón, este es nuestro foro de dudas.
00:54:38En nuestro foro de reforzamiento nos pide 3, 4 preguntitas.
00:54:44Ok.
00:54:44Dos algoritmos de ordenamiento internos y dos algoritmos de ordenamiento externos.
00:54:51Ok.
00:54:51¿Cuáles son?
00:54:53¿Cuáles son las ventajas y desventajas que presentan los cuatro métodos de ordenamiento en términos de ejecución, uso de memoria y estabilidad?
00:55:01Y la siguiente es, ¿Cómo pueden mejorar la eficiencia de un sistema SGL con los algoritmos elegidos?
00:55:11Ok.
00:55:12Esto es lo que nos pone.
00:55:13Y por último, ¿Qué tipo de ordenamiento serían más adecuados para grandes cantidades de datos?
00:55:18Ya les puse un video y yo creo que aquí ustedes, pues no tendrían ningún problemita en poder responder esto.
00:55:27Algo muy importante y que deben de poner aquí es, que deben de escribir directamente las respuestas en el foro, por favor.
00:55:36No anexen archivos en Word, PDF, porque tendría yo que buscarlos, ni en los enlaces externos.
00:55:45Ok.
00:55:46Toda su, toda la participación, todas las participaciones que ustedes hagan deben de estar en este, en el foro.
00:55:57Ok.
00:55:57Y aquí ustedes me van a decir, ¿Sabes qué?
00:55:59Dos algoritmos de ordenamiento interno.
00:56:01Pues a lo mejor me dicen, ¿Sabes qué?
00:56:03A mí me interesa el Quicksort o el Merchort.
00:56:07Esos son de algoritmo interno, ¿No?
00:56:09Y ahora quiero de datos externos, ¿No?
00:56:11Pues puedo ocupar aquí así lo que es mezcla natural o intercalación directa, ¿No?
00:56:17O montículos, que también es exactamente lo mismo.
00:56:21Y ahora ustedes, ¿Cuáles son las ventajas?
00:56:24Bueno, van a tener que generar, ¿Cuáles son los cuatro métodos de estos cuatro que están teniendo estos dos internos y estos dos externos?
00:56:32¿Cuáles son las ventajas de cada uno?
00:56:34¿Cuál es su complejidad en el tiempo?
00:56:36¿Cuánto usa de memoria?
00:56:38¿Qué tan estable es?
00:56:40¿Si tiene ventajas?
00:56:41¿Cuáles son sus desventajas?
00:56:43Ok.
00:56:44Esto es lo que ustedes deberán de poner aquí.
00:56:48Y por último, ¿Cómo pueden mejorar la eficiencia?
00:56:51Pues a lo mejor podríamos nosotros, este, generar algún elemento, aparte de poner nuestra estructura de cambiar, a lo mejor nos conviene cambiar nuestra estructura de un vector de almacén, a lo mejor ya lo que hicimos en el módulo dos, ¿No?
00:57:07Pasarlo a un mapa o pasarlo directamente a un, este, a una tabla hash.
00:57:13Ok.
00:57:14¿Dudas, preguntas, comentarios?
00:57:16Adelante, Alma.
00:57:22Yo, profesor, este, en caso de que la aportación sea la primera y no haya más compañeros para hacer las aportaciones, ¿Ay, qué pasa? ¿Me espero?
00:57:35No.
00:57:36Puedes hacer tú tu aportación.
00:57:38Yo lo que hago, no sé si te has dado cuenta, yo siempre voy actualizando calificaciones.
00:57:44Entonces, si tú haces una aportación, tú haces la primera aportación, obviamente te voy a poner ahí mi retroalimentación, te voy a lanzar una pregunta detonadora y te voy a poner una calificación que es la calificación sin las retroalimentaciones.
00:58:00En cuanto tú hagas las retroalimentaciones, yo lo que hago es actualizar la calificación en todos tus postes y me respondas la pregunta detonadora que te hago.
00:58:12Ok, profesor, gracias.
00:58:14¿Alguien más preguntas, comentarios?
00:58:22No, no hay más preguntas, comentarios, sugerencias, chicos.
00:58:27Ojo, es algo muy importante que se registren en la asistencia.
00:58:32Aquí se las estoy poniendo, por favor.
00:58:34Por favor, regístrense para que todos puedan tener su asistencia de esta semana, porque si no, pues ya saben que nos puede ahí afectar.
00:58:45Entonces, ya tenemos nuestro, adelante, por favor, Elizabeth.
00:58:49Entonces, nada más es en el código modificar donde dice actualizar almacenes.
00:58:56Sí, de hecho, mira, si yo aquí lo hice con un método de inserción, a lo mejor tú puedes hacerlo con un merge, con inserción por mortículos, la que tú quieras.
00:59:09Y aquí inclusive yo les pongo, por ejemplo, yo aquí para ordenar, como estoy actualizando el almacén, a mí me gusta meter esto de manera funcional.
00:59:18Entonces, ¿qué es lo que hice?
00:59:21Yo puse aquí una función que estoy mandando a llamar, que se llama ordenar por almacén.
00:59:28¿Ok?
00:59:29Y aquí ya esta de ordenar por almacén, pues yo la podría poner acá, ¿no?
00:59:35Así es que yo voy a poner aquí así una función para poder ordenar por almacén, ¿no?
00:59:41Adelante, Manuel.
00:59:42Y ahí hay...
00:59:44La pregunta, buenas noches.
00:59:45Adelante, Manuel, perdón.
00:59:47Hay una consulta.
00:59:49¿Nos puede compartir el video que nos presentó un clave para poder reconocerlo?
00:59:54¿De alguna manera?
00:59:55Claro que sí.
00:59:56Sí, de hecho, ahorita si quieres, lo voy a compartir.
01:00:00¿Qué te parece?
01:00:02Ahorita yo en el foro de reforzamiento aquí.
01:00:06Y también se los comparto ahorita por el chat.
01:00:12¿Qué les parece?
01:00:14Muchas gracias.
01:00:15No, por nada.
01:00:16Pues para eso estamos.
01:00:17¿Alguien más dudas, preguntas, comentarios?
01:00:23Aquí está.
01:00:24Ya mira, ya me ganó Roberto.
01:00:26Bueno, hay muchos más métodos de ordenamiento.
01:00:33No significa que sean todos.
01:00:35Hay un buen de métodos de ordenamiento.
01:00:37Podríamos pasar aquí tres horas hablando de los diferentes métodos de ordenamiento.
01:00:42Pero bueno, aquí les dejé los que son considerados los más sencillos para lo que son las estructuras de datos lineales.
01:00:48¿Alguien más dudas, preguntas, comentarios?
01:00:54Francisco, adelante.
01:00:55No, nada más yo iba a comentar sobre el video.
01:01:01Este, como encontré uno que estaba en inglés, pero ahorita que lo compartió ya es en español.
01:01:06Perfecto.
01:01:07Perfecto.
01:01:08Pues bueno, esto sería lo que ustedes tendrían que entregarme para esta sesión sincro, para este módulo.
01:01:17Nos estaríamos viendo también la siguiente semana y ya saben también que si ustedes tienen alguna duda lo pueden hacer en el foro de dudas o escribirme directamente en el mensajero.
01:01:28Si quieren que sea todavía más rápido, pueden enviarme un correo electrónico y con gusto los estaré apoyando.
01:01:44Si necesitan una sesión sincrona adicional para poder retomar este tema, con todo gusto ya los estaremos apoyando de manera más específica para poderlos ayudar a resolver este módulo.
01:01:58Y que tengamos todas las competencias necesarias.
01:02:02¿Dudas, preguntas, comentarios?
01:02:07No, profesor, gracias.
01:02:10Todo muy bien, profesor, gracias.
01:02:12No, de verdad, la más mínima que tengan.
01:02:14Y si no, pues, no nos va a quedar nada más que agradecer su tiempo, su espacio.
01:02:20Este, Ángel, si puedes, Jesús, este, registrarte en la plataforma, lo voy a dejar ahí abierto en la asistencia.
01:02:29A lo mejor cuando vayas, este, llegues a tu casa, te registras.
01:02:34No hay ningún problema porque sé que el registro del Google Form como que no funciona muy bien en el celular.
01:02:39Ok, entonces, pero si es importante, te registres.
01:02:44Ahora, esta sesión sincrona, yo la voy a estar también grabando.
01:02:48Ya está hecho, ya está grabada.
01:02:50Y la voy a estar subiendo en unos pocos minutos a nuestra plataforma.
01:02:58¿Les parece?
01:02:58Pues bueno, chicos, ahora sí ya sin más que un correo de saludo.
01:03:02Muchas gracias.
01:03:03Que tengan una muy bonita noche.
01:03:05Y nos estamos viendo la siguiente semana para seguir trabajando en esto de nuestras estructuras de datos.
01:03:12Que tengan una excelente noche.
01:03:14Gracias.
01:03:15Gracias, buenas noches.
01:03:16Buenas noches, profesor.
01:03:17Gracias, buenas noches.
01:03:19Buenas noches, hasta luego.
01:03:21Buenas noches, profesor.
01:03:28Hasta luego, Fernando.
01:03:34Bye.
01:03:44Jesús, ¿cómo estás?
01:03:46Buenas noches, ¿todo bien?
01:03:47Cuídate.
01:03:47Buenas noches.
01:03:58Buenas noches, profesor.
Sé la primera persona en añadir un comentario
Añade tu comentario

Recomendada