การแลกเปลี่ยนตัวแปรสองตัวในการเขียนโปรแกรมคอมพิวเตอร์หมายถึงค่าตัวแปร’ โดยปกติจะทำโดยใช้ข้อมูลที่เก็บไว้ในหน่วยความจำ ตัวอย่างเช่นตัวแปรสองตัวในโปรแกรมจะถูกประกาศดังนี้:
data_item x: = 1
data_item y: = 0
แลกเปลี่ยน
หลังจากการแลกเปลี่ยน X จะมีค่า 0 และ y จะมีค่า 1; ค่าของพวกเขาถูกสลับ ค่าประเภทอื่น ๆ เช่นสตริงและชนิดข้อมูลที่รวมสามารถใช้กับการดำเนินการนี้ได้ SWAPS ใช้เพื่อเปลี่ยนตำแหน่งของข้อมูลในการเปรียบเทียบ
SWAP เป็นภาษาคอมพิวเตอร์ในตัว โอเวอร์โหลดมีอยู่ใน C ++ อนุญาตให้ STD :: swap เปลี่ยนโครงสร้างขนาดใหญ่บางอย่างในOâ
แม้ว่านี่จะเป็นแนวคิดพื้นฐานและในหลาย ๆ สถานการณ์เทคนิคการปฏิบัติเพียงอย่างเดียวในการสลับตัวแปรสองตัว แต่ก็ใช้เวลามากขึ้น แม้ว่าสิ่งนี้ไม่ควรเป็นปัญหาในแอปพลิเคชันส่วนใหญ่ขนาดของค่าที่สลับอาจมีขนาดใหญ่หรือการดำเนินการแลกเปลี่ยนอาจต้องทำซ้ำหลายครั้งเช่นเดียวกับในอัลกอริทึมการเรียงลำดับ
นอกจากนี้ในภาษาที่มุ่งเน้นวัตถุ C ++ การสลับตัวแปรสองตัวอาจต้องใช้หนึ่งในตัวสร้างคลาสและ destructor สำหรับตัวแปรชั่วคราวเช่นเดียวกับการโทรสามครั้งไปยังตัวสร้างสำเนา บางคลาสได้รับหน่วยความจำในตัวสร้างแล้วจัดการกับมันใน destructor ส่งผลให้เกิดการโทรระบบที่มีราคาแพง คัดลอกตัวสร้างสำหรับคลาสที่มีข้อมูลจำนวนมากเช่นอาร์เรย์อาจต้องคัดลอกข้อมูลด้วยตนเอง
การดำเนินการ XOR ใช้ในการสลับตัวแปรตัวเลขสองตัวในการแลกเปลี่ยน XOR มันมักจะเห็นว่าเร็วกว่าเทคนิคNaã¯veที่กล่าวถึงข้างต้นแม้ว่าจะมีข้อเสีย โดยทั่วไปแล้ว XOR SWAP ใช้ในการสลับประเภทข้อมูลระดับต่ำเช่นจำนวนเต็ม อย่างไรก็ตามมันมีความสามารถในทางทฤษฎีในการแลกเปลี่ยนค่าสองค่าใด ๆ ที่แสดงด้วยบิตความยาวคงที่
คอนเทนเนอร์ที่ใช้พอยน์เตอร์เพื่อจัดสรรหน่วยความจำจากกองสามารถเปลี่ยนในการดำเนินการเดียวโดยการแลกเปลี่ยนพอยน์เตอร์เพียงอย่างเดียว นี่เป็นเรื่องธรรมดาที่สุดในภาษาการเขียนโปรแกรมที่เปิดใช้งานพอยน์เตอร์เช่น C หรือ C ++ ไลบรารีเทมเพลตมาตรฐานใช้ฟังก์ชั่นการแลกเปลี่ยนในตัวเพื่อสลับเนื้อหาของคอนเทนเนอร์อย่างมีประสิทธิภาพ
เนื่องจากตัวแปรตัวชี้โดยทั่วไปมีขนาดคงที่และเป็นตัวเลขจึงสามารถใช้การแลกเปลี่ยน XOR เพื่อสลับได้อย่างรวดเร็ว
ดาวน์โหลด SWAP PNG Images แกลเลอรีโปร่งใส
ปณิธาน: 480 × 480
ขนาด: 31 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 9 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 855 × 642
ขนาด: 13 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 4 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 14 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 639 × 661
ขนาด: 10 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 981 × 818
ขนาด: 10 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 980 × 980
ขนาด: 38 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 7 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 8 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 600 × 451
ขนาด: 56 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 398
ขนาด: 4 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 6 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 20 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 7 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 473
ขนาด: 17 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 15 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 5 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 522 × 298
ขนาด: 5 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 640 × 480
ขนาด: 36 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 623 × 734
ขนาด: 21 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 6 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 512 × 512
ขนาด: 4 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 1463 × 1147
ขนาด: 24 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 1997 × 1749
ขนาด: 48 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 572 × 980
ขนาด: 20 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 626 × 626
ขนาด: 217 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 980 × 474
ขนาด: 11 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 600 × 600
ขนาด: 86 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 1001 × 1002
ขนาด: 24 KB
รูปแบบภาพ: .png
ดาวน์โหลด
ปณิธาน: 980 × 980
ขนาด: 21 KB
รูปแบบภาพ: .png
ดาวน์โหลด