recursividad

Árbol binario en C - struct nodo

Árbol binario en C – Inserción y recorrido

Resumen: implementar la estructura de datos de árbol, árbol binario, binary tree o simplemente tree en C y mostrar operaciones para:

  • Insertar un nuevo elemento u hoja
  • Recorridos inorden, postorden y preorden

Vamos a usar recursividad para algunas operaciones. Al insertar elementos vamos a compararlos para insertarlos a la izquierda si son menores que el nodo padre, o a la derecha en caso contrario.

Leer más »Árbol binario en C – Inserción y recorrido

Ejecución de Quicksort en C

Quicksort en C: implementación de algoritmo

Ordenar arreglo con Quicksort en C: en este post voy a mostrarte cómo implementar el algoritmo de ordenamiento rápido o quicksort en ANSI C.

Este algoritmo destaca porque es uno de los más rápidos al momento de ordenar arreglos, además de que el mismo no ocupa arreglos temporales, simplemente intercambia variables y utiliza el método de divide y vencerás.

Ejecución de Quicksort en C

Al final podremos ordenar arreglos usando el algoritmo Quicksort en C.

Leer más »Quicksort en C: implementación de algoritmo

Funciones en Kotlin

En este artículo veremos cómo definir e invocar funciones en Kotlin usando la palabra reservada fun.

Daremos un repaso para ver recursividad, funciones variádicas, vacías, de una sola línea, sobrecarga de métodos, funciones con nombres de parámetros, funciones como variables y mucho más.

Factorial en Kotlin – Ejemplo de función con recursividad

Una función es una forma de separar y dividir la lógica de nuestros programas. La mayoría de veces, las funciones en Kotlin reciben argumentos, los procesan y devuelven un resultado.

A veces hay funciones que no regresan nada, o que no reciben nada; pero que igualmente sirven para algo.

Leer más »Funciones en Kotlin

Crear archivos zip con PHP: agregar archivos y directorios, descargar zip y proteger con contraseña

Desde hace tiempo he querido hacer un post completo sobre cómo trabajar con archivos ZIP en PHP.

Como sabemos, los archivos ZIP son unos paquetes que permiten tener dentro múltiples archivos para su posterior transporte.

Tutorial de creación de archivos zip con PHP

PHP tiene soporte nativo para los archivos ZIP en la clase ZipArchive y permite comprimir o empaquetar archivos de una manera fácil.

Hoy vamos a ver cómo:

  1. Crear un archivo zip  y agregarle contenido
  2. Forzar la descarga de un archivo zip, es decir, crear un zip y mostrarlo en el navegador
  3. Agregar archivos a un zip a partir de un patrón glob
  4. Agregar todo el contenido de un directorio de manera recursiva. Es decir, agregar todo el contenido y si hay un directorio agregar el contenido de ese directorio, así recursivamente.
  5. Proteger un archivo ZIP con contraseña

Todavía no vamos a ver cómo descomprimir o desempaquetar, eso es de otro post.

Leer más »Crear archivos zip con PHP: agregar archivos y directorios, descargar zip y proteger con contraseña

Fibonacci recursivo y con ciclos en Java

Sucesión fibonacci en Java: método iterativo y recursivo

En este artículo voy a explicar cómo imprimir la sucesión fibonacci en Java, y también expondré dos métodos para obtener el número fibonacci que iría en determinada posición.

Declararemos dos funciones: una iterativa o con ciclos y otra que utiliza recursión o recursividad para llamarse a sí misma.

Fibonacci recursivo y con ciclos en Java

Fibonacci recursivo y con ciclos en Java

Veamos entonces cómo implementar el algoritmo para la secuencia fibonacci en Java.

Leer más »Sucesión fibonacci en Java: método iterativo y recursivo

Fibonacci recursivo y con ciclos en Ruby

Sucesión fibonacci con recursividad y ciclos en Ruby

Siguiendo con los algoritmos y ejercicios resueltos en Ruby, vamos a ver hoy cómo obtener el número fibonacci que va en determinada posición.

Fibonacci recursivo y con ciclos en Ruby

Fibonacci recursivo y con ciclos en Ruby

Por ejemplo, el número de la sucesión fibonacci que va en la posición 7 (recordemos que comienza desde cero) es el 13, pues la sucesión va así:

0, 1, 1, 2, 3, 5, 8, 13

Lo que haremos con Ruby será recibir un número y regresar el número fibonacci que va en esa posición; lo haremos de forma recursiva y también usando ciclos.

Nota: las funciones no imprimen la sucesión, pero basta con que dentro de cada una de ellas se imprima el valor con puts y listo, la sucesión será impresa.

Leer más »Sucesión fibonacci con recursividad y ciclos en Ruby

Factorial recursivo e iterativo en Ruby

Factorial iterativo y recursivo en Ruby

Anteriormente vimos el algoritmo del factorial en JavaScript. Ahora veamos cómo calcular el factorial de un número usando el lenguaje de programación Ruby.

Factorial recursivo e iterativo en Ruby

Factorial recursivo e iterativo en Ruby

Veremos dos formas de resolverlo, la primera utiliza un ciclo while (forma iterativa o con ciclos) y la segunda un enfoque recursivo o con recursión en donde la función se llama a sí misma.

Leer más »Factorial iterativo y recursivo en Ruby

Minutos a tiempo legible en JavaScript

Convertir minutos a texto legible en JavaScript

En un sistema web en el que he estado trabajando tuve la necesidad de convertir minutos a su representación como texto, en cantidades más grandes. Por ejemplo, 59 minutos son 59 minutos, pero 60 minutos son 1 hora, así que en lugar de mostrarlos como minutos, se muestran como horas.

Minutos a tiempo legible en JavaScript

Minutos a tiempo legible en JavaScript

La función que escribí puede convertir cualquier número de minutos a su representación como horas, días, semanas, meses o años. Con los ejemplos veremos de lo que hablo.

Leer más »Convertir minutos a texto legible en JavaScript

Algoritmo para calcular factorial en JavaScript

Factorial de un número en JavaScript con recursividad y ciclos

En este post vamos a ver cómo calcular el factorial de un número en JavaScript de dos maneras distintas. Una de ellas es usar un ciclo para calcular el factorial, y la otra es usando la recursividad o recursión.

Algoritmo para calcular factorial en JavaScript

Algoritmo para calcular factorial en JavaScript

También veremos el cálculo del factorial de un número usando a BigInt, un nuevo tipo de dato para JavaScript.

Leer más »Factorial de un número en JavaScript con recursividad y ciclos

Búsqueda binaria en arreglos de cadena con C

Búsqueda binaria en arreglos de cadenas con C

Introducción

Esto es el complemento a la entrada publicada anteriormente sobre la búsqueda binaria en C sobre arreglos de números.

Ahí buscamos en arreglos de números, ahora nos toca buscar en arreglos de cadenas. Igualmente aplicaremos la forma recursiva y con el ciclo while.

Los arreglos de cadenas son una cosa un poco complicada al inicio, sobre todo en este lenguaje. Por eso te invito a que leas cómo trabajar con arreglos de cadenas en C.

Leer más »Búsqueda binaria en arreglos de cadenas con C

Programa en C: búsqueda binaria recursiva y secuencial en arreglos

Introducción

Luego de algún tiempo he terminado de implementar la función recursiva y con ciclos para ejecutar el algoritmo de búsqueda binaria en un arreglo numérico en C.

Este algoritmo también es conocido como divide y vencerás; pues va dividiendo el arreglo en 2 hasta encontrar lo que buscamos, aunque como requisito dicho arreglo debe estar ordenado.

Leer más »Programa en C: búsqueda binaria recursiva y secuencial en arreglos

Palíndromo en C

Palíndromo en C usando recursividad y ciclos

Introducción

Ya comprobamos si una cadena es palíndroma o palíndromo en C#, un lenguaje de alto nivel en donde no nos importa mucho el manejo de la memoria, tenemos booleanos y funciones para cortar cadenas.

Ahora veamos lo mismo pero en el lenguaje de programación C, uno antiguo en donde ni siquiera existe un recolector de basura.

Palíndromo en C

Palíndromo en C

En resumen, veremos cómo:

  • Comprobar si una cadena es palíndroma usando recursividad
  • Usar el ciclo while para determinar si una cadena es palíndroma

Todo esto en el lenguaje ANSI C. Si no sabes lo que esto es, visita la Wikipedia.

Leer más »Palíndromo en C usando recursividad y ciclos

Búsqueda binaria en Java

Búsqueda binaria en Java sobre arreglos numéricos

Introducción

Hoy veremos cómo implementar el algoritmo de búsqueda binaria en el lenguaje de programación Java. Este algoritmo funcionará  con números; y más tarde con cadenas. Veamos lo que haremos:

  • Escribir una función que busque de forma binaria en arreglos de números usando recursividad o recursión
  • Implementar el algoritmo de búsqueda binaria secuencial (con ciclos, en este caso while) en arreglos de números.

Aquí dejo una imagen del código para adornar el post. No te preocupes, podrás copiarlo como texto más abajo, esto es meramente ilustrativo.

Búsqueda binaria en Java

Búsqueda binaria en Java

Si quieres tomarle fotos a tu código, prueba Polacode; una extensión para VSCode.

Más tarde traeré la implementación para la búsqueda binaria en cadenas o strings.

Leer más »Búsqueda binaria en Java sobre arreglos numéricos

Algoritmo de búsqueda binaria en JavaScript

Introducción

Hoy veremos cómo usar e implementar el algoritmo de búsqueda binaria en arreglos usando JavaScript. Veremos tanto la forma que usa recursividad (también llamada recursión o de forma recursiva) así como la forma que utiliza una sentencia de control del ciclo while.

Este algoritmo de búsqueda binaria en JavaScript funciona en arreglos de strings y de números, en otras palabras funciona en arreglos de tipo int y de tipo string, ya que JavaScript sí compara a las cadenas usando los símbolos de > mayor qué y < menor qué.

Vamos a ver cómo implementar este algoritmo de búsqueda binaria que tiene el enfoque de divide y vencerás, usando el lenguaje de programación JavaScript que se puede ejecutar en el navegador web o en Node

Leer más »Algoritmo de búsqueda binaria en JavaScript