Sorting #2 - Metode Selection Sort - nblognlife

Sorting #2 - Metode Selection Sort

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 :
·         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



Macam-macam Algoritma Sorting bisa dilihat di sini -> Algoritma Sorting   
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