Sorting adalah suatu proses pengurutan data yang sebelumnya
disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu
aturan tertentu.
Pada umumnya ada 2 macam pengurutan :
1.
Pengurutan secara ascending ( urutan naik)
2.
Pengurutan secara descending (urutan turun)
Contoh pengurutan data :
·
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
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
- Selama
proses pembandingan dan pengubahan hanya dilakukan pada indeks pembanding
saja, pertukaran data secara fisik terjadi pada akhir proses.
Untuk ilustrasi bisa di lihat di gambar di bawah
Data : 5, 1, 12, -5, 16, 2, 12, 14

Contoh coding
selection sort
#include
<iostream.h>
#include
<stdio>
#include
<conio.h>
int
selectionsort (int array[], const int size)
{
int i, j, kecil, temp;
for (i=0; i<size; i++)
{
kecil=i;
for (j=i; j<size; j++)
{
if (array[kecil]>array[j])
{
kecil = j;
}
}
temp = array [i];
array[i] = array[kecil];
array[kecil] = temp;
}
}
int main()
{
int NumList[8] = {5, 34, 32, 25, 75, 42,
22, 2};
int temp;
cout<<"Data sebelum diurutkan:
\n";
for (int d=0; d<8; d++)
{
cout<<setw(3)<<NumList[d];
}
cout<<"\n\n";
selectionsort(NumList,8);
cout<<"Data setelah
diurutkan:\n";
for (int iii=0; iii<8; iii++)
cout<<setw(3)<<NumList[iii]<<endl<<endl;
getch();
}
|
Insertion Sort
·
Mirip dengan cara orang mengurutkan kartu, selembar
demi selembar kartu diambil dan disisipkan ke tempat yang seharusnya
·
Pengurutan dimulai dari data ke 2 sampai dengan
data terakhir , jika ditemukan data yang lebih kecil, maka akan di tempatkan
(diinsert) di posisiyang seharusnya.
·
Pada penyisipan elemen maka elemen – elemen lain
akan bergeser ke belakang
#include
<iostream.h>
#include
<conio.h>
int
data[10],data2[10];
int n;
void
tukar(int a, int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void
insertion_sort()
{
int temp,i,j;
for(i=1;i<=n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp &&
j>=0)
{
data[j+1] = data[j];
j--;
}
data[j+1] = temp;
}
}
void main()
{
cout<<"INSERTION SORT PROGRAM"<<endl;
cout<<"Jumlah Data :
"; cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"Data ke
"<<i<<" :
"; cin>>data[i];
data2[i]=data[i];
}
insertion_sort();
cout<<"Data Setelah di Sort :
";
for(i=1; i<=n; i++)
{
cout<<"
"<<data[i];
}
}
|
Source : Presentasi Matakuliah Struktur Data Stikom Bali “Sorting”
0 komentar:
Posting Komentar