Blog del sitio: Tecnológico

Página: ()  1 ...  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28 ...116   ()
Todo el mundo

Documento word

[ Modificado: miércoles, 11 de junio de 2014, 16:57 ]
 
Todo el mundo

Documento word

[ Modificado: miércoles, 11 de junio de 2014, 16:56 ]
 
Todo el mundo

En la clase del día martes 20  de mayo de 2014 continuamos con el tema de recursividad  procediendo con la implementación como lo estudiamos en la clase anterior podemos decir que la recursividad se basa solamente en métodos cuya sintaxis es la siguiente:

public static tipo/clase nombreMetodoRecursivo(tipo/clase parámetros){

    if(expresión lógica){ // Esta expresión lógica ayuda a controlar el autollamado del método

     nombreMetodoRecursivo(parámetros);

 }else{

 nombreMetodoRecursivo(parámetros);

 }

}

A continuación vamos a ver un pequeño ejemplo cara calcular el factorial de un número:

n ! =  n*(n -1) !                    0! = 1

5 ! =  5*4 ! = 120

4! = 4*3 ! = 24

3! = 3*2 ! = 6

2! = 2*1 ! = 2

1! = 1*0 ! = 1

Para aplicar el factorial de un número en programación vamos a implementar un método recursivo llamado factorial en el cual va a retornar un valor de numeres enteros de gran tamaño por ejemplo long:

// Definimos la función factorial

public static long factorial(int n){ ← // Parámetro formal

    if( n == 0){ // Esta es la condición de parada en el cual el método debe seguir, si el parámetro tiene valor 0 la función va a retornar valor 1 y el no realiza ningún recorrido

     return 1;                                          

     }else{ // En el caso contrario si n es diferente de 0 va a hacer el recorrido

      return n*factorial(n-1); // Autollamado de la función multiplicada por el valor actual de n y al parámetro se le resta -1                                                  

   }

}

// Despues llamamos al método factorial en la clase Principal en donde tiene el método main.

public class Principal{

    public static void main(String[]args){

    System.out.println(factorial(5)); ← // Parámetro actual

   }

}          

Podemos asimilar la ejecución de este programa por medio de la pila del sistema operativo o también denominado llamado a subprogramas en el cual se insertan cada autollamado del método en una pila para llevar la secuencia, hasta que el parámetro obtenga el valor de 0 para detener el autollamado.

1*factorial(0)

2*factorial(1)

3*factorial(2)

4*factorial(3)

5*factorial(4)

       

Pila del sistema

operativo

 

Como podemos observar se va insertando los autollamados en una pila y a la lista de parámetros del método le pasamos el valor para que la función lo procese.

También vimos otro ejemplo en que un método calcula el máximo común divisor de un número en el cual también es un método recursivo:

public static int maximoComunDivisor(int a, int b){ // El método recibe dos parámetros numéricos que son los números que va a dividir

    if(a == b){ // Si el valor de a es igual al valor de b entonces la función va a retornar cualquiera de los dos parámetros, en este caso se retorna a

      return a; // Se retorna el valor de a

}else{ // Y son iguales se procede a la otra condición

    if(a > b){ // Preguntamos si a es mayor que b

     return maximoComunDivisor(a-b, b); // Llamada recursiva del método, restando el valor de a con el valor de b y se coloca el valor actual de b

}else{ // Y si el caso contrario si a es menor que b entonces se procede a colocar el valor actual de a y restar el valor de a con el valor de b

return maximoComunDivisor(a, b-a); // Llamada recursiva del método, colocando el valor actual de a y restar el  valor de b con el valor actual de a

      }

  }

}

 

De la misma forma insertamos los autollamados en una pila como en el ejemplo anterior:

maximoComunDivisor(3,3)

maximoComunDivisor(6,3)

maximoComunDivisor(9,3)

       

 

 

 

 

 
Imagen de VICTOR ALFONSO ALCALA QUINTANA
de VICTOR ALFONSO ALCALA QUINTANA - martes, 10 de junio de 2014, 20:58
Todo el mundo

En el Dia de hoy se llevaron acabo todas las expocisiones asignadas por el profesor , en las cuales hubieron buenas explicaciones por parte de los compañeros y tambien se llevo a cabo que el dia 11-06-14 se realizara el parcial final de estructura de datos a las 9 am.

