Archivo de la etiqueta: Algoritmos

Fundamentos de Algoritmos: Complejidad, Estructuras y Estrategias de Resolución

Complejidad Algorítmica

El orden típico de complejidad, de menor a mayor, es: Θ(1) < Θ(log n) < Θ(n) < Θ(n log n) < Θ(n²) < Θ(n³) < Θ(2ⁿ) < Θ(n!).

  • Θ(n): Recorrer un vector una vez.
  • Θ(n²): Bucles anidados.
  • Θ(log n): Dividir entre 2 repetidamente.

Estrategias de Diseño

Divide y Vencerás

Divide el problema en varios subproblemas, los resuelve recursivamente y combina las soluciones. Se aplica en algoritmos como MergeSort o Quicksort. Su forma típica es T(n) = aT(n/ Seguir leyendo “Fundamentos de Algoritmos: Complejidad, Estructuras y Estrategias de Resolución” »

Ejercicios de Programación en C: Manipulación de Vectores y Matrices

Ejercicios Prácticos de Programación en C: Vectores y Matrices

Cuestión 1: Inversión de un Vector de Enteros

Enunciado: Dado un vector de enteros de dimensión 5, cree otro que contenga los elementos invertidos del primero.

#include <stdio.h>

int main() {
    int vector[5];
    int i;
    for (i = 0; i < 5; i++) {
        printf("Deme un elemento del vector: ");
        scanf("%d", &vector[i]);
    }
    printf("El vector introducido es: ");
    for (i = 0; i < 5; i++) {
       Seguir leyendo “Ejercicios de Programación en C: Manipulación de Vectores y Matrices” »

Estructuras de Datos y Algoritmos: Árboles, Grafos y Hashing

Árboles Generales y Estructuras de Búsqueda

Representación mediante Lista de Hijos

¿Hay alguna operación claramente ineficiente en la representación de árboles generales mediante lista de hijos?
Sí, en la representación de lista de hijos, la operación de búsqueda de un nodo hermano específico puede ser ineficiente porque requiere recorrer secuencialmente toda la lista de hijos del nodo padre, lo que tiene un coste $O(n)$ en el peor caso.

Vector de Posiciones Relativas

¿En qué situaciones Seguir leyendo “Estructuras de Datos y Algoritmos: Árboles, Grafos y Hashing” »

Fundamentos de Algoritmos: Variables, Estructuras y Diagramas de Flujo

Para ayudarte a estudiar para tu quiz, he preparado este material completo basado en tus apuntes, cubriendo los tres tipos de estructuras fundamentales, los tipos de variables y ejemplos prácticos que incluyen tablas, pseudocódigo y la lógica de los diagramas de flujo.

1. Tipos de Variables

En tus fuentes se identifican tres tipos principales de datos que debes dominar:

Estructuras de Control: Cómo Elegir y Aplicar Ciclos en Programación

¿Cómo elegir la estructura de control adecuada?

Elegir la estructura adecuada depende principalmente de si sabes cuántas veces se repetirá la acción y en qué momento quieres evaluar la condición para detenerte. Aquí te explico cómo decidir y los pasos para cada una según tus apuntes:

¿Cómo saber cuál usar?

Fundamentos de Algoritmos y Seudocódigo para Programación

Algoritmos

¿Qué es un algoritmo?

Es el momento de realizar el algoritmo que resolverá el problema.

En esta unidad, vamos a explicarles qué es un algoritmo, sus características y componentes.


Comenzamos con el siguiente algoritmo de ejemplo. Te proponemos un desafío: leé detenidamente el siguiente algoritmo. ¿Podés darte cuenta qué es lo que hace? ¡Seguramente que sí! Ponete a prueba:

SEUDOCÓDIGO

VARIABLES
    NOTA1, NOTA2, NOTA3: ENTERO
    PROMEDIO: REAL

INICIO
    Mostrar ("Ingrese Seguir leyendo “Fundamentos de Algoritmos y Seudocódigo para Programación” »

Conceptos Fundamentales de Programación: Algoritmos, Estructuras y Tipos de Datos

Repaso de Conceptos Esenciales en Programación y Lógica Algorítmica

A continuación, se presentan preguntas y respuestas clave sobre terminología, métodos de solución de problemas y estructuras algorítmicas.

Definiciones y Terminología Básica

Algoritmos, programación y funciones de Excel: conceptos, operadores y Karel

Algoritmos

Algoritmos: Conjunto de instrucciones para resolver un problema o ejecutar una tarea. También se define como el conjunto de pasos ordenados, finitos y precisos que conducen a la resolución de un problema.

Propiedades de un algoritmo

Estructuras de Datos y Algoritmos Fundamentales en Java

Estructuras de Datos: Pilas y Colas

En este primer bloque, se presenta la implementación de dos estructuras fundamentales: la Pila (Stack) y la Cola (Queue). Se demuestra el funcionamiento de los principios LIFO (Last In, First Out) y FIFO (First In, First Out).

import java.util.Stack;
import java.util.LinkedList;
import java.util.Queue;

public class Pilas {
    public static void main(String[] args) {
        
        // Creamos la Pila (LIFO/FILO)
        Stack<String> pila = new Stack< Seguir leyendo “Estructuras de Datos y Algoritmos Fundamentales en Java” »

Métodos Fundamentales de Ordenación y Búsqueda en Algoritmos

Conceptos Fundamentales de Ordenación

Ordenar significa reorganizar un conjunto de datos u objetos en una secuencia definida. Los métodos de ordenación se clasifican en dos categorías principales: