Sorting #2 - Metode Selection Sort
By
Unknown
—
Jumat, 13 Desember 2013
—
Struktur Data
Contoh Program Sorting - Metode Selection Sort C++ |
Selection Sort merupakan kombinasi antara sorting dan searching. Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array.
Berikut ini program Selection Sort menggunakan C++:
/***Selection sort***/
#include <iostream>
using namespace std;
#include <iomanip>
#include <conio.h>
//prototype fungsi Selection sort
void SelectionSort(int Array[], const int Size)
{
int i, j, kecil,temp;
for(i=0; i<Size;i++)
{
kecil = i;
for(j=i+1; j<Size; j++ )
{
if (Array[kecil]>Array[j])
{
kecil = j;
}
}
temp = Array[i];
Array[i] = Array[kecil];
Array[kecil] = temp;
}
}
//fungsi utama
int main()
{
//pendeklarasian variabel
int NumList[8] =
{5,34,32,25,75,42,22,2};
//tampilkan data sebelum diurutkan
cout<<"\t================================"<<endl;
cout<<"\tPENGURUTAN DENGAN SELECTION SORT"<<endl;
cout<<"\t================================"<<endl;
cout<<"Data Sebelum diurutkan : \n";
for(int d = 0; d <8; d++)
{
cout<<setw(3)<<NumList[d];
}
cout<<"\n\n";
SelectionSort(NumList, 8);
//tampilkan data setelah diurutkan
cout<<"Data setelah diurutkan : \n";
for(int iii = 0; iii<8; iii++)
cout<<setw(3)<<NumList[iii]<<endl<<endl;
_getch();
return EXIT_SUCCESS;
}
Algoritma & Penjelasan :
Begitulah cara kerja Selection sort, yaitu dengan menyeleksi data dan menukarkan data pada tempat yang seharusnya.
·
Program ini digunakan
untuk mengurutkan data dengan menggunakan metode Selection sort.
·
Pada awalnya dibuat
fungsi “void SelectionSort(int Array[], const int
Size)” yang digunakan untuk proses pengurutan data dengan
metode selection sort. (tentang syntax akan dijelaskan di belakang).
·
Masuk fungsi main,
deklarasikan variabel
int
NumList[8] = {5,34,32,25,75,42,22,2};
·
Tampilkan judul dan
data sebelum diurutkan. Kemudian panggil fungsi SelectionSort(NumList,
8); untuk mengurutkan data.
for(int
iii = 0; iii<8; iii++)
cout<<setw(3)<<NumList[iii]<<endl<<endl;
Setelah data diurutkan, kemudian tampilkan data yang sudah diurutkan
dengan menggunakan syntax di atas.
·
Penjelasan syntax
yang berada di dalam fungsi void SelectionSort(int
Array[], const int Size) :
int
i, j, kecil,temp;
for(i=0;
i<Size;i++) //size = 8
{
kecil = i;
for(j=i+1; j<Size; j++ )
{
if (Array[kecil]>Array[j])
{
kecil = j;
}
}
temp = Array[i];
Array[i] = Array[kecil];
Array[kecil] = temp;
}
-
Misalkan, untuk i = 0
for(i = 0; i < 8; i++)
{
kecil = 0;
for(j = i+1; j<8;j++)
{
if(array[0]>array[1])…(X)//kondisi tidak
sesuai
Increment
j dan ulang!
if(array[0]>array[2])…(X)
Increment
j dan ulang!
if(array[0]>array[3])…(X)
Increment
j dan ulang!
if(array[0]>array[4])…(X)
Increment
j dan ulang!
if(array[0]>array[5])…(X)
Increment j dan ulang!
if(array[0]>array[6])…(X)
Increment
j dan ulang!
if(array[0]>array[7])
//kondisi sesuai
{
kecil = 7;
}
}
//pertukaran nilai
temp = 5;
array[0] = 2 ;
array[7] = 5;
}
Urutan menjadi 2,34,32,25,75,42,22,5. Untuk proses pengurutan akan diulang terus sampai
data benar-benar urut.
Begitulah cara kerja Selection sort, yaitu dengan menyeleksi data dan menukarkan data pada tempat yang seharusnya.
Output
================================
PENGURUTAN DENGAN SELECTION SORT
================================
Data Sebelum diurutkan :
5 34 32 25 75 42 22 2
Data setelah diurutkan :
2
5
22
25
32
34
42
75
Baca juga :
[RS]
Klik Like & Share jika postingan ini bermanfaat
Apa tanggapan Anda?
Berikan tanggapan Anda melalui kolom komentar yang telah disediakan.
- Gunakan bahasa yang sopan;
- Saat menjadikan postingan pada blog ini sebagai referensi, jangan lupa mencantumkan sumbernya (link dari blog ini).
Jika blog ini bermanfaat jangan lupa memberikan 'like' atau 'share' untuk mendapatkan update terbaru.
Terima kasih