Cos'è uno scambio standard?
Nella programmazione informatica e informatica, uno scambio standard è una situazione in un programma in cui due variabili devono essere scambiate i loro valori, richiedendo la creazione di una terza variabile per fungere da intermediario quando i valori vengono trasferiti. Uno scambio standard è un paradigma di programmazione, il che significa che può essere applicato a qualsiasi situazione in cui due pezzi di dati devono essere scambiati e non è legato a nessun tipo di dati o linguaggio di programmazione. Ci sono molte istanze nei programmi in cui i valori devono essere scambiati, ma spesso è un componente standard in raccolte e array se utilizzati con algoritmi di ordinamento che devono spostare gli elementi da un indice nella raccolta a un altro, usando una variabile temporanea per mantenere il valore da scambiare. Da un punto di
Il concetto di uno scambio standard può essere visto con le variabili A e B; Alla fine di uno swap standard, B dovrebbe essere uguale a A e A dovrebbe essere uguale a B. Se un programma assegna semplicemente B a A, allora il valore di A andrà perso e non può essere assegnato in seguito a B. Ciò richiede l'uso di una variabile temporanea che manterrà il valore di un tempo che B è assegnato a A. Il passaggio finale è quello di assegnare il valore della variabile temporanea a B, completando lo swap.
Un'applicazione molto comune per uno scambio standard è quando si utilizza un algoritmo di ordinamento su un array o una raccolta. Se un algoritmo di ordinamento ha determinato che i dati sull'array indice 1 devono essere scambiati con i dati all'indice 10, è possibile eseguire uno scambio standard dei dati. Questo può essere fatto eccezionalmente velocemente utilizzando riferimenti al puntatore in lingue come c.
Una complicazione può verificarsi in alcuni linguaggi di programmazione orientati agli oggetti quando è necessario due istanze di oggettiessere scambiato. In alcuni casi molto rari, semplicemente scambiare i riferimenti agli oggetti non inizierà uno scambio reale. Invece, l'unico modo per scambiare gli oggetti è di clonare i dati interni, campo per campo, tra i due oggetti e la variabile di oggetti temporanei.
Esiste una tecnica che tecnicamente può essere utilizzata per eseguire uno swap standard utilizzando l'operatore logico esclusivo o (XOR). Uno scambio XOR si basa sul fatto che, quando vengono calcolati due bit con XOR, creeranno essenzialmente una maschera che può essere invertita con uno o entrambi gli operatori. In questo modo, due variabili, A e B, possono essere scambiate prima creando una maschera con un XOR delle due variabili, quindi usando XOR per smascherare prima il valore per B e quindi il valore per A. Sfortunatamente, sebbene questo metodo eviti la creazione di un'ottimizzazione temporanea, non farà anche un passaggio in tutti gli istanze, specificamente quando A e B sono uguali a ciascuna e in cui le custodie possono cambiare la variabile reale.