Bubble Sort adalah metode mengurutkan data dengan cara membandingkan elemen-elemen yang bersebelahan. Untuk pengurutan ascending, jika satu elemen lebih besar dari elemen berikutnya, maka kedua elemen tersebut ditukar. Untuk pengurutan descending, jika satu elemen lebih kecil dari elemen berikutnya, maka kedua elemen tersebut ditukar. Algoritma ini seolah-olah menggeser satu per satu elemen dari kanan ke kiri atau kiri ke kanan, tergantung jenis pengurutannya.
Script:
#include<iostream>
using namespace std;
void tukar(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void bubblesort(int val[], int n, char o)
{
if(o == 'A')
{
for(int x = 0; x < n; x++)
{
for(int y = 0; y < (n - 1); y++)
{
if(val[y + 1] < val[y])
tukar(val[y + 1], val[y]);
}
}
}
else if(o == 'D')
{
for(int x = 0; x < n; x++)
{
for(int y = 0; y < (n - 1); y++)
{
if(val[y + 1] > val[y])
tukar(val[y + 1], val[y]);
}
}
}
}
int main()
{
char urut;
int nilai[100];
int z, jumlah;
cout<<"Jumlah Data : ";
cin>>jumlah;
cout<<"Urut [A/D] : ";
cin>>urut;
cout<<"--------------------------------\n";
for(z = 0; z < jumlah; z++)
{
cout<<"Nilai ke-"<<1 + z<<" : ";
cin>>nilai[z];
}
bubblesort(nilai, jumlah, urut);
cout<<"--------------------------------\n";
cout<<" HASIL SORTIR \n";
cout<<"--------------------------------\n";
for(z = 0; z < jumlah; z++)
{
cout<<nilai[z]<<" ";
}
return 0;
}
No comments:
Post a Comment