Standart Takas Nedir?

Bilgisayar programcılığı ve bilgisayar bilimlerinde standart bir takas, iki değişkenin değerlerinin değiş tokuş edilmesi gereken bir programdır; bu değerler, değerler aktarıldığında aracı olarak hareket etmek için üçüncü bir değişkenin oluşturulmasını gerektirir. Standart bir takas bir programlama paradigmasıdır, yani iki veri parçasının değiştirilmesi gereken herhangi bir duruma uygulanabilir ve herhangi bir veri tipine veya programlama diline bağlı değildir. Değerlerin değişmesi gereken programlarda birçok örnek vardır, ancak genellikle koleksiyondaki bir dizinden bir öğeyi taşımak için, geçici bir değişkeni kullanarak, öğeleri bir dizinden diğerine taşıması gereken sıralama algoritmalarıyla birlikte kullanıldığında standart bir bileşendir. değer değişiyor. Donanım açısından bakıldığında, standart bir takas, tam sayılar gibi bazı skaler veri türleri için desteklenen düşük seviyeli bir işlemci işlevi olabilir; bu, orta değerin, iki sayıyı değiştirmek için rasgele erişim belleğinde (RAM) yaratılması gerekmediği anlamına gelir.

Standart bir takas kavramı A ve B değişkenleriyle görülebilir; Standart bir takasın sonunda, B, A'ya eşit olmalı ve A, B'ye eşit olmalıdır. Bir program B'ye A'yı basitçe verirse, o zaman A'nın değeri kaybedilecek ve daha sonra B'ye atanamayacaktır. B A'ya atanırken A değerini tutacak geçici değişken, son adım, değişkeni tamamlayan B'ye geçici değişken değerini atamaktır.

Standart bir takas için çok yaygın bir uygulama, bir dizide veya koleksiyonda bir sıralama algoritması kullanıldığında olur. Bir sıralama algoritması, Index 1 dizisindeki verilerin, Index 10'daki verilerle değiştirilmesi gerektiğine karar vermişse, standart bir veri değişimi gerçekleştirilebilir. Bu, C gibi dillerde işaretçi referansları kullanarak son derece hızlı bir şekilde yapılabilir.

İki nesne örneğinin değiştirilmesi gerektiğinde, bazı nesne yönelimli programlama dillerinde bir komplikasyon meydana gelebilir. Çok nadir bazı durumlarda, yalnızca nesne referanslarını değiştirmek, gerçek bir takas başlatmaz. Bunun yerine, nesneleri değiş tokuş etmenin tek yolu, dahili verileri iki nesne ve geçici nesne değişkeni arasında alana göre klonlamaktır.

Exclusive veya (XOR) mantıksal operatörünü kullanarak standart bir takas gerçekleştirmek için teknik olarak kullanılabilecek bir teknik var. Bir XOR takası, iki bitin XOR ile hesaplandığında, esasen, operatörlerden biri veya her ikisi ile ters çevrilebilecek bir maske oluşturacaklarına dayanır. Bu şekilde, iki değişken, A ve B, önce iki değişkenden oluşan bir XOR ile bir maske oluşturularak, daha sonra ilk önce B'nin değerini ve ardından A için değerin maskesini kaldırmak için XOR kullanılarak değiştirilebilir. Ne yazık ki, bu yöntemden kaçınılmasına rağmen geçici bir değişken oluşturulması, özellikle A ve B birbirine eşit olduğunda ve derleyici optimizasyonunun fiili işlemi değiştirebileceği durumlarda tüm durumlarda bir takas yapmaz.