Estos fueron los temas de las expocisiones :

  •  Ordenamiento directo (método de burbuja y con señal).
  •  Ordenamiento por el método de la sacudida (shaker sort).
  •  Ordenamiento por inserción directa.
  •  Ordenamiento por método de inserción binaria.
  •  Ordenamiento por selección directa.
  •  Ordenamiento con el método de shell (inserción con incrementos decrecientes).
  •  Ordenamiento por el método de quicksort (método rápido de ordenación por partición).
  •  Merge sort
  •  Heap sort.
  •  Radix sort y Address-calculation sort
  •  Búsqueda secuencial lineal y búsqueda binaria (arreglos).
  •  Método de transformación de claves.
  •  Grafos

 

 
Imagen de JHONATAN LEANDRO CORREA MEJIA
de JHONATAN LEANDRO CORREA MEJIA - martes, 10 de junio de 2014, 20:29
Todo el mundo

ARBOLES DE ESTRUCTURA NO LINEAL 

UTILIDAD 

organizacion de datos de forma jerarquica 

APLICASION 

  • s.o
  • directorios
  • evaluacion de expresion aritmetica
  • busqueda

TERMINOLOGIA 

 

 

NODO RAIZ : no tiene ascendentes 

INTERNO: tiene tanto descendente como ascendente

HOJA: no tiene descendiente 

SUB ARBOL : nodo con sus descendientes 

RAMA: camino desde la raiz hasta la hoja 

ALTURA: cantidad de niveles

PESO: cantidad de hojas 

ORDEN: cantidad de nodos 

 

IMPLEMENTACION

 

 

ARBOLES BINARIOS 

tienen una restriccion maximo dos hijos por nodo

APLICASIONES

  • evaluacion de expresiones aritmeticas 
  • busqueda
  • ordenamiento

TERMINOLOGIA

 

COMPLETO: todos los nodos tienen dos dos hijos excepto las hojas 

BALANCEADO: cuando la diferencia paratodos los nodos entre las alturas del arbol derechoy subarbol izquierda es menor a  2

LLENO: todos los niveles del arbol tiene el maximo de nodos 2h-1 cantidad total de nodos del arbol

DEGENERADO:  todos los nodos tienen solo un hjo excepto las hojas 

 

EJERCICIO 

 

IMPLEMENTACION

 

RECORRIDO

 combinacion de actividades para visitar todos los nodos y hacer las respectivas operaciones 

 

ACTIVIDADES (RECURSIVAS)

  • visitar raiz
  • recorrer subarbol izquierdo
  • recorrer subarbol derecho 

COMBINACIONES                      RECURSOS

1,2,3                                          preorden

2,1,3                                          inorden

3,2,1                                          posorden             

 

EJEMPLO

 

 

 

CODIGO DEL RECORRIDO 

METODOS RECURSIVOS

