Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Permutation (informatique) — Wikipédia
Permutation (informatique) — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.

En programmation informatique, une permutation consiste à intervertir les valeurs de deux variables. Il s'agit d'une opération courante, mais rarement intégrée aux langages de programmation et jeu d'instructions des processeurs.

De nombreux algorithmes, en particulier des algorithmes de tri, utilisent des permutations.

Algorithmes

[modifier | modifier le code]

En utilisant une variable temporaire

[modifier | modifier le code]

La méthode la plus simple et probablement la plus répandue pour permuter deux variables est d'utiliser une troisième variable temporaire. C'est aussi la seule fiable sous réserve que les trois variables x, y et temp soient de même type (tous des entiers, tous des flottants, tous des caractères etc.)[1].

Permutation de x et y:

temp = x
x = y
y = temp

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

En utilisant l'opération XOR

[modifier | modifier le code]

Lorsque deux variables sont représentées chacune sur un seul mot mémoire, il est possible de les permuter en utilisant la fonction OU exclusif bit à bit (XOR en anglais). Cette méthode ne nécessite pas de variable temporaire, mais nécessite l'existence de cette fonction dans le langage pour le type de donnée traité[1].

Permutation de x et y :

x = x XOR y
y = x XOR y
x = x XOR y

Cette méthode est fortement dépendante de la représentation des entiers en machine. Sur les variables de types flottants et caractères, cette possibilité est fonction de la possibilité d'utiliser la primitive de OU Exclusif sur ces types de variable.

En utilisant l'addition et la soustraction

[modifier | modifier le code]

Une variante de la permutation par XOR est d'utiliser une addition et deux soustractions. Elle a l'inconvénient de poser des problèmes de dépassement sur les entiers et d'arrondis sur les flottants et de ne pas fonctionner sur les chaines de caractères par exemple[1].

Permutation de x et y :

x = x + y
y = x - y
x = x - y

Implantation en matériel

[modifier | modifier le code]

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

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

Références

[modifier | modifier le code]
  1. ↑ a b et c Melcore, « Permuter deux variables sans en utiliser une troisième » Accès libre, sur zestedesavoir.com, 16 novembre 2020 (consulté le 29 août 2025)
  2. ↑ Description du jeu d'instruction x86 dans le manuel de NASM
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Swap (computer science) » (voir la liste des auteurs).
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « XOR swap algorithm » (voir la liste des auteurs).
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Permutation_(informatique)&oldid=229255518 ».
Catégorie :
  • Programmation informatique
Catégories cachées :
  • Wikipédia:ébauche informatique
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id