Metode ini mengurutkan data dengan cara membandingkan suatu data lain yang memiliki jarak tertentu sehingga membentuk sebuah sub-list,kemudian dilakukan penukaran bila di perlukan
berikut contoh sources code dalam bahasa C
fungsi main
#include"stdio.h";
#include"stdlib.h";
#define max 10000
void input();
void tukar(int *, int *);
void tampil();
void shelshort();
int data[max],hasil[max];
int n;
int main()
{
input();
shelshort();
tampil();
}
fungsi input
void input()
{
int i;
printf("Masukkan jumlah total elemen: ");
scanf("%d",&n);
puts(" ");
for(i=0;i<n;i++)
{
data[i]=rand();
printf("%d\t",data[i]);
//printf("Elemen ke-%d: ",i+1);
//scanf("%d",&data[i]);
}
}
fungsi shellshort
void shelshort()
{
int swap,i,jarak;
jarak=n;
while(jarak>1)
{
jarak=jarak/2;
swap=1;
while(swap==1)
{
swap=0;
for(i=0;i<n-jarak;i++)
{
if(data[i]>data[i+jarak])
{
tukar(&data[i],&data[i+jarak]);
swap=1;
}
}
}
}
}
fungsi tampil
void tampil()
{
int j;
puts("\n");
for(j=0;j<n;j++)
{printf("%d\t",data[j]);}
puts("\n");
}
Video penjelasan Shell Sorting

Posting Komentar