Los Temas más visitados de Algoritmia
Listado de los Temas más visitados durante los últimos 30 días
Este algoritmo es muy interesante porque no usa ninguna sentencia if, es decir, no hay ninguna condición, a excepción de los bucles. El algoritmo funciona mejor con una lista larga, de un solo elemento simple: no hay structs, y de números repetitivos. Es mejor que los números no se separen mucho entre sí; por ejemplo, el valor máximo sea de 10, y el mínimo de 1, aunque tengamos 10.000 entradas (o elementos). La desventaja de este algoritmo es la necesidad de almacenar muchos datos en memoria.
Colección de 15 ejercicios resueltos. Algoritmos desarrollados en Pseudolenguaje. En formato pdf. Contiene 6 páginas.
Hace algún tiempo, revisamos en este blog algunos de los patrones de ordenación más utilizados en programación: el bubble sort, selection sort, insertion sort… Javascript ha cambiado mucho desde aquel 2011, por lo que quizá, ha llegado la hora de actualizarlos a los nuevos tiempos y su nueva sintaxis.
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".
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 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.
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 explica el funcionamiento de la recursividad. Incluye ejemplos.
En formato pdf. Contiene 18 páginas.
Si quieres programar un juego de ajedrez, o si quieres desempeñarte mejor cuando juegas contra uno o si tienes curiosidad te sería interesante conocer cómo le hace más o menos aquel programita que bajaste o compraste el otro día para hacer como que sabe jugar ajedrez
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.
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.
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.
...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.
Artículo sobre la solución del Problema de Asignación de Horarios con Vértice-Coloración de grafos.
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.
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.
Todo lo que hay que saber acerca de los árboles-B lo encontrarás en este artículo. Incluye su implementación en C++
Aprende y entiende como funciona la recursividad.
1. Introducción
2. Recursividad
3. Propiedades de las definiciones o algoritmos recursivos
4. Cadenas recursivas
5. Definición recursiva de expresiones algebraicas
6. Programación Recursiva
7. Asignación estática y dinámica de memoria
8. Ejemplos
9. Conclusión
10. Bibliografía
En formato pdf. Contiene 22 páginas.
Para procesar información en un computador es necesario hacer una abstracción de los datos que tomamos del mundo real -abstracción en el sentido de que se ignoran algunas propiedades de los objetos reales, es decir, se simplifican-. Se hace una selección de los datos más representativos de la realidad a partir de los cuales pueda trabajar el computador para obtener unos resultados. Cualquier lenguaje suministra una serie de tipos de datos simples, como son los números enteros, caracteres, números reales. En realidad suministra un subconjunto de éstos, pues la memoria del ordenador es finita. Los punteros (si los tiene) son también un tipo de datos. El tamaño de todos los tipos de datos depende de la máquina y del compilador sobre los que se trabaja. En principio, conocer la representación interna de estos tipos de datos no es necesaria para realizar un programa, pero sí puede afectar en algunos casos al rendimiento.
Código y explicación del Algoritmo de Hamming. En formato html.
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.
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.
Este articulo es una traducción del algoritmo original en inglés de Bruce Schneier. En la original se pueden encontrar enlaces a código fuente, vectores de prueba y traducciones a diferentes idiomas.
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.
Un estudio sobre la implementación recursiva del tipo abstracto Árbol AVL en C
Artículo en el que se detalla todo lo que debe saberse acerca de los árboles-B
Se dice que algo es recursivo si se define en función de sí mismo o a sí mismo. También se dice que nunca se debe incluir la misma palabra en la definición de ésta. El caso es que las definiciones recursivas aparecen con frecuencia en matemáticas, e incluso en la vida real. Un ejemplo: basta con apuntar una cámara al monitor que muestra la imagen que muestra esa cámara. El efecto es verdaderamente curioso, en especial cuando se mueve la cámara alrededor del monitor.
Una cola es una estructura de datos de acceso restrictivo a sus elementos. Un ejemplo sencillo es la cola del cine o del autobús, el primero que llegue será el primero en entrar, y afortunadamente en un sistema informático no se cuela nadie salvo que el programador lo diga.