Échange (informatique)

Échange (informatique)

En programmation informatique, l'échange de deux variables (en anglais swap) consiste à intervertir leurs valeurs. Il s'agit d'une opération de base intégrée à de nombreux langages de programmation et faisant partie du jeu d'instructions de certains processeurs.

De nombreux algorithmes, en particulier des algorithmes de tri, modifient les données en utilisant des échanges.

Sommaire

Algorithmes

En utilisant une variable temporaire

La méthode la plus simple et probablement la plus répandue pour échanger deux variables est d'utiliser une troisième variable temporaire :

 fonction échanger(x, y)
     temp := x
     x := y
     y := temp

L'inconvénient de cette méthode est qu'elle nécessite un espace mémoire supplémentaire. Cela n'a normalement pas d'importance si les variables ont un type élémentaire (entier, nombre flottant, etc), mais peut poser problème pour des structures complexes occupant une grande quantité de mémoire (par exemple des tableaux).

En utilisant l'opération XOR

Lorsque deux variables sont représentées chacune sur un seul mot mémoire, il est possible de les échanger en utilisant la fonction OU exclusif (XOR en anglais). Cette méthode ne nécessite pas de variable temporaire.

 fonction échanger(x, y)
     x := x XOR y
     y := x XOR y
     x := x XOR y

En utilisant l'addition et la soustraction

Une variante de l'échange par XOR est d'utiliser une addition et deux soustractions. Elle a l'inconvénient de poser des problèmes de dépassement.

 fonction échanger(x, y)
     x := x + y
     y := x - y
     x := x - y

Implantation en matériel

Certains processeurs disposent d'une instruction swap permettant d'échanger deux registres. C'est le cas par exemple des processeurs x86 (instruction XCHG).

Sur les processeurs x86, l'instruction NOP consiste à échanger le registre eax avec-lui même[1].

Références


(en) Cet article est partiellement ou en totalité issu de l’article en anglais intitulé « Swap (computer science) » (voir la liste des auteurs)

(en) Cet article est partiellement ou en totalité issu de l’article en anglais intitulé « XOR swap algorithm » (voir la liste des auteurs)


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Échange (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Systeme d'echange (informatique) — Système d échange (informatique) Un système d échange informatique est une infrastructure transverse de communication agnostique inter et intra systèmes applicatifs et mettant à disposition de ces systèmes des primitives d interaction et de… …   Wikipédia en Français

  • Système d'échange (informatique) — Un système d échange informatique est une infrastructure transverse de communication agnostique inter et intra systèmes applicatifs et mettant à disposition de ces systèmes des primitives d interaction et de médiation, reposant sur des protocoles …   Wikipédia en Français

  • Échange de compétences — Dans les années 70 en France, sont apparus des réseaux d’échanges de troc le RERS (Réseau d échanges réciproques de savoirs) et les réseaux d’échanges multilatéraux le SEL (Système d échange local), échanges des services, savoirs, biens d’objets …   Wikipédia en Français

  • Echange de cles Diffie-Hellman — Échange de clés Diffie Hellman En cryptographie, l échange de clés Diffie Hellman, du nom de ses auteurs Whitfield Diffie et Martin Hellman, est une méthode par laquelle deux personnes nommées conventionnellement Alice et Bob peuvent se mettre d… …   Wikipédia en Français

  • Échange de clés diffie-hellman — En cryptographie, l échange de clés Diffie Hellman, du nom de ses auteurs Whitfield Diffie et Martin Hellman, est une méthode par laquelle deux personnes nommées conventionnellement Alice et Bob peuvent se mettre d accord sur un nombre (qu ils… …   Wikipédia en Français

  • INFORMATIQUE ET SCIENCES HUMAINES - Le droit de l’informatique — Nombreuses sont aujourd’hui les interactions du droit et de l’informatique. Si l’informatique juridique documentaire devient indispensable au juriste qui doit apprendre à interroger les grandes banques de données, d’un autre côté, comme tout… …   Encyclopédie Universelle

  • Informatique De Gestion — L’informatique de gestion est l ensemble des connaissances, des technologies, et des outils en rapport avec la gestion de données[1], c est à dire la collecte, la vérification et l organisation de grandes quantités d informations. L informatique… …   Wikipédia en Français

  • Informatique de gestion — L’informatique de gestion est l ensemble des connaissances, des technologies, et des outils en rapport avec la gestion de données[1], c est à dire la collecte, la vérification et l organisation de grandes quantités d informations. L informatique… …   Wikipédia en Français

  • Echange telematique banque-clients — Échange télématique banque clients Échange télématique banque clients (ETEBAC) est un protocole de télétransmission bancaire. Ce protocole permet l échange de fichiers entre les Banques et leurs clients. Ce protocole existe depuis 1991[1]. la… …   Wikipédia en Français

  • Échange télématique banque-clients — (ETEBAC) est un protocole de télétransmission bancaire. Ce protocole permet l échange de fichiers entre les Banques et leurs clients. Ce protocole existe depuis 1991[1]. La version 5 a été créée en 1995[2]. Les fichiers échangés sont regroupés en …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”