Swap Nedir? Swap C Kodu

swap
Swap İşlemi
Swap Sıralama Algoritmalarında çokça kullanılan bir yöntemdir. Bu terimle ilk olarak karşılaştıysanız swap nedir diye sormanız çok muhtemeldir. Swap yer değiştirme işlemidir. Bir dizideki sayıları yer değiştirmeye swap denilir. Pek çok sıralama algoritmasında bu yöntem yer değiştirmek için kullanılır.


Swap Nedir? Örnek Üzerinde Anlatım


Öncelikle bir dizimiz olsun. Bu dizimizin indislerine de sırası ile 5 eleman atanmış olsun.

Elemanlarımız; 23 42 11 25 98 57

yani dizimizin indis karşılığı şöyle oluyor;

dizi[0] = 23;
dizi[1] = 42;
dizi[2] = 11;
dizi[3] = 25;
dizi[4] = 98;
dizi[5] = 57;

şimdi dizimizin 3. indisindeki değeri ile 5. indisindeki değerinin yerlerini değiştirmek isteyelim. yani yeni sistemde dizi[3] = 57 olurken dizi[5] = 25 olacak. Peki arkadaş biz bu işi kodla nasıl yapacağız? yani çok amelece bir yaklaşımda bulunsak;

dizi[3] = dizi[5],

desek dizi[3] değerine 57 sayısını atadık eyvallah. Ancak dizi[5] değerine dizi[3]'ün ilk değerini nasıl atayacağız? dizi[3] değeri artık gitti, değişti o, 57 oldu :) onu atasak dizi[5] değeri yine 57 olacak. hiçbir işe yaramayacak. İşte bu yüzden swap algoritması oluşturuldu. 


Swap Algoritması


Eğer değerin birini kaybetmek istemiyorsak bir tane fazladan değişken oluştururuz. O değişkende o değeri tutarız ki kaybolmasın. ne mi demek istiyorum? Bakın aynı örnek üzerinden gidiyorum. dizi[3] ile dizi[5] değerlerinin yerlerini değiştireceğiz. Bu yüzden bir tane elemanı elimde tutuyorum. Temp diye bir değişken oluşturuyorum.

int temp = dizi[3];
dizi[3] = dizi[5];
dizi[5] = temp;

Hah işte swap tam olarak bu :) bir tane değerimizi elimizde tutmazsak o değişkene yeni değer atadığımızda mevcut değer kaybolacak. Bu yüzden swap işlemini yapamayacağız. Swap algoritmasının kritik noktası temp değişkeni.


Swap Fonksiyonu C Kodu



void swap(int dizi[], int ilkdeger, int ikincideger)

{

    int temp = dizi[ilkdeger];

    dizi[ilkdeger] = dizi[ikincideger];

    dizi[ikincideger] = temp;

}
bakın işte tertemiz bir kod. Bu kodla dizideki iki farklı indise swap operasyonu yapabilirsiniz. Fonksiyonu nasıl kullanırım derseniz;

swap(diziniz, indis1, indis2);

bu değerleri girdiğiniz zaman indis1'in değeri indis2'nin değeri olurken, indis2'nin değeri indis1 olur.

Bubble Sort C Kodu

Etiketler: , , ,