C ile Shell Sort
26 Ocak 2009 – 15:38#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define N 10000
int main()
{
int array[N];
int saniye=time(NULL);
int rastgelesayi;
int a;
int i,j,k,yedek;
time_t basla, bit;
double fark;
srand(saniye);
//Rastgele sayi üretip diziye attik
for(a=0;a<N;a++)
{
rastgelesayi=rand()%10+1;
array[a]=rastgelesayi;
}
//Rastgele diziyi ekranda gösterdik
printf(”\tdizi\n”);
for(a=0;a<N;a++)
{
printf(”%d \t”,array[a]);
}
//Diziyi siraliyoruz…
time (&basla);
i=(int)N/2 ;
while(i>0)
{
for(j=i;j<N;j++)
{
k=j-i;
while(k>0)
{
if(array[k]>array[k+i])
{
yedek=array[k];
array[k]=array[k+i];
array[k+i]=yedek;
k=k-i;
}
else
k=0;
}
}
if(i==2)
i=1;
else
i=(int)(i/2);
}
time (&bit);
//Sirali diziyi ekrana tekrar yazdirdik
printf(”\n\tyeni dizi\n”);
for(a=0;a<N;a++)
{
printf(”%d “,array[a]);
}
fark = difftime(bit, basla);
printf(”\n%2lf”,fark+1);
return 0;
}