public static void preorden ( arbol n){

if( r! =null)

sout ( r.getdato( ));

preorden( r.getizq( ));

preorden ( r,getder( ));

 

 

 

 
Imagen de KEVIN DANIEL PEREZ PEREA
de KEVIN DANIEL PEREZ PEREA - martes, 10 de junio de 2014, 19:38
Todo el mundo

ARBOLES

DEFINICION

Estructuras de datos no lineal para la organizacion de informacion por niveles 

UTILIDAD 

1.organizacion por niveles (diferencia entre elementos mayores y menores )

APLICACIONES

 1.estructuras

  2.organizacionales

  3.geneologia

  4.directorios 

  5.expresiones

  6.aritmeticas

  7.busqueda y ordenamiento 

 

TERMINOLOGIA

NODO : en cada componente de un arbol la comunicacion es descendente, raiz hacia las hojas, el arbol tiene  cantidad de hojas 

ALTURA : cantidad de niveles 

ARBOLES BINARIOS

Tienen una restriccion de maximo dos hijos por nodo.

APLICACIONES

evaluaciones de expresiones aritmeticas y ordenamiento. 

TERMINOLOGIA

COMPLETO: todos los nodos tienen dos hijos excepto las hojas

BALANCEADO: Para todos los nodos la diferencia entre las alturas del subarbol izquierdo y derecho es menor a 2

LLENO: todos los niveles del arbol tienen el maximo de nodos. 2h-1 cantidad de nodos del arbol

DEGENERADO: todos los nodos tienen solo un hijo excepto las hojas

ARBOL BINARIO DE BUSQUEDA

gracias a estos la busqueda es mas eficiente y permite ordenamiento mucho mejor que las estructuras como arreglos y listas enlazadas

//entre mas crece el arbol mas eficiente se vuelve.

Operaciones:

insercion

eliminacion

 

[ Modificado: martes, 10 de junio de 2014, 21:46 ]
 
Imagen de KEVIN DANIEL PEREZ PEREA
de KEVIN DANIEL PEREZ PEREA - martes, 10 de junio de 2014, 19:07
Todo el mundo

RECURSIVIDAD

definicion:  es una propiedad  de las funciones de autollamdo son una alternativa de los procesos iterativos 

utilidad: cuando el rpoceso iterativo es muy complejo 

aplicaciones:recorrido de estructuras no lineales solucion de formulas matematicas complejas 

 

RECURSIVIDAD VS ITERACION  

RECURSIVIDAD  

consumo excesivo de memoria, reduccion de codigo, logica simple, por cada autollamado que hacemos se hace una copia de la funcio y se guarda en la pila del sistema operativo 

ITERACION 

 no reduce codigo, depende del problema, la solucion logica puede ser muy compleja y bajo consumo de memoria 

 IMPLEMENTACION 

acceso 

tipo de clase 

modificador

nombre "parametro" 

EJEMPLO  FACTORIAL 

public static void main (int   n) {

if(n==0){

return 1;

}else{

return nx factorial (n-1);

}

}

//una funcion recursiva no tiene instrunciones iterativas tiene condiciones que ayudan a que en algun momento deje de autollamarse 

 

[ Modificado: martes, 10 de junio de 2014, 21:53 ]
 
Imagen de PEDRO FELIX HERNANDEZ FRIAS_12217045
de PEDRO FELIX HERNANDEZ FRIAS_12217045 - martes, 10 de junio de 2014, 18:38
Todo el mundo

En el oden en que se lleguen las claves se forman el arbol, insertando las claves mayores a la dercha y las claves menores a la izquierda.

ejemplo:12, 10, 9, 14, 17, 11, 8, 4, 7, 13

Eliminar :

A. Hoja simplemente se suprime

B. Nodo con un subarbol:se remplaza por el su descendiente inmediato

C.Nodo con dos subarboles : se remplaza por el nodo mas a la izuierda del sub arbol derecho o por el nodo mas a las derecha del sub arbol izquierdo

 
Imagen de PEDRO FELIX HERNANDEZ FRIAS_12217045
de PEDRO FELIX HERNANDEZ FRIAS_12217045 - martes, 10 de junio de 2014, 17:35
Todo el mundo

Arbol binario de busqueda para ordenamiento,que mejora la eficiencia en prooceso de busqueda conrespecto a las estructuras vistasautorecientes (arreglos y listas).

Nota hay quien le gane a estas estructuras en la busqueda.

 
Imagen de LINDA NIEVES VILLADIEGO MONTES
de LINDA NIEVES VILLADIEGO MONTES - martes, 10 de junio de 2014, 17:26
Todo el mundo

public static long factorial (int n){

if(n==0){

return 1;

}else{

return*factorial(n-1);

}

}

public class principal{

public static void main(string []arg){

sSystem.out.printl(factoria(5));

}

cuando n=0 retorna el valor en la llamada al sistema al que pertenece el 0

el parametro forma siempre va a recibir el valor del parametro actual

Ejercicios:

funciones recursivas para:

  1. calcular potenciacion entre dos numeros naturales
  2. mostrsr los elementos de un vector
  3. calcular maximo comun divisor de dos numeros enteros
  4. mostrar los elementos de una ñlista enlazada simple en forma invertida
  5. calcular la cantidad de digitos de un numero entero.

1 ejercicio: se utiliza en 2 parametros base * exponente

2^3=2x2^2----4=8

2^2=2x2^1----2=4

2^0=1

3 ejercicio

a        b

18       12

6         12

            6

condicion de control ambas variables son iguales.

retorna  a, o ,b

la funcion soloretorna un valor

public static int mcd(int a, int b){

if(a==b){

retur a;

}else{

if(a>b){

return mcd(a-b,b);

}else{

return mcd(a,b-a);

}

}

}

s.o.p(mcd(9,12))=3

ARBOLES:

estructuras no lineales para organizacion de la informacion por niveles

  1. UTILIDAD: organizacion de datos en forma jerarquica (disticion entre mayores y menores)
  2. APLICACIONES: sistemas operativos: directorios, evaluciones de expresiones aritmeticas, busqueda y ordenamiento etc.
  3. TERMINOLOGIA:

nodo raiz: no tiene ascendentes

nodo interno: tiene tanto descendiente como ascendente

nodo hoja: no tiene descendiente

rama: camino desde la raiz hasta una hoja

rama: camino desde la raiz hasta una hoja

subarbol: nodo con sus descendientes

 

3= altura: altura de niveles

7= peso:cantidad hojas

10=orden: cantidad nodo

 
Página: ()  1 ...  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28 ...116   ()