Home > Programming > Simple Bubble Sort

Simple Bubble Sort

Bubble sort adalah salah satu algoritma pengurutan (sorting) yang paling sederhana. Nama ‘bubble’ (gelembung) diberikan karena prinsipnya bisa diibaratkan seperti gelembung dari dasar air yang bergerak menuju permukaan. By the way, ini salah satu pertanyaan waktu job interview dulu, yang diajukan secara spontan (jadi ingat masa lalu, l3b4y mode: on).

Prinsipnya adalah membandingkan dua elemen yang saling berdekatan, apabila sesuai dengan aturan pengurutannya (ascending/naik atau descending/turun) maka akan didiamkan. Sebaliknya bila tidak sesuai, kedua nilai tersebut akan ditukar tempatnya. Terus diulang hingga tidak terjadi pertukaran tempat lagi, dengan kata lain, array sudah sesuai urutannya.

C# code:

public static void BubbleSortAsc(int[] unsortedInt)
{
    bool swapped = true;
    while (swapped)
    {
        swapped = false;
        for (int i = 1; i < unsortedInt.Length; i++)
        {
            if (unsortedInt[i] < unsortedInt[i - 1])
            {
                Swap(unsortedInt, i, i - 1);
                swapped = true;
            }
        }
    }
}

public static void BubbleSortDesc(int[] unsortedInt)
{
    bool swapped = true;
    while (swapped)
    {
        swapped = false;
        for (int i = 1; i < unsortedInt.Length; i++)
        {
            if (unsortedInt[i] > unsortedInt[i - 1])
            {
                Swap(unsortedInt, i, i-1);
                swapped = true;
            }
        }
    }
}
private static void Swap(int[] unsortedInt, int i, int j)
{
    int temp = unsortedInt[i];
    unsortedInt[i] = unsortedInt[j];
    unsortedInt[j] = temp;
}

Algoritma ini masih algoritma dasar dan masih bisa di-improve. Code juga masih bisa diperbaiki untuk efisiensi line of code dan readability-nya. It’s just a quick post so bear with it, please let me know your opinion. Thanks for reading.

About these ads
Categories: Programming Tags: ,
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: