Archivo de la etiqueta: Algoritmos

Optimización de Búsqueda Binaria y Funciones Hash en Estructuras de Datos

Búsqueda Binaria

Código: binaria(int A[], int clave, int inf, int sup) {

%IMAGE_1%

Al ser recursivo, hemos de actualizar límites. If (inf > sup) Return -1; Medio = (inf + sup) / 2; If (clave < A[medio]) Return binaria(A, clave, medio + 1, sup); Return medio;

Ejemplo: %IMAGE_2%

Busca el %IMAGE_3% y el %IMAGE_4%. El orden de llamada es: binaria(A, 25, 0, 8), binaria(A, 25, 5, 8). La función devuelve 6.

El orden de llamada es binaria(A, 7, 0, 8), binaria(A, 7, 0, 3), binaria(A, 7, 2, 3), binaria( Seguir leyendo “Optimización de Búsqueda Binaria y Funciones Hash en Estructuras de Datos” »

Fundamentos de la Programación y Estructuras de Datos

Ordenador: Herramienta capaz de llevar a cabo una tarea, siguiendo un algoritmo que le indique, con la mayor precisión posible, lo que debe hacer.

Programas: Secuencia de instrucciones entendibles por los ordenadores que permiten la realización de las acciones para las que han sido creadas. Para escribir un programa se utilizan distintos lenguajes, llamados lenguajes de programación. Se escriben en código fuente: Instrucciones que deben ser ejecutadas a fin de realizar las acciones para las que Seguir leyendo “Fundamentos de la Programación y Estructuras de Datos” »

Conceptos Clave de Programación: Algoritmos, Diagramas de Flujo y Lenguajes

1. ¿Qué es el ciclo de vida de un programa?

Es una secuencia estructurada y bien definida de las etapas en Ingeniería de software para desarrollar un programa.

2. ¿Con qué otros nombres se les conoce a las especificaciones detalladas de entradas y salidas?

Datos de entrada y datos de salida.

3. ¿Qué son los procesos?

Las fórmulas, cálculos, cambios o transformaciones que deben seguir los datos de entrada para convertirse en datos de salida o resultados. También se conocen como expresiones.

4. Seguir leyendo “Conceptos Clave de Programación: Algoritmos, Diagramas de Flujo y Lenguajes” »

Algoritmos de Grafos: Dijkstra, Floyd, Prim y Kruskal

Algoritmos de Grafos: Conceptos y Pseudocódigo

Este documento presenta una revisión de varios algoritmos fundamentales en la teoría de grafos, incluyendo Dijkstra, Floyd, Prim y Kruskal. Se proporciona pseudocódigo y una descripción de cada algoritmo.

Algoritmo Unir Particiones

Este algoritmo se utiliza para unir particiones en un grafo, dado un diccionario que mapea vértices a números de partición y una arista que especifica las particiones a unir.

Entrada:

Fundamentos de la Programación: Datos, Operadores y Estructuras

Dato: Es toda información característica, susceptible de tratamiento informático. La forma en que se clasifican establece la estructura y forma de los datos así como su representación en el lenguaje de programación.

Sistemas y Códigos de Numeración

El hombre se expresa alfabéticamente con el idioma y decimalmente en vista numérica. El ordenador realiza ambas acciones en binario.

Sistemas de Numeración

Conjunto de símbolos y reglas que se utilizan para representar datos numéricos. Se caracterizan Seguir leyendo “Fundamentos de la Programación: Datos, Operadores y Estructuras” »

Conceptos Clave de Informática de Servicios: Desde Algoritmos hasta la Web

Algoritmo

Descripción precisa de los pasos que nos permiten obtener la solución de un problema determinado. Los pasos son acciones u operaciones que se efectúan sobre ciertos objetos. El diseño de algoritmos implica un análisis profundo del problema, de sus datos iniciales, del proceso que se le aplica y de los resultados esperados.

Base de Datos

Colección de datos, organizados de forma integrada en archivos, junto con un conjunto de programas dedicados a su gestión. Estos forman los sistemas Seguir leyendo “Conceptos Clave de Informática de Servicios: Desde Algoritmos hasta la Web” »

Criptografía: Fundamentos, Técnicas y Aplicaciones en la Seguridad Informática

Criptografía: Fundamentos, Técnicas y Aplicaciones

La criptografía consiste en escribir con una clave secreta para proteger datos. Permite enviar mensajes en clave secreta a través de la red.

Cifrado

Cifrar: Proteger datos modificándolos usando una clave. Aplicaciones:

Implementación Eficiente de TDA Cola: Optimización de Procedimientos y Almacenamiento

TDA Cola

Implementación de TDA Cola que prioriza velocidad de procedimiento

CONST
max = 10

TIPO
t_cola = registro
contenedor = array[1…max] de tipo_dato
e, s = entero
fin_registro

VAR
cola = t_cola

e: posición en la que debe ingresar el nuevo elemento
s (frente): posición de la cual se debe extraer un elemento

Proc. inicializar_cola (var cola: t_cola)
INICIO
cola.e = 1
cola.s = 1
FIN

Función cola_vacia (cola: t_cola): lógico
INICIO
cola_vacia = (cola.s = cola.e)
FIN

Proc. agregar_cola (var cola: t_cola, nuevo: Seguir leyendo “Implementación Eficiente de TDA Cola: Optimización de Procedimientos y Almacenamiento” »

Conceptos Fundamentales de Sistemas Operativos y Programación

Sistema Operativo:

Un sistema operativo se puede ver como una máquina virtual, que facilita su uso, o como un administrador de recursos, para conseguir un uso eficiente de todo el sistema, dependiendo de cómo interese verlo en cada momento.

El sistema operativo como máquina virtual:

Tanto el programador como el usuario necesitan una herramienta que les libere de toda la complejidad que supone manejar el hardware mediante código máquina. Esta herramienta es el sistema operativo, el cual puede ser Seguir leyendo “Conceptos Fundamentales de Sistemas Operativos y Programación” »

Introducción a la Programación: Conceptos y Herramientas Fundamentales

Programación y Algoritmos de Control

¿Qué es un Algoritmo?

Un algoritmo es una lista de pasos organizados que establecen las acciones a seguir para obtener la solución a un problema concreto.

Características de los Algoritmos