Sabtu, 01 Januari 2011

SORTING

 Sort  atau sorting adalah mengurutkan data yang berada dalam suatu tempat penyimpanan, dengan urutan tertentu baik menaik (ascending) dari nilai terkecil sampai dengan nilai terbesar, atau menurun (descending) dari nilai terbesar sampai dengan nilai terkecil.
Algoritma pengurutan dibagi menjadi 2: pengurutan internal dan pengurutan eksternal
Ada berbagai macam algoritma pengurutan internal tapi disini hanya akan di bahas 2 macam saja yaitu BUBLE SORT dan SELECTION SORT.

BUBLE SORT
Buble sort adalah proses pengurutan sederhana yang bekerja dengan berulang kali membandingkan dua elemen data dan menukar elemen data yang urutannya salah. Ide buble sort adalah gelembung air yang akan "mengapung" untuk table yang terurut menaik (ascending). elemen bernilai kecil akan "diapungkan" (ke indeks terkecil), artinya diangkat ke "atas" (indeks terkecil) melalui pertukaran.
contoh :
Pengurutan dari bilangan terkecil hingga terbesar
 3  4 5 2 1
dari contoh diatas maka, program akan mencari bilangan terkecil kemudian dibandingkan dan akhirnya bilangan terkecil tersebut akan disimpan dipaling kiri, menjadi :
2 4 5 3 1
1 4 5 3 2
selanjutnya program akan mengerjakan pada indeks ke 2 dan akan dilakukan  terus menerus hal yang sama seperti diatas hingga bilangan terkecil nanti berada di ujung sebelah kiri dan bilangan terbesar berada di ujung sebelah kanan. Dan berurut menjadi terkecil hingga paling besar.
1 2 3 4 5
Algoritma Buble Sort secara Ascending
Kamus data :
i,j,temp : integer
Algoritma :
for(i=0; i <= (N-2); i++);
   for (j=(N-1);j >= (i+1); j--);
        if (A[j-1] > A[j]);
            temp <- A[j-1];
            A[j-1]<-A[j];
            A[j]<-temp
        endif
     endfor
   endfor
end procedure


SELECTION SORT
Algoritma selection sort memilih elemen maximum/minimum array, lalu menempatkan elemen maximum/minimum itu pada awal atau akhir array (tergantung pada urutannya). Selanjutnya elemen tersebut tidak disertakan pada proses selanjutnya.
Pengurutan selection sort ini terdapat 2 bagian:

  • Algoritma pengurutan minimum : memilih elemen minimum sebagai basis pengurutan
  • Algoritma pengurutan maksimum : memilih elemen maksimum sebagai basis pengurutan
contoh algoritma pengurutan secara minimum 
2 = i    1 = n
            2 3 4 7 1
for(i=1; i <= n; i++);
     min = i;
  for(j = i+1; j<=n; j++);
      if(x [min] > x[j]);
        min = j
      endif
   endfor
       c = x[i];
       x[i] = x[min];
       x[min]=c;
   endfor
endprocedure

contoh algoritma pengurutan secara maksimum
int L[5] = {2,3,1,7,4};
int x=5;
int c,maks;
for(i = (x-1); i >= 0; i--){
    maks = 0;
    for(j = 0; j <= i; j++){
        if(L[j] > L[maks])
        {
          maks = j;
         }
     }
     c=L[i]
     L[i]=L[maks];
     L[maks] = c;
}
for (i=0; i<=x-1; i++){
     printf("%d", L[i];
}








i'm waiting for who like this,, i hope so n i will always wish ^_^