Skip to main content

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

Dans la programmation informatique et l'informatique, un swap standard est une situation dans un programme dans lequel deux variables doivent faire échanger leurs valeurs, nécessitant la création d'une troisième variable pour agir comme intermédiaire lorsque les valeurs sont transférées.Un échange standard est un paradigme de programmation, ce qui signifie qu'il peut être appliqué à n'importe quelle situation dans laquelle deux éléments de données doivent être échangés et ne sont liés à aucun type de données ou langage de programmation.Il existe de nombreux cas dans les programmes dans lesquels les valeurs doivent être échangées, mais c'est souvent un composant standard dans les collections et les tableaux lorsqu'ils sont utilisés avec des algorithmes de tri qui doivent déplacer les éléments d'un index de la collection à une autre, en utilisant une variable temporaire pour maintenir levaleur échangée.Du point de vue du matériel, un échange standard peut être une fonction de processeur de bas niveau prise en charge pour certains types de données scalaires tels que les entiers, ce qui signifie que la valeur intermédiaire n'a pas besoin d'être créée dans la mémoire d'accès aléatoire (RAM) pour échanger deux nombres.

Le concept d'un échange standard peut être vu avec les variables A et B;À la fin d'un swap standard, B devrait être égal A, et un doit être égal B. Si un programme attribue simplement B à A, alors la valeur de A sera perdue et ne peut pas être affectée plus tard à B. Cela nécessite l'utilisation d'unune variable temporaire qui maintiendra la valeur d'un temps Bun tableau ou une collection.Si un algorithme de tri a déterminé que les données de l'indice du tableau 1 doivent être échangées avec les données à l'indice 10, un échange standard des données peut être effectué.Cela peut être fait exceptionnellement rapidement en utilisant des références de pointeur dans des langages tels que C.

Une complication peut se produire dans certains langages de programmation orientés objet lorsque deux instances d'objet doivent être échangées.Dans certains cas très rares, le simple fait d'échanger les références d'objet n'initiera pas un échange réel.Au lieu de cela, la seule façon d'échanger les objets est de cloner les données internes, champ par champ, entre les deux objets et la variable d'objet temporaire.

Il existe une technique qui peut techniquement être utilisée pour effectuer un échange standard en utilisant l'exclusifou (XOR) opérateur logique.Un échange XOR s'appuie sur le fait que, lorsque deux bits sont calculés avec XOR, ils créeront essentiellement un masque qui peut être inversé avec un ou les deux opérateurs.De cette façon, deux variables, A et B, peuvent être échangées 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 d'abordLa création d'une variable temporaire, elle ne fera pas non plus de swap dans tous les cas, en particulier lorsque A et B sont égaux les uns aux autres et dans les cas où l'optimisation du compilateur pourrait modifier l'opération réelle.