1.
BUBBLE SORT
Metode ini merupakan metode yang paling
sederhana dan paling tidak efisien, karena memerlukan waktu yang relatif lebih
lama dibandingkan dengan metode-metode yang lainnya. Konsep dasar dari Bubble
sort ialah membandingkan elemen yang
sekarang degan elemen yang berikutnya, jika elemen sekarang > elemen
berikutnya (untuk ascending), maka
dilakukan proses penukaran. Proses sorting dapat dimulai dari data awal atau
data akhir.
·
Contoh algoritma bubble
sort sebagai berikut:
- Void bubble sort (int array[], int n){
bool swapped=
true;
int j=0;
int tmp;
while (swapped){
swapped= false;
j++;
for (int i=0 i<n-j; i++){
if (arr[i] >
arr [ i+1]) {
tmp = arr
[i];
arr[i] =
arr [i+1];
arr [i+1]
= tmp;
swapped =
true;
}
}
}
}
2.
SELECTION
SORT
Selection
Sort merupakan salah satu algoritma pengurutan yang sederhana. 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.
·
Contoh algoritma
selection sort sebagai berikut:
- void SelectionSort(){
Int bil i, j, k;
for(i=1;
i< n-1;i++)
for
(j=i+1; j<n; j++)
if(Data[k] > Data[j])
j = i;
tukar (Data bil [ j ],
& Data bil [ j-1 ]);
}
}
3.
MERGE
SORT
·
Contoh algoritma merge
sort sebagai berikut:
- void MergeSort(int T1[],int T2[],int J1,int J2, int T3[],int *J3)
{
int
i=0, j=0;
int t=0;
while ((i<J1)||(j<J2)){
if(T1[i]<T2[j]){
T3[t] = T1[i];
i++;
}
else{
T3[t] = T2[j];
j++;
}
t++;
}
if(i>J1)
for(i=j; i<J2; i++){
T3[t] = T2[i];
t++;
}
if(j>J2)
for(j=i; j<J1; j++){
T3[t] = T1[j];
t++;
}
*J3 = t;
}
4.
HEARP
SORT
Hearp sort adalah metode mengurutkan
dengan memanfaatkan sifat yang dimiliki oleh struktur data heap. Heap sendiri
adalah sebuah “binary search tree” dengan sifat parent memiliki nilai >=
nilai yang ada di anaknya. Meski dikatakan ia adalah sebuah binary search tree,
namun heap lebih diarahkan ke konsepsi / menganggap suatu array memiliki sifat
heap.
·
Contoh algoritma heart
sort sebagai berikut:
- Procedure siftDown ( var A: SArray; start, end_: integer );
var root, child:
integer;
Begin
root := start;
while ( root * 2 + 1 <= end_ ) do
root := start;
while ( root * 2 + 1 <= end_ ) do
begin
child := root * 2 + 1;
if ( child < end_ ) and ( A[child] < A[child + 1] ) then
child := child + 1;
if ( A[root] < A[child] ) then
child := root * 2 + 1;
if ( child < end_ ) and ( A[child] < A[child + 1] ) then
child := child + 1;
if ( A[root] < A[child] ) then
begin
swap
( A[root], A[child] );
root := child;
end
else
break;
end;
end;
root := child;
end
else
break;
end;
end;
Tidak ada komentar:
Posting Komentar