POLITEKNIK SEKAYU

http://polsky.ac.id/

Selasa, 14 Januari 2014

Shell Sort



Algoritma  Shell Sort
Pada pengurutan data kita terlebih dahulu harus membuat sub list – sub list yang di dasarkan pada jarak antar data yang di tentukan. Jarak yang telah ditetukan biasanya di lambangakan dengan k, biasanya jarak yang paling di gunakan pada sortingsn ini saat melakukan pengurutan data yaitu k5, k3. dan k1. Artinya, dari data yang akan ditentukan atau ditukar dengan data yang lain berjarak 5, 3 atau 1 data saja.
Kelebihan :
  1. Algoritma ini sangat rapat dan mudah untuk diimplementasikan.
  2. Operasi pertukarannya hanya dilakukan sekali saja.
  3. Waktu pengurutan dapat lebih ditekan.
  4. Mudah menggabungkannya kembali.
  5. Kompleksitas selection sort relatif lebih kecil.
Kekurangan :
  1.  Membutuhkan method tambahan.
  2. Sulit untuk membagi masalah.

Contoh program
#include<stdio.h>
#include<conio.h>
int main()
{
 int arr[30];
 int i,j,k,tmp,num;
 printf("Masukan Banyaknya Elemen :");
 scanf("%d", &num);
 for(k=0; k<num; k++)
 {
   printf("\nMasukkan %d Nilai : ",k+1);
   scanf("%d",&arr[k]);
 }

for(i=num/2; i>0; i=i/2)
 {
   for(j=i; j<num; j++)
   {
     for(k=j-i; k>=0; k=k-i)
     {
        if(arr[k+i]>=arr[k])
                        {
            break;
                        }
        else
        {
            tmp=arr[k];
            arr[k]=arr[k+i];
            arr[k+i]=tmp;
        }
     }
   }
 }
 printf("\n**** Hasil Shell Sort ****\n");
 for(k=0; k<num; k++)
     printf("%d\t",arr[k]);
 getch();
 return 0;
}

SELECTION SORT



SELECTION SORT
Pengertian selection sort
  Selection sort merupakan perbaikan dari metode bubble sort dengan mengurangi jumlah perbandingan.
  Selection sort merupakan metode pengurutan dengan mencari nilai data terkecil dan nilai data terbesar dimulai dari data diposisi 0 hingga diposisi N-1.
  Jika terdapat N data dan data terkoleksi dari urutan 0 sampai dengan N-1 maka algoritma pengurutan dengan metode selection sort adalah sebagai berikut :
·         Cari data terkecil dalam interval j = 0 sampai dengan j = N-1
·         Jika pada posisi pos ditemukan data yang terkecil, tukarkan data diposisi pos dengan data di posisi i jika k.
·         Ulangi langkah 1 dan 2 dengan j = j + i sampai dengan j = N-1, dan seterusnya sampai j = N - 1.
  Bila diketahui data awal berupa: 44 55 12 42 94 18 6 67, maka langkah per langkah pengurutan dengan metode selection sort adalah sebagai berikut:

  Kelebihan & kekurangan Selection Sort:
·         Kelebihan:
  1. Algoritma ini sangat rapat dan mudah untuk diimplementasikan.
  2. Operasi pertukarannya hanya dilakukan sekali saja.
  3. Waktu pengurutan dapat lebih ditekan.
  4. Mudah menggabungkannya kembali.
  5. Kompleksitas selection sort relatif lebih kecil.
·         Kekurangan:
  1. Sulit untuk membagi masalah.
CONTOH PROGRAM
#include<stdio.h>
int total,data[10];
void input(){
                printf("masukkan jumlah data=");
                scanf("%d",&total);
                for(int a=0; a<total; a++)
                {
                                printf("masukkan nilai pada index ke %d=",a+1);
                                scanf("%d",&data[a]);
                }
}
void sort(){
                int temp;
                for(int a=0; a<total; a++)
                {
                                for(int b=a+1; b<total; b++)
                                {
                                                if(data[a]>data[b])
                                                {
                                                                temp=data[b];
                                                                data[b]=data[a];
                                                                data[a]=temp;
                                                }
                                }
                }
}
void view(){
                for(int a=0; a<total; a++)
                {
                                printf("%d,",data[a]);
                }
                printf("\n");
}
int main(){
                input();
                printf("sebelum di-sorting\n");
                view();
                sort();
                printf("sesudah disorting\n");
                view();
}
Outputnya