Promedio de descarga/visualización de los códigos de Algoritmia
Listado de los códigos con más promedio de visualizaciones realizadas por día desde su publicación en la web.
Colección de 15 ejercicios resueltos. Algoritmos desarrollados en Pseudolenguaje. En formato pdf. Contiene 6 páginas.
Código y explicación del Algoritmo de Hamming. En formato html.
Algoritmo para el procesado de imágenes que es capaz de eliminar el ruido de una imagen sin que la imagen pierda calidad ni nitidez. También tiene otras aplicaciones, como por ejemplo eliminar un texto que haya superpuesto sobre una imagen.
Este artículo informa sobre los pasos a tener en cuenta a la hora de desarrollador una solución algoritmica. Además explica el significado de algunos conceptos básicos de la programación.
El Problema del Camino Mínimo, conocido también como "Shortest Path Problem" (SPP), es uno de los clásicos de la investigación de operaciones y por décadas es material de trabajo sobre modelos de "optimización de redes", que es un tipo especial de modelo de programación lineal, pero que provee un lenguaje más intuitivo que hablar de ecuaciones, funciones objetivo y restricciones.
Los algoritmos de vuelta atrás se utilizan para encontrar soluciones a un problema. No siguen unas reglas para la búsqueda de la solución, simplemente una búsqueda sistemática, que más o menos viene a significar que hay que probar todo lo posible hasta encontrar la solución o encontrar que no existe solución al problema. Para conseguir este propósito, se separa la búsqueda en varias búsquedas parciales o subtareas. Asimismo, estas subtareas suelen incluir más subtareas, por lo que el tratamiento general de estos algoritmos es de naturaleza recursiva. En este artículo veremos como implementarlo.
Estamos tan acostumbrados a ver los polinomios expresados como suma de monomios, que cuando tenemos que implementar un algoritmo para evaluarlos tendemos a interpretar tal cual la expresión y a codificarla tal y como lo haríamos a mano con ayuda de una calculadora. Este articulo de explica detalladamente el funcionamiento del algoritmo de Horner.
...De todas formas, los algoritmos recursivos son apropiados principalmente cuando el problema a resolver, o la función a calcular, o la estructura de datos a procesar, están ya definidos de forma recursiva.
Todos los que hemos programado con algun lenguaje de programacion sabemos lo dificil que “fue” o “es” comprender al 100% la recursividad. Asi que en este Articulo trataremos de explicarla de forma simple y detallada, al final veremos algun ejemplo pero lo que importa aqui sera la explicacion para que todos sepan como funciona, cuando implementarla y desarrollar tus propias ideas sobre el tema.
Este artículo, más que un artículo se trata de una colección de los algoritmos "típicos" de ordenación, que siempre se estudian. Además, algunos algoritmos no sólo veremos su código, sino que también estudiaremos su complejidad y veremos distintos métodos de optimización de los mismos.
Los métodos numéricos son técnicas mediante las cuales es posible formular problemas de tal forma que puedan resolverse usando operaciones. Aunque hay muchos tipos de métodos numéricos, todos comparten una característica común: llevan a cabo un buen número de tediosos cálculos aritméticos. Es por ello que la computación es una herramienta que nos facilita el uso y desarrollo de ellos.
Incluye: Raíces de Polinomios, Matrices y Vectores, Aproximación e Interpolación y Diferenciación e Integración Numérica.
La técnica de diseño de algoritmos llamada "divide y vencerás" (divide and conquer) consiste en descomponer el problema original en varios sub-problemas más sencillos, para luego resolver éstos mediante un cálculo sencillo. Por último, se combinan los resultados de cada sub-problema para obtener la solución del problema original.
Funcionamiento y explicación del algoritmo CORDIC.
Definiciones básicas, recorridos de grafos, arboles cobertores mínimos, distancias mínimas en un grafo dirigido. Explicación de los algoritmos de Kruskal, Prim, Dijkstra, Floyd y Warshall
En programación, un algoritmo establece, de manera genérica e informal, la secuencia de pasos o acciones que resuelve un determinado problema y, para representarlo, se utiliza, fundamentalmente, dos tipos de notación: pseudocódigo y diagramas de flujo.
Así pues, en este artículo, voy a explicar, con un ejemplo, los pasos que "mentalmente" se pueden seguir para diseñar el algoritmo, en Pseudocódigo CEE (C En Español) y ordinograma, de un programa que dé solución a un problema de programación.
Teoria de la indexación mediante la implementación con arboles.
Artículo en el que se detalla todo lo que debe saberse acerca de los árboles-B
Articulo en el que se describen los principales algoritmos de ordenamiento existentes. Contiene ejemplos de los mismos.
El problema de asignación de horarios consiste en asignar a una serie de asignaturas unos horarios. La dificultad reside en que los asignaturas se deben impartir ocupando el menor tiempo posible, haciendo que no se pisen unas asignaturas con otras, teniendo en cuenta los alumnos matriculados en éstas.
Así conseguiremos crear un horario para todas las asignaturas sin que coincidan unas a otras y asegurando que los alumnos puedan asistir a las asignaturas que han elegido sin perderse ninguna.
Su finalidad es organizar ciertos datos (normalmente arrays o ficheros) en un orden creciente o decreciente mediante una regla prefijada (numérica, alfabética...). Atendiendo al tipo de elemento que se quiera ordenar puede ser:
Ordenación interna: Los datos se encuentran en memoria (ya sean arrays, listas, etc), y son de acceso aleatorio o directo (se puede acceder a un determinado campo sin pasar por los anteriores).
Ordenación externa: Los datos están en un dispositivo de almacenamiento externo (ficheros), y su ordenación es más lenta que la interna.
Una de las estructuras las datos más importantes y prominentes que existen es el árbol. No es un árbol en el sentido botánico de la palabra, sino uno de naturaleza más abstracta. Todos hemos visto usar tales árboles para describir conexiones familiares. Los dos tipos más comunes de árboles familiares son el "árbol de antecesores", que empieza en un individuo y va hacia atrás a través de padres, abuelos, etc., y el "árbol de descendientes", que va hacia delante a través de hijos, nietos, etc.
Se trata de un algoritmo que puede ser usado para compresión o encriptación de datos.
Este algoritmo se basa en asignar códigos de distinta longitud de bits a cada uno de los caracteres de un fichero. Si se asignan códigos más cortos a los caracteres que aparecen más a menudo se consigue una compresión del fichero. Esta compresión es mayor cuando la variedad de caracteres diferentes que aparecen es menor. Por ejemplo: si el texto se compone únicamente de números o mayúsculas, se conseguirá una compresión mayor.
Todo lo que hay que saber acerca de los árboles-B lo encontrarás en este artículo. Incluye su implementación en C++
Transparencias correspondientes a la asignatura de Ingeniería Informática curso 2001-2002. Contiene 29 transparencias.
Implementación de los algoritmos de cota inferior, Quicksort, colas de Prioridad y Heapsort, Bucketsort, mergesort y ordenamiento externo.
Todo lo que hay que saber acerca de los algoritmos de búsqueda, lo encontraréis aquí.
Implementación de conjuntos con listas enlazadas.
Dependiendo del sistema operativo en que se trabaje, hay que considerar el orden de los bytes en los tipos de datos numéricos que utilizan varios bytes. Existen dos formatos diferentes, denominados "Little Endian" y "Big Endian".