Dynamic Glitter Text Generator at TextSpace.net

Senin, 29 April 2013

PENGURUTAN



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
                        begin
                               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;

Tidak ada komentar:

Posting Komentar