• Barajar
    Activar
    Desactivar
  • Alphabetizar
    Activar
    Desactivar
  • Frente Primero
    Activar
    Desactivar
  • Ambos lados
    Activar
    Desactivar
  • Leer
    Activar
    Desactivar
Leyendo...
Frente

Cómo estudiar sus tarjetas

Teclas de Derecha/Izquierda: Navegar entre tarjetas.tecla derechatecla izquierda

Teclas Arriba/Abajo: Colvea la carta entre frente y dorso.tecla abajotecla arriba

Tecla H: Muestra pista (3er lado).tecla h

Tecla N: Lea el texto en voz.tecla n

image

Boton play

image

Boton play

image

Progreso

1/65

Click para voltear

65 Cartas en este set

  • Frente
  • Atrás
Cual operacion de las listas es mas rapida para agregar un elemento
Añadir (no es agregar)
Que operacion de listas regresa un elemento
Obtener
Que operacion nos da el primer elemento de una pila
Cima
Que operacion inserta un nuevo elemento en una pila
Apilar
Que operacion inserta un nuevo elemento en una cola
Añadir
Que operacion elimina un elemento en una cola
Avanzar
¿Para que sirve una Maquina de Acceso Directo(MAD) ?
Para evaluar algoritmos, analizar el tiempo de ejecución de un algoritmo.
Descompone un problema es problemas mas pequeños que son similares al original
Algoritmo divide y venceras
Descompone un problema en problemas mas pequeños, donde la solucion de uno ayuda a resolver uno mas grande
Programacion dinamica
¿Qué es abstraccion?
Se refiere a la capacidad intelecutal de considerar una entidad aislandola de cualquier ejemplar especifico de esa entidad.
¿Qué es un Tipo abstracto de datos (TAD)?
Se define como un modelo matemático de los objetos de datos que constituyen un tipo de datos, así como las funciones que operan sobre estos objetos.
Para qué sirve un TAD Matriz?
Se usa para representar matrices matematicas, así como las operaciones defenidas sobre matrices.
A que se refiere el termino Tipo de datos?
Se refiere a la implementación del modelo matemático especificado por el TAD. ( modelo aportado por la especificación de un TAD.)
Que es Estructura de datos?
Se refiere una colección de variables en memoria que están relacionadas de alguna forma especifica.
Qué es la Encapsulacion de datos?
Es la separacion u <<ocultacion>> de la representacion de un tipo de datos con respecto a las aplicaciones que usan el tipo de datos.
Definicion de Algoritmo:
Consiste en una secuencia finita de instruccion que especifica de forma presica como las operaciones deben ser realizadas.
Pseudocódigo
Se utiliza para expresar algoritmos en una forma se se independiente de cualquier lenguaje de programación.
Puntero
Es un objeto que almacena la direccion de memoria de (es decir, apunta a) otro objeto.
Tipo de datos compuesto:
Se compone de campos, cada uno de los cuales puede ser de un tipo simple o compuesto.
Paso por valor:
Una COPIA de los parámetros reales(valores) se suministra a los parámetros formales, de modo que cualquier modificación de estos parámetros no tiene efecto fuera del procedimiento.
Paso por referencia
Los parámetros formales se LIGAN a los valores que referencian los parámetros reales, esto significa que un cambio en el valor de un parámetro dentro del procedimiento realmente cambiará el valor contenido en la variable a la cual ese parámetro se refiere.
Memoria Principal
(UNIDADES DE DISCO), se asume que tiene acceso directo. Es decir, un acceso a cualquier posición de la memoria principal necesita una cantidad de tiempo fija (estructura de datos internas y la ordenación interna se realiza en la memoria principal)
Almacenamiento secundario
CINTA, será usado solo si una estructura de datos es demasiado grande para estar en la principal. Las estructuras de datos externas y el ordenamiento externos son realizadas en el almacenamiento secundario.
Estructura de datos estatica
Es si se asigna una cantidad fija de memoria para esa estructura antes de la ejecución del programa. LA CANTIDAD DE MEMORIA ASIGNADA no cambia durante la ejecución del programa.
Estructura de datos dinamica
LA CANTIDAD de MEMORIA que puede usar la estructura de datos NO queda fijada durante la compilacion.
Procedimientos recursivos
Puede invocarse a si mismo, resuelven un problema reduciéndolo a un ejemplar del mismo problema para unos datos más pequeños.
Analisis/nota asintótico
Se emplea para explorar el comportamiento de una función, o de una relación entre funciones, cuando algún parámetro de la función tiende hacia un valor asintótico.
Algoritmo
Es cualquiere procedimiento computacional bien definido, junto con un conjunto especificado de datos de errata permitidos, que produce un valor o conjunto de valores como salida.
Eficiencia de un algoritmo
Esto supone determinar la cantidad de recursos informáticos consumidos por el algoritmo. Los recursos que habitualmente se contabilizan incluyendo la cantidad de MEMORIA y la cantidad de TIEMPOS de COMPUTO requeridos por el algoritmo.
Complejidad de programa
Es la cual considera tanto la dificultad de implementar un algoritmo como la eficacia del algoritmo en sí mismo
Espacio de memoria
Es la cantidad de memoria requerida por un algoritmo
Tiempo de ejecucion
Es el tiempo de computo requerido por un algoritmo
Maquina de acceso directo MAD
Modelo de evaluación de algoritmos. Este modelo asume la existencia de un solo procesado generico, memoria de acceso directo, y un conjunto de operaciones básicas que el procesador puede ejecutar.
Algoritmos de fuerza bruta
Se caracterizan por una falta de sofisticación en su acercamiento a la solución. Toman la ruta más obvia o directa, sin ningún intento de minimizar el número de operaciones requeridas para calcular la solución.(decodificar de contraseñas)
¿Donde se usan los algoritmos de fuerza bruta?
para resolver problemas de búsquedas. Especialmente en la búsqueda exhaustiva
Algoritmos Divide y vencerás
Resuelven un problema descomponiendolo en varios subproblemas que son similares al problema original, excepto en que son de un tamaño más pequeño. Cada uno de los subproblemas son resueltos de manera independiente
Programacion Dinamica
Son similares a aquellos desarrollados usando divide y vencerás en que ambos resuelven un problema descomponiendolo en varios subproblemas que pueden resolverse recursivamente.
¿Cual es la diferencia entre algoritmos de divide y vencerás y la programación dinámica?
Programación dinámica es una técnica ascendente, mientras que divide y vencerás es descendente.
¿Para que se utiliza la programación dinamica?
se utiliza a menudo para resolver problemas de optimización.
Algoritmo voraz
Para problemas de optimización, en cada punto de decisión se selecciona la opción que tiene el coste inmediato más pequeño sin intentar considerar si esta opción es parte de una solución óptima para el problema completo. (Viajero mochilero)
Ordenación por mezcla
Emplea la estrategia divide y vencerás para ordenar los n elementos del array. Primero es dividido en dos subarrays, son ordenados recursivamente. Finalmente, los dos subarrays son ordenados para producir el array ordenado final.
Ordenacion rapida
Divide el array en dos subarrays que pueden ser ordenados de forma independiente. Se selecciona un elemento pivote, Los subarrays a cada lado del pivote pueden ser ahora ordenados independientemente por llamadas recursivas.
Clase
Es en realidad un medio de empaquetar un TAD. Esto es, permite encapsular conjuntamente como una única entrada los elementos, así como las rutinas de acceso de implementacion de un TAD.
Herencia
Es el medio por el cual los objetos de una clase pueden acceder a variables y funciones miembro contenidas en una clase previamente definida, sin tener que volver a realizar esas definicion. La posibilidad de extensión, así como la reutilización de código
OPERACIONES DE TAD LISTA
1 Insertar L(x,i). Añade el elemento x a la lista, en la posicion i. Devuelve verdadero si se ejecuta, sino falso
operación de una lista - Añadir
2 Añadir(L,x). Añade el elemento x a la cola L. Devuelve verdadero si se ejecuta con exito, sino falso
Operación de una lista - Obtener
3 Obtener(L,i) Devuelve el elemento almacenado en la posicion de i de la lista L. Nulo si la posicion de i no existe
Operación de una lista - Eliminar
4 Eliminar(L,i) Elimina el elemento almacend en la posicion de i de la lista L. Verdadiero si tiene exito, falso si no.
Operación de una lista - Eliminar
5 Longitud(L) Devuelve la longitud de L
Operación de una lista - Inicio
6 Inicio (L) Situa la posicion actual de L a la cabeza(el principio) y devuelve el valor del elmento 1. Si la lista està vacia devuelve el valor 0
Operación de una lista - Actual
7 Actual(L) Devuelve la posicion actual de L
Operación de una lista - Siguiente
8 Siguiente(L) Incrementa la posicion actual de L y devuelve su valor.
Búsqueda binaria o por bisección
Buscar más eficientemente si asumimos que con disposición secuencial(los elementos están ordenados) para reducir el tiempo, se parte el array en 2.
Heuristicas de auto-organizacion
Las tecnicas que reordenan los elementos de la lista basandose unicamente en la secuencia de peticiones que se han producido hasta el momento.
Listas con Saltos
Mejoran el tiempo de búsqueda añadiendo punteros adicionales a ciertos nodos en las listas . Estos punteros, saltan un numero fijo de nodos de las listas enlazadas.
FIFO (First in-first out)
Es una estructura en la que el primero que entra, es el primero que sale. (COLA) lo que significa que el primer elemento almacenado en este tipo de estructura será el primer elemento obtenido en ella (impresora)
LIFO (last in-first out)
Es una estructura en la que el ultimo que entra, es el primero que sale (PILA)
Pila
Es un conjunto dinamico que obedece la propiedad LIFO
Cola
Es un conjunto dinamico que obedece la propiedad FIFO
Operación de las pilas - Apilar( S, x)
Inserta x en S
Operación de las pilas - Cima(S)
Devuelve un elemento que fue insertado más recientemente en S
Operación de las pilas - Desapilar(S)
Elimina el elemento que fue insertado más recientemente en S
Operación de las colas - Añadir (Q, x)
Inserta x en Q
Operación de las colas - Primero(Q)
Devuelve el elemento que lleva más tiempo en Q.
Operación de las colas - Avanzar(Q)
Elimina el elemento que lleva más tiempo en Q