Mtode Pemograman Algoritma Selection Sort

Pengurutan seleksi (selection sort) mempunyai mekanisme seperti berikut : Mula-mula suatu penunjuk (diberi nama posAwal), yang menunjuk ke lokasi awal pengurutan data, diatur agar berisi indeks pertama dalam larik. Selanjutnya dicari bilangan terkecil yang terletak antara posisi sesudah yang ditunjuk oleh petunjuk tersebut hingga elemen yang terakhir dalam larik. Lokasi bilangan ini ditunjuk oleh posMin. Lalu tukarkan nilai bilangan terkecil tersebut dengan nilai yang ditunjuk posAwal. Proses seperti itu diulang dari posAwal bernilai 0 hingga n-2, dengan n menyatakan jumlah elemen dalam larik.






Implementasi pengurutan selection sort dalam bentuk algoritma dan program


Algoritma :
    SUBRUTIN selection_sort (L,n)
      UNTUK posAwal = 0 S/D n-2
        PosMin ← posAwal
          UNTUK j ← posAwal + 1 S/D n-1
            JIKA L [posMin] > L[j] MAKA
            PosMin ← j
           AKHIR – JIKA
            AKHIR – UNTUK
        //Tukarkan
        tmp ← L[posAwal]
      L[posAwal] ← L[posMin]
    AKHIR – UNTUK
    AKHIR – SUBRUTIN


Sourch Code Program C++

#include <iostream.h>
#include <conio.h>

void tampilkan_larik(int data[], int n)
{
int i;
for (i=0;i<n;i++)
cout<<data[i]<<" ";
cout<<"\n";
}

void selection_sort (int data[], int n)
{
int posMin, posAwal, j, tmp;
for (posAwal=0;posAwal<n-1;posAwal++)
{
posMin=posAwal;
for (j=posAwal+1;j<n;j++)
if (data[posMin]>data[j])
posMin=j;

//tukarkan
tmp=data[posAwal];
data[posAwal]=data[posMin];
data[posMin]=tmp;

cout<<"hasil posAwal= "<<posAwal<<" : ";
tampilkan_larik(data,n);
}
}

int main()
{
const jum_data=8;
int i;
int data[]={25,57,48,37,12,92,80,33};
selection_sort(data, jum_data);

//hasil pengurutan
cout<<endl;
cout<<"Hasil pengurutan:\n";
tampilkan_larik(data,jum_data);
getch();
}

Hasil Program Setelah di Eksekusi

Labels: