Cómo hacer un swap sin variable temporánea

Algoritmos, estructuras de datos, estrategias o patterns. Lenguaje' de programasión, vieja! Ce, loco, Ce! Páison, y todo eso.

Cómo hacer un swap sin variable temporánea

Notapor Adriano el Vie Feb 16, 2007 3:01 pm

En C:
Código: Seleccionar todo
void xorSwap (int *x, int *y)
{
  if (x != y) {
    *x ^= *y;
    *y ^= *x;
    *x ^= *y;
  }
}


Está hasta en Wikipedia, es un clásico. Normalmente uno tiene que usar una variable temporánea (en el caso más general, un void*, supongo). Pero en los lenguajes que soportan la operación XOR (todos, espero. No, no quiero saber con mucha urgencia de los que no lo hacen) uno se evita la molestia.
Saludos
Adriano
Avatarde Usuario
Adriano
Administrador
 
Posts: 392
Registrado: Sab Dic 09, 2006 12:50 pm
Ubicación: Argentina

Cómo hacer un swap sin variable temporánea

Sponsor

Sponsor
 

Volver a Programación y Diseño de Sófwer.

¿Quién está conectado...?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron