Algoritma Bubble Sort dalam Bahasa C
Dec 1, 2021
1 Comment
Algoritma pengurutan ini membandingkan dua buah elemen yang bersebelahan lalu dilakukan penukaran jika urutannya tidak sesuai. Perhatikan animasi di bawah ini.
Fungsi penukaran:
Algoritma fungsi bubble sort:
Menerjemahkan algoritma tersebut ke bahasa pemrograman C:
Fungsi jadi:
Program jadi:
Animasi bubble sort
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
Harrah's Casino And Hotel, Las Vegas, Nevada - Mapyro
ReplyDeleteView Harrah's Casino And Hotel, 김해 출장마사지 profile 파주 출장마사지 picture 777 김포 출장마사지 Harrah's 서산 출장안마 Blvd S Las Vegas, 나주 출장안마 NV 89109. Map. Directions to Harrah's Casino And Hotel,