Exchange Sort adalah metode mengurutkan data dengan cara membandingkan suatu elemen dengan elemen-elemen selanjutnya berturut-turut hingga elemen terakhir. Untuk pengurutan ascending, jika satu elemen lebih besar dari elemen yang dibandingkan, maka kedua elemen tersebut ditukar. Untuk pengurutan descending, jika satu elemen lebih kecil dari elemen yang dibandingkan, maka kedua elemen tersebut ditukar. Algoritma ini akan menghasilkan secara berturut-turut mulai dari nilai terkecil atau nilai terbesar elemen baik itu 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 exchangesort(int val[], int n, char o)
{
if(o == 'A')
{
for(int x = 0; x < (n - 1); x++)
{
for(int y = x + 1; y < n; y++)
{
if(val[y] < val[x])
tukar(val[y], val[x]);
}
}
}
else if(o == 'D')
{
for(int x = 0; x < (n - 1); x++)
{
for(int y = x + 1; y < n; y++)
{
if(val[y] > val[x])
tukar(val[y], val[x]);
}
}
}
}
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];
}
exchangesort(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