1. Masalah : Mengurutkan angka dengan metode SELECTION SORT.Selection sort metode sorting dimana elemen- elemen di perbandingkan satu-persatu sampai pada elemen terakhir dan disusun berdasarkan ketentuan ketentuan berlaku (terbesar atau terkecil).
2. Analisis :
input : 2 4 1 3
output : 1 2 3 4
3. Algoritma :
Procedure minimum(input A : tempat,from, n : integer; output tempat : integer)
deklarasi :
i, min : integer
deskripsi :
min <-A[from];
tempat <- from;
for i <- from+1 to n do
if A[i] < min then
min <- A[i];
tempat <- i;
endif
endfor
Procedure selectionsort(output A : char; input n : integer)
deklarasi :
i, x : integer
deskripsi :
for i <- 1 to n do
minimum(A, i, n, x);
tukar(A[i], A[x]);
endfor
4.C++ :
#include <iostream>
using namespace std;
void baca(int A[],int n){
int i;
for(i=0;i<n;i++)
{cout <<"Data ke-"<<i+1<<"=";
cin>>A[i];
}
}
void cetak (const int A[],int n){
int i;
for(i=0; i<n; i++)
cout<<A[i];
cout<<"\n";
}
void tukar (int *a, int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
void minimum (int A[],int from,int n,int *tempat){
int i,min;
min = A[from];
*tempat = from;
for (i=from+1;i<n;i++)
if (A[i]<min){
min=A[i];
*tempat=i;
}
}
void selectionsort(int A[],int n){
int i, x;
for(i=0;i<n;i++){
minimum (A,i,n,&x);
tukar(&A[i],&A[x]);
}
}
main(){
int data[10],n;
cout<<"banyak data = ";
cin>>n;
baca(data,n);
cetak(data,n);
selectionsort(data,n);
cout<<endl;
cout<<"Setelah diurutkan "<<endl;
cetak(data,n);
return 0;
}
0 komentar:
Posting Komentar