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

Tidak ada komentar:

Posting Komentar