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

จากวิกิพีเดีย สารานุกรมเสรี

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

ขั้นตอนวิธี[แก้]

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

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;