Skip to main content

Apa itu pertukaran standar?

Dalam pemrograman komputer dan ilmu komputer, swap standar adalah situasi dalam program di mana dua variabel perlu menukar nilainya, yang membutuhkan pembuatan variabel ketiga untuk bertindak sebagai perantara ketika nilai -nilai ditransfer.Pertukaran standar adalah paradigma pemrograman, yang berarti dapat diterapkan pada situasi apa pun di mana dua bagian data perlu ditukar, dan tidak terkait dengan satu jenis data atau bahasa pemrograman apa pun.Ada banyak contoh dalam program di mana nilai -nilai perlu ditukar, tetapi seringkali merupakan komponen standar dalam koleksi dan array ketika digunakan dengan algoritma penyortiran yang harus memindahkan item dari satu indeks dalam koleksi ke koleksi lainnya, menggunakan variabel sementara untuk menahanNilai ditukar.Dari perspektif perangkat keras, swap standar dapat menjadi fungsi prosesor tingkat rendah yang didukung untuk beberapa tipe data skalar seperti bilangan bulat, yang berarti nilai perantara tidak perlu dibuat dalam memori akses acak (RAM) untuk menukar dua angka.

Konsep pertukaran standar dapat dilihat dengan variabel A dan B;Pada akhir pertukaran standar, B harus sama dengan A, dan A harus sama B. Jika suatu program hanya menugaskan B ke A, maka nilai A akan hilang dan tidak dapat ditugaskan ke B. Ini membutuhkan penggunaan aVariabel sementara yang akan menahan nilai B sementara B ditugaskan ke A. Langkah terakhir adalah menetapkan nilai variabel sementara ke B, menyelesaikan swap.

Salah satu aplikasi yang sangat umum untuk pertukaran standar adalah saat menggunakan algoritma penyortiran padaarray atau koleksi.Jika algoritma penyortiran telah menentukan bahwa data pada indeks array 1 harus ditukar dengan data pada indeks 10, maka swap standar data dapat dilakukan.Ini dapat dilakukan dengan sangat cepat menggunakan referensi pointer dalam bahasa seperti C.

Komplikasi dapat terjadi dalam beberapa bahasa pemrograman berorientasi objek ketika dua contoh objek perlu ditukar.Dalam beberapa kasus yang sangat jarang, cukup menukar referensi objek tidak akan memulai pertukaran yang sebenarnya.Sebaliknya, satu-satunya cara untuk bertukar objek adalah dengan mengkloning data internal, bidang demi bidang, antara kedua objek dan variabel objek sementara.

Ada satu teknik yang secara teknis dapat digunakan untuk melakukan swap standar menggunakan eksklusif-atau (xor) operator logis.Pertukaran XOR bergantung pada fakta bahwa, ketika dua bit dihitung dengan XOR, mereka pada dasarnya akan membuat topeng yang dapat dibalik dengan satu atau kedua operator.Dengan cara ini, dua variabel, A dan B, dapat ditukar dengan terlebih dahulu membuat topeng dengan XOR dari dua variabel, kemudian menggunakan XOR untuk membuka kedok pertama -tama nilai untuk B dan kemudian nilai untuk A. Sayangnya, meskipun metode ini menghindariPenciptaan variabel sementara, itu juga tidak akan melakukan swap di semua kasus, khususnya ketika a dan b sama satu sama lain dan dalam kasus di mana optimasi kompiler dapat mengubah operasi yang sebenarnya.