-->

Algoritma Bubble Sort dalam Bahasa C

Algoritma pengurutan ini membandingkan dua buah elemen yang bersebelahan lalu dilakukan penukaran jika urutannya tidak sesuai. Perhatikan animasi di bawah ini.
http://en.wikipedia.org/wiki/Bubble_sort

Fungsi penukaran:
void tukar(int* x, int* y)
{
int temp = *x;
*x = *y;
*y = temp;
}

Algoritma fungsi bubble sort:
// mengecek keseluruhan elemen dan dilakukan pengulangan hingga terurut

// inisialisasi variabel penukaran menjadi 0, 
   // sebagai penanda bahwa tidak ada penukaran sebelumnya.
   // mengecek dua buah elemen hingga ujung array
      // jika elemen di sebelah kiri lebih besar dari elemen di sebelah kanan, 
      // maka terjadi penukaran

// inisialisasi variabel penukaran menjadi 1, 
         // sebagai penanda bahwa terjadi penukaran.

// pengurutan terjadi selama terjadi penukaran pada setiap loop.

Menerjemahkan algoritma tersebut ke bahasa pemrograman C:
int penukaran;

// mengecek keseluruhan elemen dan dilakukan pengulangan hingga terurut
do
{
// inisialisasi variabel penukaran menjadi 0, 
   // sebagai penanda bahwa tidak ada penukaran sebelumnya.
penukaran = 0;



}
while (penukaran)
// pengurutan terjadi selama ada penukaran pada setiap loop.

// mengecek dua buah elemen hingga ujung array
for (int i = 0; i < length - 1; i++)
{
// jika elemen di sebelah kiri lebih besar dari elemen di sebelah kanan, 
   // maka terjadi penukaran
if (array[i] > array[i + 1])
{
tukar(&array[i], &array[i + 1]);

// inisialisasi variabel penukaran menjadi 1, 
      // sebagai penanda bahwa terjadi penukaran
penukaran = 1;
}
}

Fungsi jadi:
void bubble_sort(int array[], int length)
{
   int penukaran;
   // mengecek keseluruhan elemen dan dilakukan pengulangan hingga terurut
   do
{
// inisialisasi variabel penukaran menjadi 0, 
      // sebagai penanda bahwa tidak ada penukaran sebelumnya.
penukaran = 0;

// mengecek dua buah elemen hingga ujung array
for (int i = 0; i < length - 1; i++)
{
// jika elemen di sebelah kiri lebih besar dari elemen di sebelah kanan,
         // maka terjadi penukaran
if (array[i] > array[i + 1])
{
tukar(&array[i], &array[i + 1]);

// inisialisasi variabel penukaran menjadi 1, 
            // sebagai penanda bahwa terjadi penukaran
penukaran = 1;
}
}
}
while (penukaran);
// pengurutan terjadi selama ada penukaran pada setiap loop.
}

Program jadi:
#include <stdio.h>

void tukar(int* x, int* y)
{
int temp = *x;
*x = *y;
*y = temp;
}

void bubble_sort(int array[], int length)
{
int penukaran;

// mengecek keseluruhan elemen dan dilakukan pengulangan hingga terurut
do
{
// inisialisasi variabel penukaran menjadi 0, 
      // sebagai penanda bahwa tidak ada penukaran sebelumnya.
penukaran = 0;

// mengecek dua buah elemen hingga ujung array
for (int i = 0; i < length - 1; i++)
{
// jika elemen di sebelah kiri lebih besar dari elemen di sebelah kanan,
         // maka terjadi penukaran
if (array[i] > array[i + 1])
{
tukar(&array[i], &array[i + 1]);

// inisialisasi variabel penukaran menjadi 1, 
            // sebagai penanda bahwa terjadi penukaran
penukaran = 1;
}
}
}
while (penukaran);
// pengurutan terjadi selama ada penukaran pada setiap loop.
}

int main()
{
// input jumlah elemen;
int num;
printf("Input jumlah elemen: ");
scanf("%d", &num);

// input elemen-elemen data
int data[num];
for (int i = 0; i < num; i++)
{
printf("Elemen %d: ", i);
scanf("%d", &data[i]);
}

// lakukan pengurutan
bubble_sort(data, num);

// tampilkan hasil pengurutan
for (int i = 0; i < num; i++)
{
printf("%d ", data[i]);
}
return 0;
}

Animasi bubble sort


1 Response to "Algoritma Bubble Sort dalam Bahasa C"

  1. Harrah's Casino And Hotel, Las Vegas, Nevada - Mapyro
    View Harrah's Casino And Hotel, 김해 출장마사지 profile 파주 출장마사지 picture 777 김포 출장마사지 Harrah's 서산 출장안마 Blvd S Las Vegas, 나주 출장안마 NV 89109. Map. Directions to Harrah's Casino And Hotel,

    ReplyDelete

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel