Frozen X codE

The Stealth Coder Blog ^^

Menukar Nilai Dua Variabel Tanpa Variabel Ke-3

Demi Optimasi, kekekkekeke… Kalo biasanya kita nulis subtitusi variabel dengan variabel ke-3 kayak gini:

void swap(int a, int b)
{
    int temp;
    temp = a;
    a = b;
    b = temp;
}

Bisa kita sederhanakan jadi menggunakan dua variabel az, kayak gini:


void swap(int a, int b)
{
    a = a + b;
    b = a - b;
    a = a - b;
}

Dan berikut cara yang lebih teroptimasi, karen menggunakan operator xor terhadap bit:

void swap(int a, int b)
{
    a = a ^ b;
    b = a ^ b;
    a = a ^ b;
}

Gampang kan… v^^

7 responses to “Menukar Nilai Dua Variabel Tanpa Variabel Ke-3

  1. warmorning Juli 14, 2008 pukul 12:53 pm

    mampush gue, gak ngerti abis ! 😀

    frozen_x reply: *GUBRAG* masa sih, itu kan cuma tambah-tambahan. -.-a

  2. yud1 Juli 15, 2008 pukul 9:21 pm

    XOR buat tambah-tambahan… kelihatannya memang bisa sih, tapi carry-nya gimana?

    a = 7 (0…0111)
    b = 2 (0…0010)

    a XOR b = (0…0101) = 5 ?

    tapi kalau dalam konteks penukaran bilangan sih memang mungkin, yah.

    a = 7 (0…0111)
    b = 2 (0…0010)

    a = a ^ b //a == (0…0101)
    b = a ^ b //b == (0…0111)
    a = a ^ b //a == (0…0010)

    memang sih, pada dasarnya selama nilai salah satu dari a (atau b) dipertahankan pada satu waktu, maka nilai yang lain bisa dikembalikan dengan sifat dari operator XOR…

    ~nice 😉
    ~lho kok jadi panjang ya? 🙄

    Frozen X: xor untuk tambah-tambahan? . . . belum tau bisa apa ga’. kekekekke…

  3. yud1 Juli 16, 2008 pukul 5:42 am

    xor untuk tambah-tambahan? . . . belum tau bisa apa ga’. kekekekke…

    lho, tadi bukannya…

    *GUBRAG* masa sih, itu kan cuma tambah-tambahan. -.-a

    AFAIK, memang nggak bisa sih. :mrgreen:

    Frozen X reply: gyahahaha… kalimat itu tuh maksudnya excluding yang xor. xixixixi…

  4. warmorning Agustus 11, 2008 pukul 11:39 am

    saya mau pingsan saja deh *gak ngartiiii* 😀

  5. BigBaNG Agustus 18, 2008 pukul 10:31 pm

    –sensor–

    maaf, selain pemilik blog, dilarang promosi apalagi jualan di sini!

  6. m teguh satria Oktober 11, 2008 pukul 5:11 am

    wah, suka coding jg yahh..

    salam kenal juga.. 😀
    makasih dah singgah.. 🙂

Tinggalkan Balasan ke yud1 Batalkan balasan