Recursividad con C# (2)


Recursividad con C# (2)

Como lo prometido es deuda, empezaremos esta segunda parte del minicurso de Recursividad en C# con el clásico Hanoi, y luego hablaremos sobre algunas técnicas asociadas al uso de la recursividad, como son “Backtracking” y “Divide y Vencerás”. Además, resolveremos paso a paso varios de los clásicos problemas de recursividad. Seguir leyendo →

Recursividad con C# (1)

El concepto de recursividad es uno de los más complejos y díficiles de entender en la programación orientada a objetos. Lo trataré de explicar con algunas ideas y algún ejemplo.

En la vida hay muchos conceptos que se utilizan a si mismos para explicarse. Una rama de un árbol a su vez tiene ramas, que a su vez puede tener ramas y así sucesivamente hasta que aparecen ramas que solo tienen hojas. Seguir leyendo →

Ordenacion por burbuja en C#

Ordenacion por burbujaEste método consiste en ir comparando cada par de elementos del array e ir moviendo el mayor elemento hasta la última posición, comenzando desde la posición cero. Una vez acomodado el mayor elemento, prosigue a encontrar y acomodar el segundo más grande comparando de nuevo los elementos desde el inicio de la lista, y así sigue hasta ordenar todos los elementos del arreglo. Al ser necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, hace que el ordenamiento por burbuja sea uno de los algoritmos más ineficientes que existen. Seguir leyendo →

Arrays en C#

En programación un array es una zona de almacenamiento que contiene elementos de un mismo tipo (enteros, boléanos, fechas). En principio todos las arrays son de una dimensión, pero veremos que sus elementos pueden ser a su vez arrays (un proceso que puede ser recursivo), es por esto que se habla de arrays multidimensionales, aunque las más fáciles de “ver” o imaginar son las de dos (un tablero de ajedrez) y tres dimensiones (el cubo de Rugby).
Seguir leyendo →