Source Code Program Selection Sort Ascending dan Descending

Source Code Program Selection Sort


Algoritma selection sort adalah algoritma yang digunakan untuk melakukan proses sorting dari data bisa dari data paling kecil kedata yang paling tinggi (ascending), juga dapat melakukan sorting data dari data yang paling besar ke data yang paling kecil (descending). 

1. Algoritma Selection Search Ascending
Cara kerja algoritma ini yaitu mencari seluruh nilai pada suatu urutan, setelah menemukan nilai terkecil dari urutan tersebut maka nilai tersebut diletakan pada bagian paling kiri. Setelah ditemukan sebuah nilai yang paling kecil dan diletakan pada bagian kiri atau index ke 0, dan nilai di index ke 0 ditukar dengan nilai terkecil tersebut. kemudian index pencarian naik ke index 1 pada data ke2 dan melakukan pencarian kembali untuk mencari nilai terkecil dari urutan bilangan dari index ke1 sampai index terakhir. proses tersebut diulangi sampai index terakhir sehingga data akan terurut dari nilai yang paling kecil ke nilai yang paling besar.

sebagai contoh ada beberapa nilai yang akan diurutkan :

nilai = 3,4,2,1

tahap 1: mencari nilai terkecil dari urutan index 0 sampai index terakhir dan didapat nilai terkecil yaitu 1 kemudian letakan di bagian paling kiri dan ditukar dengan index awal

nilai = 1,4,2,3

tahap 2 : index pencarian naik ke index 1 membandingkan kembali nilai pada urutan, diperoleh nilai terkecil adalah 2, kemudian nilai 2 ditukar ke nilai 4.

nilai = 1,2,4,3

tahap 3 : index pencarian naik ke index 2 membandingkan kembali nilai pada urutan, diperoleh nilai terkecil adalah 3, kemudian nilai 3 ditukar ke nilai 4.

nilai = 1,2,3,4

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

using namespace std;

int main()
{
int i,j,Imaks,maks,temp,n=9;
int L[10]={84,87,78,16,94,36,87,93,50,22};

auto start = chrono::high_resolution_clock::now();

for (i=n;i>=1;i--)
{
Imaks=0;
maks=L[0];
for (j=1;j<=i;j++)
{
if (L[j]<maks)
{
Imaks=j;
maks=L[j];
}
}
temp=L[i];
L[i]=maks;
L[Imaks]=temp;
}

auto finish = chrono::high_resolution_clock::now();

    cout << "Running Time : " << chrono::duration_cast<chrono::nanoseconds>(finish-start).count() << " nanoSeconds\n";
    
cout<<"Data terurut:"<<endl;
for (i=0;i<=n;i++)
{
cout<<L[i]<<" ";
}
cout<<endl;
getch();
}


1. Algoritma Selection Search Descending
Cara kerja algoritma ini yaitu mencari seluruh nilai pada suatu urutan, setelah menemukan nilai terbesar dari urutan tersebut maka nilai tersebut diletakan pada bagian paling kiri. Setelah ditemukan sebuah nilai yang paling besar dan diletakan pada bagian kiri atau index ke 0, dan nilai di index ke 0 ditukar dengan nilai terbesar tersebut. kemudian index pencarian naik ke index 1 pada data ke2 dan melakukan pencarian kembali untuk mencari nilai terbesar dari urutan bilangan dari index ke1 sampai index terakhir. proses tersebut diulangi sampai index terakhir sehingga data akan terurut dari nilai yang paling besar ke nilai yang paling kecil.

sebagai contoh ada beberapa nilai yang akan diurutkan :

nilai = 3,4,2,1

tahap 1: mencari nilai terkecil dari urutan index 0 sampai index terakhir dan didapat nilai terkecil yaitu 4 kemudian letakan di bagian paling kiri dan ditukar dengan index awal

nilai = 4,3,2,1

dan selesai ....

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

using namespace std;

int main()
{
int i,j,Imaks,maks,temp,n=9;
int L[10]={84,87,78,16,94,36,87,93,50,22};

auto start = chrono::high_resolution_clock::now();

for (i=n;i>=1;i--)
{
Imaks=0;
maks=L[0];
for (j=1;j<=i;j++)
{
if (L[j]>maks)
{
Imaks=j;
maks=L[j];
}
}
temp=L[i];
L[i]=maks;
L[Imaks]=temp;
}

auto finish = chrono::high_resolution_clock::now();

    cout << "Running Time : " << chrono::duration_cast<chrono::nanoseconds>(finish-start).count() << " nanoSeconds\n";
    
cout<<"Data terurut:"<<endl;
for (i=0;i<=n;i++)
{
cout<<L[i]<<" ";
}
cout<<endl;
getch();
}

Previous
Next Post »