Algoritmos notables: Intercambiar valores sin usar variable temporal
El algoritmo para hacer "swap" a dos variables sin declarar una temporal 😉

El siguiente es un algoritmo para el ingenio, que es a menudo solicitado en entrevistas técnicas de muchas compañías.

El enunciado es bastante simple, pero que no te engañe, a más de uno ha causado dolores de cabeza y no han podido resolverlo 🧑‍💻

Enunciado

Dadas dos variables que representan a un número entero cada una, intercambiar sus valores sin utilizar una variable temporal.

Algoritmo

Primero te mostraré como lo haríamos si es que no tuviesemos la restricción de no utilizar una variable temporal, haríamos algo como esto:

        public void Swap(int x, int y)
        {            
            int temp = x;
            x = y;
            y = temp;
            Console.WriteLine($"{x},{y}");
        }

Sin embargo, ya que no podemos utilizar una tercera variable para usarla como variable temporal, entonces utilizaremos la operacion aritmética de la suma. Veamos el código para entender esto mejor.

Código

        public void Swap(int x, int y)
        {
            x = x + y;
            y = x - y;
            x = x - y;
            Console.WriteLine($"{x},{y}");
        }

Ahora pruéba este algoritmo en Visual studio o en algún compilador de C# online como https://dotnetfiddle.net/ y apréndelo bien 😉

Recuerda que esta entrada es de la serie de artículos Algoritmos notables, los cuales los subo a este repo, puedes visitarlo y descubrir más algoritmos 😉

No vayas directo al código, primero esboza tu algoritmo en seudocódigo. Foto de Jeswin Thomas en Unsplash

Si te ha gustado esta entrada entonces compártela con tu equipo de ingeniería 😉👌

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *