Xor Swap: scambiare il valore di due variabili senza variabile d'appoggio

Evidentemente non ho niente di meglio da fare nel giorno di natale. 🙂 Vediamo un po' a cosa serve questo algoritmo. Se avete un po' di basi di programmazione sapreste che scambiare il valore contenuto in due variabili è un operazione comunissima. Il modo più semplice per effettuare questa operazione è di usare una variabile d'appoggio per contenere uno dei due valori e poi fare lo scambio. [crayon-5dcb600ef339e889723007/] Direi quasi banale, no? Senonché questo modo prevede la creazione di una variabile temporanea. Esiste tuttavia un algoritmo che fa lo stesso lavoro e non richiede nessuna variabile temporanea. Sto parlando dello Xor Swap, il nome deriva appunto da scambio con OR esclusive ( operazione bit a bit XOR ). Vediamo l'algoritmo: [crayon-5dcb600ef33a4198841316/] Il bello di questo algoritmo è l'efficienza e la facilità nel ricordarlo. Vediamone un'implementazione in Java ed in C. [crayon-5dcb600ef33a6889436226/] [crayon-5dcb600ef33a9722962600/]

Continua a leggere >>>

Site Footer