ขั้นตอนวิธีสลับด้วยออร์เฉพาะ

ในการเขียนโปรแกรมคอมพิวเตอร์ การสลับด้วยออร์เฉพาะ เป็นขั้นตอนวิธีที่ใช้การดำเนินการบิตออร์เฉพาะในการสลับข้อมูลของตัวแปรสองตัวที่แตกต่างกัน มีชนิดข้อมูลเหมือนกัน โดยไม่ใช้ตัวแปรชั่วคราวช่วยในการสลับ ("แตกต่างกัน" ในที่นี้หมายถึงตัวแปรเป็นคนละตัวกัน กล่าวคือมีที่อยู่หน่วยความจำแตกต่างกัน แต่ค่าของตัวแปรทั้งสองอาจเท่ากันก็ได้)

ขั้นตอนวิธี

แก้

การสลับข้อมูลโดยทั่วไปจะใช้ตัวแปรชั่วคราวช่วยในการสลับดังนี้

tmp := X
X := Y
Y := tmp

อย่างไรก็ตาม หากใช้การสลับด้วยออร์เฉพาะจะไม่ต้องใช้ตัวแปรชั่วคราวช่วยเลย ขั้นตอนวิธีเป็นไปดังนี้

X := X XOR Y
Y := X XOR Y
X := X XOR Y

การพิสูจน์ความถูกต้อง

แก้

เหตุผลในการใช้งานจริง

แก้

เหตุผลที่ควรหลีกเลี่ยงในการใช้งานจริง

แก้

รูปแบบอื่นที่ใกล้เคียงกัน

แก้
X := X + Y;
Y := X - Y;
X := X - Y;