ALI

mardi 26 novembre 2013

Qu'est-ce qu'un échange standard?

Dans la programmation informatique et de l'informatique, un swap classique est une situation dans un programme dans lequel deux variables doivent avoir leurs valeurs échangées, ce qui nécessite la création d'une troisième variable d'agir comme un intermédiaire lorsque les valeurs sont transférées. Un swap est une norme de programmation paradigme , ce qui signifie qu'il peut être appliqué à toute situation dans laquelle ont besoin de deux morceaux de données à échanger, et n'est pas lié à un seul type de données ou langage de programmation. Il existe de nombreux cas dans les programmes dont les valeurs doivent être échangés, mais il est souvent un composant standard dans les collections et tableaux lorsqu'il est utilisé avec des algorithmes de tri qui doit déplacer des éléments d'un index dans la collection à l'autre, en utilisant une variable temporaire pour contenir le valeur étant échangé. Du point de vue matériel, un échange standard peut être une fonction de traitement de bas niveau soutenu pour certains types de données scalaires telles que des nombres entiers, ce qui signifie la valeur intermédiaire n'a pas besoin d'être créé dans la mémoire vive (RAM) pour échanger deux nombres.
 
Le concept d'un échange standard peut être vu avec les variables A et B; à la fin d'un échange standard, B doit être égale à A, et A doit être égal à B. Si un programme attribue simplement B à A, alors la valeur de testament être perdu et ne peut pas être attribué à plus tard B. Cela nécessite l'utilisation d'une variable temporaire qui contiendra la valeur de A alors B est attribué à A. La dernière étape consiste à affecter la valeur de la variable temporaire à B, complétant l'échange.
 
Une application très commun pour un swap classique est l'utilisation d'un algorithme de tri sur un tableau ou d'une collection. Si un algorithme de tri a déterminé que les données à l'index du tableau 1 doivent être échangés avec les données à l'indice 10, puis un échange standard des données peut être réalisée. Cela peut être fait exceptionnellement rapide en utilisant des références de pointeur dans des langages tels que C
 
Une complication peut se produire dans certains langages orientés objet de programmation lorsque deux instances d'objets doivent être inversés. Dans certains cas très rares, en échangeant simplement les références d'objet ne déclenche pas un swap réelle. Au lieu de cela, le seul moyen pour échanger des objets est de cloner les données internes, champ par champ, entre les deux objets et la variable objet temporaire.
Il existe une technique qui peut techniquement être utilisé pour effectuer un échange standard en utilisant l'opérateur logique OU exclusif (XOR). Un swap XOR repose sur le fait que, lorsque deux bits sont calculées avec XOR, ils seront essentiellement créer un masque qui peut être inversé avec une ou les deux des opérateurs. De cette manière, deux variables, A et B, peuvent être échangés en créant d'abord un masque avec un XOR des deux variables, puis en utilisant XOR pour démasquer d'abord la valeur de B, puis la valeur de A. Malheureusement, bien que cette méthode évite la création d'une variable temporaire, il sera également pas fait de swap dans tous les cas, en particulier lorsque A et B sont égales les unes aux autres et dans les cas où le compilateur d'optimisation peuvent modifier le fonctionnement réel.