Kamis, 14 April 2011

struktur data tentang sorting atau pengurutan

Metode seleksion sort (selection sort) melakukan pengurutan dengan cara mencari data yang terkecil kemudian menukarkannya dengan data yang digunakan sebagai acuan atau sering dinamakan pivot.
Proses pengurutan dengan metide selection dapat dijelaskan sebagai berikut: mula-mula dilakukan pengulangan dari 1  sampai dengan (N-1). Pada tiap-tiap pengulangan dicari data yang paling kecil diantara data yang ke(i+1) sampai dengan data terakhir (=N). data yang terkecil ini kemudian ditukarkan  dengan pivot, yaitu data ke i. tentu saja , apabila data terkecil tersebut lebih besar daripada data ke-I,proses penukaran tidak perlu dilakukan.

untuk lebih jelasnya perhatikan proses pengurutan dengan metode selection yang disajikan pada table di bawah
Proses pengurutan pada table diatas dijelaskan sebagai berikut :
• Pada saat i=1, data yang terkecil dari antara data ke-2 sampai dengan 9 adalah data ke-5,yaitu 3. Dengan demikian data ke-1,yaitu 12, ditukar dengan data ke-5 yaitu 3.
• Pada saat i=2, data yang terkecil dari antara data ke-3 sampai dengan 9 adalah data ke-3,yaitu 9. Dengan demikian data ke-2,yaitu 35, ditukar dengan data ke-3 yaitu 9.
• Pada saat i=3, data yang terkecil dari antara data ke-4 sampai dengan 9 adalah data ke-4,yaitu 11. Dengan demikian data ke-3,yaitu 35, ditukar dengan data ke-4 yaitu 11.
• Demikian seterusnya

Dari algoritma dan program diatas ,dapat disimpulkan bahwa jumlah pembandingan (=C) untuk metode seleksi adalah sebagai berikut:


Jumlah penukaran (=M) yang dilakukan untuk metode seleksi tergantung pada keadaan datanya. Jumlah penukaran minimum dan maksimum dapat dirumuskan sebagai berikut:
Jumlah penukaran minimum terjadi bila data sudah dalam keadaan terurut, sebaliknya jumlah penukaran maksimum terjadi bila  data dalam keadaan urut terbalik.


contoh source code tentang simulasi sorting dengan algoritma selection sort. Dengan banyaknya angka ditentukan oleh inputan user. Catatan: simulasi berarti menampilkan perubahan secara terurut secara tahap demi tahap





#include "stdio.h"


void tampil(int data[], int n)
{
      int i;
      for (i=0;i<n;i++)
      printf("%3d",data[i]);
      printf("\n\n");
}


void urutan(int data[], int n)
{
int akhir, awal, j, tmp;
printf("\n");
printf("    Proses Pengurutannya \n\n");
for(awal=0;awal<n-1;awal++)
    {
      akhir=awal;
      for (j=awal+1;j<n;j++)
       if(data[akhir]>data[j])
          akhir=j;

       
           tmp=data[awal];
         data[awal]=data[akhir];
         data[akhir]=tmp;

      printf(" ke %d =" ,awal+1);
      tampil(data,n);

   }
}

void main ()
{
      int data[50],n;
      printf(" PENGURUTAN DATA DENGAN SELECTION SORT \n\n");
      printf("      masukkan banyak data : ");
      scanf("%d",&n);
      for (int a=0;a<n;a++)
    {
            printf("masukkan data ke %d   = ",a+1);
            scanf("%d",&data[a]);
      }
      urutan(data,n);
      printf("\n\n  hasil pengurutan : \n\n");
      tampil(data,n);

}

semoga bermanfaat..

0 komentar:

Posting Komentar

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More