RENCANA KULIAH MINGGU KE SEMBILAN
TENTANG SORTING
Selection
Sort
Algoritma pengurutan dengan
metode seleksi dapat diilustrasikan demikian. Misalkan
diberikan data awal :
[8,
4, 7, 3, 1, 2, 6, 5]
Data pertama adalah 8. Akan
dicari (atau tepatnya “dipilih/diseleksi”) data terkecil dari data
kedua sampai terakhir yang
terkecil untuk menempati posisi pertama (i=1) ini. Data terkecil
ditemukan pada posisi ke-5 (t=5).
Maka data pertama ditukar dengan data ke-5, menjadi :
[1, 4,
7, 3, 8, 2, 6, 5]
Langkah ini diulang untuk data
kedua (i=2). Ditemukan data terkecil pada posisi ke-6 (t=6). Datake-2 ditukar
dengan data ke-6, menjadi :
[1,
2, 7, 3, 8, 4, 6, 5]
Fase selengkapnya dapat dilihat
pada data berikut ini.
Data
awal : [8, 4, 7, 3, 1, 2, 6, 5] 1 terkecil, 8àß1
fase
1 [1, 4, 7, 3, 8, 2,
6, 5] 2 terkecil, 4àß2
fase
2 [1, 2, 7, 3, 8, 4, 6, 5] 3 terkecil, 7àß3
fase
3 [1, 2, 3, 7, 8, 4,
6, 5] 4 terkecil, 7àß4
fase
4 [1, 2, 3, 4, 8, 7,
6, 5] 5 terkecil, 8àß5
fase
5 [1, 2, 3, 4, 5, 7,
6, 8] 6 terkecil, 7àß6
fase
6 [1, 2, 3, 4, 5, 6,
7, 8] 7 terkecil, tetap
fase
7 [1, 2, 3, 4, 5, 6, 7,
8]
fase 8 [1, 2, 3, 4, 5, 6, 7, 8]
1. Identifikasi masalah : metode SELCTION SORT
mengurutkan angka dimana elemen- elemen
di perbandingkan satu-persatu sampai pada elemen terakhir dan di susun
berdasarkan ketentuan berlaku (terbesar atau terkecil).
2. Analisis:
àinput
: int data[10], n;
cout<<"Banyak data :
";
cin>>n;
baca_data(data,n);
àoutput
: cetak_data(data,n);
selection_sort(data,n);
cout<<endl;
cout<<"DATA YANG TELAH
TERSUSUN DARI TERKECIL HINGGA TERBESAR "<<endl;
cetak_data(data,n);
3. Membuat
flowchare
4. Tes
menggunakan data
è Input
: 7 6 5 4 3
è Output
: 3 4 5 6 7
5. C++
#include
<cstdlib>
#include
<iostream>
using
namespace std;
void
baca_data(int A[],int n)
{
int i;
for
(i=0;i<n;i++)
{cout<<"Data
ke -"<<i+1<<" : ";
cin>>A[i];
}
}
void
cetak_data(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 dari, int n, int*tempat)
{
int i, min;
min=A[dari];
*tempat=dari;
for(i=dari+1;i<n;i++)
if(A[i]<min)
{min=A[i];
*tempat=i;
}
}
void
selection_sort(int A[], int n)
{
int i, t;
for
(i=0;i<n;i++)
{
minimum(A, i, n, &t);
tukar(&A[i],
&A[t]);
}
}
int
main(int argc, char *argv [])
{
int data[10], n;
cout<<"Banyak data : ";
cin>>n;
baca_data(data,n);
cetak_data(data,n);
selection_sort(data,n);
cout<<endl;
cout<<"DATA YANG TELAH
TERSUSUN DARI TERKECIL HINGGA TERBESAR "<<endl;
cetak_data(data,n);
system ("pause");
return 0;
}
6. Eksekusi
(hasil runing C++)
waktu pengerjaan : 3 jam
0 komentar:
Posting Komentar