Selection Sort
Selection Sort Membandingkan elemen yang sekarang dengan elemen yang berikutnya sampai dengan elemen yang terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang
maka dicatat posisinya dan kemudian ditukar.
Pengurutan data dalam struktur data sangat penting untuk data yang beripe data numerik ataupun karakter.Pengurutan dapat dilakukan secara ascending (urut naik) dan descending (urut turun) Pengurutan (Sorting) adalah proses menyusun kembali data yang sebelumnya telah disusun dengan suatu pola tertentu, sehingga tersusun secara teratur menurut aturan tertentu.
Contoh:
Data Acak : 5 6 8 1 3 25 10
Ascending : 1 3 5 6 8 10 25
Descending : 25 10 8 6 5 3 1
Konsep Selection Sort Algoritma pengurutan sederhana salah satunya adalah Selection Sort. Ide dasarnya adalah melakukan beberapa kali pass untuk melakukan penyeleksian elemen struktur data. Untuk sorting ascending (menaik),
elemen yang paling kecil di antara elemen-elemen yang belum urut, disimpan indeksnya, kemudian dilakukan pertukaran nilai elemen dengan indeks yang disimpan tersebut dengan elemen yang paling depan yang belum urut. Sebaliknya, untuk sorting descending (menurun), elemen yang paling besar yang disimpan indeksnya kemudian ditukar.
Selection Sort diakui karena kesederhanaan algoritmanya dan performanya lebih bagus daripada algoritma lain yang lebih rumit dalam situasi tertentu. Algoritma ini bekerja sebagai berikut:
1. Mencari nilai minimum (jika ascending) atau maksimum (jika descending) dalam sebuah list
2. Menukarkan nilai ini dengan elemen pertama list
3. Mengulangi langkah di atas untuk sisa list dengan dimulai pada posisi kedua. Secara efisien kita membagi list menjadi dua bagian yaitu bagian yang sudah diurutkan, yang didapat dengan membangun dari kiri ke kanan dan dilakukan pada saat awal, dan bagian list yang elemennya akan diurutkan.
Untuk lebih jelasnya simaklah video ini
link : https://youtu.be/L--X3qv7Mqs (channel Arry Muhammad)
Coding dalam C++ adalah sebagai berikut
#include <iostream>
|
using namespace std;
|
void tampilkan_larik(int
data[],int n)
|
{
|
int i;
|
for (i=0 ; i<n; i++)
|
cout<< data[i] <<"
";
|
cout<<endl;
|
}
|
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 Tahap
"<<posawal<<":" ;
|
tampilkan_larik(data,n);
|
}
|
}
|
int main()
|
{
|
int const JUM_DATA =8;
|
int i;
|
int data[]= {25,57,48,37,12,91,80,33};
|
selection_sort(data, JUM_DATA);
|
//hasil pengurutan
|
cout<<endl;
|
cout<<"________________"<<endl;
|
cout<<"HASIL
PENGURUTAN"<<endl;
|
cout<<"________________"<<endl;
|
tampilkan_larik(data, JUM_DATA);
|
return 0;
|
}
|
Dan hasilnya adalah
j352z8cqqvx029 dildo,adult sex toys,real dolls,sex toys,male sex toys,cheap sex toys,penis sleeves,dog dildo,Panty Vibrators p658d0wvoqi092
BalasHapus