Podcast
Questions and Answers
¿Cuál de los siguientes factores se refiere a la capacidad del software para manejar entradas no esperadas?
¿Cuál de los siguientes factores se refiere a la capacidad del software para manejar entradas no esperadas?
- Facilidad de uso
- Robustez (correct)
- Eficiencia
- Correctitud
¿Qué permite la extensibilidad en un software?
¿Qué permite la extensibilidad en un software?
- Ejecutarse en diferentes sistemas operativos
- Usar el código en otros programas
- Agregarle nueva funcionalidad (correct)
- Requerir pocos recursos de cómputo
¿Cuál es la función de las excepciones en un programa?
¿Cuál es la función de las excepciones en un programa?
- Manejar eventos inesperados durante la ejecución (correct)
- Detectar condiciones esperadas
- Declarar métodos de clases
- Mejorar la eficiencia del código
En Java, ¿qué clase se utiliza como base para las excepciones?
En Java, ¿qué clase se utiliza como base para las excepciones?
¿Qué implica la portabilidad de un software?
¿Qué implica la portabilidad de un software?
¿Qué es una interfaz en programación orientada a objetos?
¿Qué es una interfaz en programación orientada a objetos?
¿Cuál de las siguientes opciones describe mejor la reusabilidad del código?
¿Cuál de las siguientes opciones describe mejor la reusabilidad del código?
¿Cuál es el propósito de una clase wrapper en programación?
¿Cuál es el propósito de una clase wrapper en programación?
¿Qué almacena un nodo interno en un árbol de expresión aritmética?
¿Qué almacena un nodo interno en un árbol de expresión aritmética?
¿Cuál es el propósito del algoritmo 'Evaluar(árbol_exp)'?
¿Cuál es el propósito del algoritmo 'Evaluar(árbol_exp)'?
¿Qué ocurre cuando se intenta agregar una raíz a un árbol que ya tiene una?
¿Qué ocurre cuando se intenta agregar una raíz a un árbol que ya tiene una?
En un árbol binario, ¿qué representa un nodo hoja?
En un árbol binario, ¿qué representa un nodo hoja?
¿Qué valor obtiene un nodo interno en un árbol al evaluarse?
¿Qué valor obtiene un nodo interno en un árbol al evaluarse?
¿Cuál de las siguientes afirmaciones sobre el árbol binario es correcta?
¿Cuál de las siguientes afirmaciones sobre el árbol binario es correcta?
¿Qué método se utiliza para probar si un nodo tiene un hijo izquierdo?
¿Qué método se utiliza para probar si un nodo tiene un hijo izquierdo?
¿Qué error ocurre al eliminar un nodo que tiene dos hijos en un árbol binario?
¿Qué error ocurre al eliminar un nodo que tiene dos hijos en un árbol binario?
¿Cuál es la función principal de 'remove(k)' en un diccionario?
¿Cuál es la función principal de 'remove(k)' en un diccionario?
¿Qué método se utiliza para verificar si un diccionario está vacío?
¿Qué método se utiliza para verificar si un diccionario está vacío?
¿Qué es una tabla hash?
¿Qué es una tabla hash?
En los diccionarios no ordenados, ¿cómo se comparan las claves?
En los diccionarios no ordenados, ¿cómo se comparan las claves?
¿Qué operación retorna un iterador de las claves en un diccionario?
¿Qué operación retorna un iterador de las claves en un diccionario?
¿Qué se entiende por 'hash abierto' en el contexto de tablas hash?
¿Qué se entiende por 'hash abierto' en el contexto de tablas hash?
¿Cuál de las siguientes afirmaciones es incorrecta sobre la operación 'find(k)'?
¿Cuál de las siguientes afirmaciones es incorrecta sobre la operación 'find(k)'?
¿Qué sucede cuando se utiliza el método 'insert(k,v)' en un diccionario?
¿Qué sucede cuando se utiliza el método 'insert(k,v)' en un diccionario?
¿Cuál es la característica clave de un árbol AVL?
¿Cuál es la característica clave de un árbol AVL?
¿Qué se debe verificar al realizar la eliminación en un árbol AVL?
¿Qué se debe verificar al realizar la eliminación en un árbol AVL?
¿Cuál es el resultado de una rotación doble izquierda en un árbol AVL?
¿Cuál es el resultado de una rotación doble izquierda en un árbol AVL?
¿Cuál es la función de la segunda función hash H2 en el hashing doble?
¿Cuál es la función de la segunda función hash H2 en el hashing doble?
¿Qué operación se modifica en un árbol AVL cuando se inserta un nodo nuevo?
¿Qué operación se modifica en un árbol AVL cuando se inserta un nodo nuevo?
En una función hash, ¿cuál es una opción común para H2(k)?
En una función hash, ¿cuál es una opción común para H2(k)?
¿Qué tipo de árboles son los árboles AVL?
¿Qué tipo de árboles son los árboles AVL?
¿Qué significa O(log2(n)) en el contexto de árboles binarios de búsqueda?
¿Qué significa O(log2(n)) en el contexto de árboles binarios de búsqueda?
¿Cuál es la complejidad del algoritmo Merge Sort en el peor de los casos?
¿Cuál es la complejidad del algoritmo Merge Sort en el peor de los casos?
¿Qué caracteriza al algoritmo Heap Sort?
¿Qué caracteriza al algoritmo Heap Sort?
En el peor de los casos, ¿cuál es la complejidad del algoritmo Quick Sort?
En el peor de los casos, ¿cuál es la complejidad del algoritmo Quick Sort?
¿Qué permite hacer un archivo de acceso directo?
¿Qué permite hacer un archivo de acceso directo?
¿Cuál es la función del algoritmo seek en relación con los archivos?
¿Cuál es la función del algoritmo seek en relación con los archivos?
¿Qué implica la serialización de un objeto?
¿Qué implica la serialización de un objeto?
En la implementación de archivos indexados, ¿qué tipo de archivos son necesarios?
En la implementación de archivos indexados, ¿qué tipo de archivos son necesarios?
En Quick Sort, ¿cómo se determina el punto de división del arreglo?
En Quick Sort, ¿cómo se determina el punto de división del arreglo?
¿Cuál es una desventaja del uso de un arreglo ordenado?
¿Cuál es una desventaja del uso de un arreglo ordenado?
¿Qué característica define al árbol B+?
¿Qué característica define al árbol B+?
¿Qué tipo de complejidad tienen los árboles AVL y 2-3 para buscar y actualizar?
¿Qué tipo de complejidad tienen los árboles AVL y 2-3 para buscar y actualizar?
¿Cuál es una ventaja de usar pilas en estructuras de datos?
¿Cuál es una ventaja de usar pilas en estructuras de datos?
¿Qué aspecto negativo se relaciona con la estructura de un árbol binario?
¿Qué aspecto negativo se relaciona con la estructura de un árbol binario?
¿Qué propiedad caracteriza al árbol B?
¿Qué propiedad caracteriza al árbol B?
¿Cuál es la desventaja principal de usar un arreglo no ordenado?
¿Cuál es la desventaja principal de usar un arreglo no ordenado?
¿Cuál es la principal ventaja de usar un árbol Red-Black?
¿Cuál es la principal ventaja de usar un árbol Red-Black?
Flashcards
Factores de calidad externos
Factores de calidad externos
La calidad del software que puede ser detectada por un usuario sin mirar el código fuente.
Factores de calidad internos
Factores de calidad internos
La calidad del software que solo los programadores pueden ver al analizar el código fuente.
Correctitud
Correctitud
El programa realiza las tareas para las cuales fue diseñado correctamente.
Robustez
Robustez
Signup and view all the flashcards
Extensibilidad
Extensibilidad
Signup and view all the flashcards
Portabilidad
Portabilidad
Signup and view all the flashcards
Reusabilidad
Reusabilidad
Signup and view all the flashcards
Eficiencia
Eficiencia
Signup and view all the flashcards
Árbol de expresión aritmética
Árbol de expresión aritmética
Signup and view all the flashcards
Algoritmo Parse(exp)
Algoritmo Parse(exp)
Signup and view all the flashcards
findAll(k)
findAll(k)
Signup and view all the flashcards
insert(k,v)
insert(k,v)
Signup and view all the flashcards
remove(e)
remove(e)
Signup and view all the flashcards
entries()
entries()
Signup and view all the flashcards
Tabla Hash
Tabla Hash
Signup and view all the flashcards
Diccionarios No Ordenados
Diccionarios No Ordenados
Signup and view all the flashcards
Diccionarios Ordenados
Diccionarios Ordenados
Signup and view all the flashcards
isEmpty()
isEmpty()
Signup and view all the flashcards
Hash Doble
Hash Doble
Signup and view all the flashcards
AVL
AVL
Signup and view all the flashcards
Rotación en AVL
Rotación en AVL
Signup and view all the flashcards
Rotación en AVL (propiedades)
Rotación en AVL (propiedades)
Signup and view all the flashcards
Eliminación en AVL
Eliminación en AVL
Signup and view all the flashcards
Merge Sort
Merge Sort
Signup and view all the flashcards
Heap Sort
Heap Sort
Signup and view all the flashcards
Quick Sort
Quick Sort
Signup and view all the flashcards
Serialización
Serialización
Signup and view all the flashcards
Archivo de acceso directo
Archivo de acceso directo
Signup and view all the flashcards
Archivo Indexado
Archivo Indexado
Signup and view all the flashcards
Arreglo Ordenado (Búsqueda y Actualización)
Arreglo Ordenado (Búsqueda y Actualización)
Signup and view all the flashcards
Árbol Binario de Búsqueda
Árbol Binario de Búsqueda
Signup and view all the flashcards
Árbol AVL
Árbol AVL
Signup and view all the flashcards
Árbol B
Árbol B
Signup and view all the flashcards
Árbol B+
Árbol B+
Signup and view all the flashcards
Study Notes
Factores de Calidad
- Factores externos: Características de calidad del software visibles al usuario, sin necesidad de conocer el código fuente.
- Factores internos: Características de calidad del software visibles al programador, que implica conocer el código fuente.
- Corrección: El programa produce la salida esperada para entradas dadas, cumpliendo con la especificación.
- Robustez: Capacidad del programa para manejar entradas inesperadas o no contempladas, respondiendo adecuadamente (no colapsando).
- Extensibilidad: Facilidad para añadir nuevas funcionalidades al software sin afectar el funcionamiento existente.
- Portabilidad: Adaptabilidad del software a diferentes entornos de hardware o sistemas operativos con poco o ningún cambio.
- Reutilización: Posibilidad de utilizar el código fuente en otros programas, para generar código ya existente y ahorrar tiempo.
- Eficiencia: Requiere pocos recursos informáticos (CPU y memoria), ejecutando tareas rápidamente.
- Facilidad de uso: Intuitividad y facilidad de manejo para usuarios con diferentes niveles de experiencia.
Excepciones
- Excepciones: Eventos inesperados durante la ejecución de un programa, como errores o entradas incorrectas.
- Manejo de excepciones (POO): En la programación orientada a objetos, las excepciones son objetos que indican una condición inesperada. Otros módulos del programa capturan la excepción y reparan la situación.
- Excepciones en Java: Las excepciones en Java son subclases de la clase
Exception
. Los métodos deben especificar en su signatura las excepciones que pueden lanzar. Las excepciones se lanzan con la sentencia "throw".
Interfaces
- Interfaces: Una colección de declaraciones de métodos sin atributos, que serán implementadas por una o más clases. Las clases que implementan la interfaz deben implementar todos los métodos definidos por la interfaz.
Clases Wrapper
- Clases Wrapper: Facilitan tratar datos primitivos (int, boolean, etc.) como objetos. Se utilizan por razones de tipo y polimorfismo.
Genericidad
- Genericidad: Mecanismo para crear estructuras de datos y clases cuya funcionalidad es independiente del tipo de datos que contienen.
- Parametrización: Se establece un tipo variable durante la compilación para crear un esquema genérico.
Estructuras de Datos
- Estructura de datos: Forma de organizar un conjunto de datos para facilitar su manipulación y acceso tanto global como particular.
Algoritmos
- Algoritmo: Conjunto de pasos bien definidos para realizar una tarea específica en tiempo finito.
- Orden de tiempo de un algoritmo: Función T(n) que representa el tiempo de ejecución del algoritmo en función del tamaño de la entrada (n)
- Notación asintótica (big-oh): Descripción del comportamiento de un algoritmo (i.e., crecimiento del tiempo de ejecución) a medida que la entrada crece.
Secuencias
- Secuencia: Una colección ordenada de elementos homogéneos (del mismo tipo).
- Ventajas de las listas en arreglos: Residencia principal de memoria, recuperación de componentes constante (O(1)),
- Desventajas de las listas en arreglos: Tamaño máximo definido, inserción/eliminación de elementos en orden lineal (O(n))
Pilas
- TDA Pila: Una colección de objetos actualizada siguiendo una política LIFO (último en entrar, primero en salir).
- Operaciones de Pila: Push(e) – inserta un elemento e en la cima, Pop() – elimina y devuelve el elemento superior, isEmpty()- retorna verdadero si la pila está vacía, top() – devuelve el elemento superior sin eliminarlo, size() - devuelve el número de elementos.
Colas
- TDA Cola: Una colección de objetos actualizada siguiendo una política FIFO (primero en entrar, primero en salir).
- Operaciones de Cola: Enqueue(e) – inserta un elemento e al final, Dequeue() – elimina y devuelve el elemento del principio, isEmpty() – retorna verdadero si la cola está vacía, Front() – devuelve el elemento del principio sin eliminarlo, size() - devuelve el número de elementos.
Listas Enlazadas
- Lista enlazada: Una secuencia que contiene estructuras de datos donde cada elemento apunta al siguiente elemento.
Árboles
- Árbol: Un tipo de estructura de datos que organiza los elementos jerárquicamente.
- Nodo hoja: Un nodo sin hijos en un árbol.
- Nodo interno: Un nodo que posee uno o más nodos hijos en un árbol.
- Raíz: El nodo superior de un árbol.
- Hijos de un nodo: Los nodos que están directamente conectados al nodo.
- Padre de un nodo: El nodo que se encuentra encima de otro nodo.
- Hermano de un nodo: Un nodo que tiene el mismo padre que otro nodo.
- Recorridos de un árbol: Forma sistemática de visitar los nodos del árbol (preorden, postorden, inorden y por niveles).
- Altura de un árbol: Longitud del camino más largo desde la raíz a una hoja.
Árboles Binarios de Búsqueda
- Árbol binario de búsqueda (ABB): Una estructura de datos jerarquizada en forma de árbol en la que cada nodo tiene como máximo 2 hijos.
- Propiedad de los ABB: Para cada nodo v, todos los valores en el subárbol izquierdo están por debajo de v y los valores en el subárbol derecho están por encima de v.
- Operaciones: Buscar, eliminar e insertar un nodo.
Árboles Binarios
- Árbol binario: Estructura de datos jerarquizada en la que cada nodo tiene como máximo dos nodos hijos.
- Ordenamiento: Orden que deben cumplir los nodos hijos de un nodo.
- Hijos: Los nodos inmediatos que descienden de un nodo padre.
Árboles AVL
- Árbol AVL: Árbol binario de búsqueda equilibrado. Se auto-equilibra para evitar problemas de rendimiento.
Árboles 2-3-4
- Árbol 2-3-4: Árbol de búsqueda que generaliza la idea de los árboles 2-3, permitiendo un número variable de claves por nodo.
Tabla Hash
- Tabla Hash: Estructura de datos que implementa mapeos. Puede proveer búsquedas/inserciones/eliminaciones en tiempo promedio O(1)
Heap
- Heap: Estructura de datos que busca el elemento de mayor prioridad.
Grafos
- Grafo: Conjunto de vértices y aristas (con o sin dirección). Pueden ser dirigidos y no dirigidos.
- Vértices: Puntos del grafo.
- Aristas: Conexiones entre vértices.
- Grado (de un vértice): Cantidad de aristas conectadas a un vértice.
Recorridos de Grafos
- DFS(Depth-First Search): Algoritmo recursivo para recorrer un grafo.
- BFS (Breadth-First Search): Algoritmo no recursivo para recorrer un grafo que visita todos los nodos adyacentes antes de pasar a los siguientes niveles.
- Recorrido por niveles: Se visita a todos los nodos de un mismo nivel antes de visitar los del siguiente.
Camminos en Grafos
- Camino: Secuencia de vértices y aristas que conecta dos vértices.
- Camino de costo mínimo: El algoritmo de Dijkstra busca el camino más corto entre dos vértices dados en un grafo, considerando las aristas ponderadas (con costo).
- Camino entre todos los vértices: El algoritmo de Floyd-Warshall permite hallar el camino más corto entre todos los pares de vértices en un grafo ponderado.
Serialización
- Serialización: Proceso de convertir el estado de un objeto en un formato que puede ser almacenado y recuperado.
- Archivos de acceso directo: Permiten acceder a cualquier registro sin necesidad de leer los anteriores. Se puede utilizar en archivos indexados.
- Archivos indexados: Se utiliza un índice (tabla) para acceder rápidamente a los datos.
Compresión de Datos
- Compresión de datos: Reducción del tamaño de un archivo, manteniendo la información original.
- Compresión con pérdida: Se pierde información durante el proceso de compresión.
- Compresión sin pérdida: No se pierde información durante el proceso de compresión.
- Algoritmo Huffman: Algoritmo de compresión (sin pérdida) que asigna códigos a los caracteres de acuerdo a su frecuencia.
Árbol B y B+
- Árbol B: Generalización del árbol 2-3, permitiendo un número variable de claves por nodo. Propiedades: todos los nodos a la misma profundad tienen el mismo número de claves.
- Árbol B+: Similar al árbol B, pero los nodos internos solo contienen claves, lo que mejora las operaciones de recorrido.
Ordenamiento
- Algoritmos de Ordenamiento: Métodos para ordenar una secuencia de elementos. Se diferencian por tiempo de ejecución, uso de memoria y complejidad.
- Bubble Sort: Ordenamiento que recorre el arreglo y compara elementos adyacentes intercambiándolos si están fuera de orden.
- Insertion Sort: Ordenamiento que inserta un elemento en la posición correcta en una secuencia organizada de manera creciente.
- Merge Sort: Divide y ordena – método recursivo que divide un arreglo en subconjuntos más pequeños, los ordena y luego los combina.
- Heap Sort: Método que utiliza una cola con prioridades para ordenar un arreglo.
- Quick Sort: Divide y ordena – método recursivo que elige un elemento como pivote y divide el arreglo en dos subarreglos, unos menores y otros mayores que el pivote.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.