Selection Sort adalah metode membandingkan suatu elemen dengan elemen berikutnya sampai elemen yang terakhir. Untuk pengurutan ascending, elemen yang paling kecil di antara elemen-elemen yang belum urut disimpan indeksnya, kemudian melakukan pertukaran nilai elemen indeks yang disimpan tersebut dengan elemen yang belum terurut. Untuk pengurutan descending, elemen yang paling besar di antara elemen-elemen yang belum urut disimpan indeksnya, kemudian melakukan pertukaran nilai elemen indeks yang disimpan tersebut dengan elemen yang belum terurut.
Script:
#include<iostream> using namespace std; void tukar(int &a, int &b) { int temp; temp = a; a = b; b = temp; } void selectionsort(int val[], int n, char o) { int idx; if(o == 'A') { for(int x = 0; x < n; x++) { idx = x; for(int y = x + 1; y < n; y++) { if(val[y] < val[idx]) idx = y; } if(idx != x) tukar(val[x], val[idx]); } } else if(o == 'D') { for(int x = 0; x < n; x++) { idx = x; for(int y = x + 1; y < n; y++) { if(val[y] > val[idx]) idx = y; } if(idx != x) tukar(val[x], val[idx]); } } } 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]; }selectionsort(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