Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Algoritmos de Ordenamiento Externo.
Programacin 3. Universidad de Cuenca.
Abad F.,Munoz C.,Fajardo P.
Marco Teorico: Ordenamiento Directo, Polifase, Natural, Balanceada.
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Estructura de Datos
Unidad V: Métodos de Ordenamiento
Retícula ISIC-2010-224: Programa: AED-1026/2016
Algoritmos de Ordenamiento Externo.
Programacin 3. Universidad de Cuenca.
Abad F.,Munoz C.,Fajardo P.
Marco Teorico: Ordenamiento Directo, Polifase, Natural, Balanceada.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
Materia de lenguajes y autómatas 1 del Tecnológico de Tepic, maestra Sonia. Si llevas la materia de autómatas con Sonia, copienselo y rólenlo a sus amigos.
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Esta presentación es parte del contenido del curso de Programación Avanzada impartido en la Universidad Rafael Landívar durante el año 2015.
Incluye los temas:
• Búsqueda por método secuencial
• Búsqueda por método binario
• Búsqueda por método hashing
Creado por Ing. Alvaro Enrique Ruano
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
Materia de lenguajes y autómatas 1 del Tecnológico de Tepic, maestra Sonia. Si llevas la materia de autómatas con Sonia, copienselo y rólenlo a sus amigos.
Esta presentación le pertenece a Tania Landivar.
Las estructuras de datos lineales (vectores ) obliga afijar por adelantado el espacio a ocupar en memoria, de modo que, cuando se desea añadir un nuevo elemento que rebase el tamaño prefijado del array, no es posible realizar la operación sin que se produzca un error en tiempo de ejecución, para evitar esto se hace uso de las listas enlazadas.
Una lista enlazada es una colección o secuencia de elementos llamados nodos, dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un “enlace” o “referencia”.
Las transparencias ofrecen una visión clara y concisa de un concepto fundamental en la ciencia de la computación. En estas diapositivas, exploramos cómo las funciones pueden llamarse a sí mismas, lo que da lugar a un proceso poderoso y elegante llamado recursividad.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
1. EQUIPO Nº 4 RECURSIVIDAD ALVARADO ROSA NELFALY MEDINA BETZY RODRIGUEZ VASQUEZ ALBA RIVAS MIRIAM RIOS LUIS Prof. Ing. Zamantha González. PNFSI. Cojedes.
2.
3. CONCEPTO Para que una función recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado. En un algoritmo recursivo distinguimos como mínimo 2 partes: a). Caso trivial, base o fin de recursión: Es un caso donde el problema puede resolverse sin tener que hacer uso de una nueva llamada a sí mismo. Evita la continuación indefinida de las partes recursivas. b). Parte puramente recursiva: Relaciona el resultado del algoritmo con resultados de casos mas simples. Se hacen nuevas llamadas a la función, pero están más próximas al caso base.
4. CONCEPTO Ejemplos: ITERATIVO: Int Factorial (int n ) { Int ¡, res = 1; For(¡=1;¡<=n;¡++ ) res = res*¡; return (res); } RECURSIVO: Int Factorial (int n ) { If (n==0) return (1); Return (n*Factorial (n-1)); }
5. UTILIDAD DE LA RECURSIVIDAD Se utiliza para realizar una llamada a una función desde la misma función. Hemos visto que la recursión es una técnica potente de programación para resolver, mediante soluciones simples y claras, problemas de gran complejidad.
6.
7. UTILIDAD DE LA RECURSIVIDAD Ej: de Factorial en algoritmo: N es 0 FACTORIAL 1 Retorno FACT FACTORIAL (3) N es 3 FACTORIAL 3* FACTORIAL (2) Retorno N es 2 FACTORIAL 2* FACTORIAL (1) Retorno N es 1 FACTORIAL 1* FACTORIAL (0) Retorno
8. TIPOS DE RECURSIVIDAD Recursividad Simple: Aquella en cuya definición sólo aparece una llamada recursiva. Se puede transformar con facilidad en algoritmos iterativos. Recursividad Múltiple: Se da cuando hay más de una llamada a sí misma dentro del cuerpo de la función, resultando más difícil de hacer de forma iterativa. int Fib( int n ) /* ej: Fibonacci */ { if(n<=1) return(1); return(Fib(n-1) + Fib(n-2)); }
9. TIPOS DE RECURSIVIDAD Recursividad Anidada: En algunos de los argumentos de la llamada recursiva hay una nueva llamada a sí misma. int Ack( int n, int m ) /* ej: Ackerman */ { if(n==0 ) return(m+1); else if(m==0) return(Ack(n-1,1)); return(Ack(n-1, Ack(n,m-1))); }
10. TIPOS DE RECURSIVIDAD Recursividad cruzada o indirecta: Son algoritmos donde una función provoca una llamada a sí misma de forma indirecta, a través de otras funciones. Ej: Par o Impar: int par( int nump ) { if(nump==0) return(1); return( impar(nump-1)); } int impar( int numi ) { if(numi==0) return(0); return( par(numi-1)); }
11. ALGORITMO: DIVIDE Y VENCERAS Una de las técnicas más importantes para el diseño de algoritmos típicos en la Recursividad es la técnica llamada:”Divide y Vencerás”. Esta técnica consiste en transformar un problema de tamaño n en problemas más pequeños, de tamaño menor que n. El algoritmo de búsqueda binario es un ejemplo típico de esta técnica algorítmica. La lista ordenada de los elementos se divide en dos mitades de forma de que el problema de búsqueda de un elemento se reduce al problema de búsqueda en una mitad; así se prosigue dividiendo el problema hasta encontrar el elemento, o bien decir que no se encuentra. Un algoritmo “Divide y Vencerás”, puede ser definido de manera recursiva, de tal modo que se llama así mismo aplicándose cada vez a un conjunto menor de elementos. ALGORITMO TIPICO
12. ALGORITMO TIPICO TORRE DE HANOI: Problema de solución recursiva, consiste en mover todos los discos (de diferentes tamaños) de una aguja a otra, Usando una aguja auxiliar, y sabiendo que un disco no puede estar sobre otro menor que éste.
14. ALGORITMO TIPICO /* Solución : 1- Mover n-1 discos de A a B 2- Mover 1 discos de A a C 3- Mover n-1 discos de B a C */ Void Hanoi(n,inicial,aux,final) { if( n>0) { Hanoi (n-1,inicial,final,aux); printf (“Mover % d de % c”, n,inicial,final); Hanoi (aux, inicial,final); } }
15. ALGORITMO TIPICO Ordenación por inserción Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de inserción va intercambiando elementos del array hasta que esté ordenado.
16. ALGORITMO TIPICO void insercion (int a[]) { int i, j, x; for (i=1; i x = a[i]; j = i - 1; while ((j>-1) && (a[j]>x)) { a[j+1] = a[j]; j = j - 1; } a[j+1] = x; } }
17. ALGORITMO TIPICO Ordenación por selección Se trata de ordenar un vector formado por n enteros. Para esto el algoritmo de selección va seleccionando los elementos menores al actual y los intercambia.
18. ALGORITMO TIPICO void seleccion (int a[]) { int i, j; int minx, minj; for (i=0; i < n-1; i++) { minj = i; minx = a[i]; for (j = i; j < n; j++) { if (a[j] < minx) { minj = j; minx = a[j]; } } a[minj] = a[i]; a[i] = minx; } }
19. Satisface dos interrogantes 1.- ¿Cómo se resuelve el caso mas pequeño del problema? 2.- ¿Cómo se resuelve el caso general del problema, sabiendo que tiene el caso anterior mas pequeño? IMPLEMENTACIÓN ALGORITMOS RECURSIVOS
22. IMPLEMENTACIÓN ALGORITMOS RECURSIVOS • Ejercicio: Escribir una función recursiva que calcule la división entera entre dos números: int DivisionEntera(int a, int b, int &resto) { int cociente; if ( a < b) { resto = a; cociente = 0; } else { a= a - b; cociente = cociente + 1; cociente = DivisionEntera(a, b, resto); } return cociente; }
23. IMPLEMENTACIÓN ALGORITMOS RECURSIVOS a < b 10<5 F a < b 5<5 F a = 5-5 a=0 Cociente 1+1=2 a < b 0<5 V 2 0 5 0 1 Ø 5 5 1 Ø 5 10 Cociente Rest. B A 5 10 2 =