srijeda, 30. prosinca 2009.

sortiranje velikih brojeve(merge sort)

#include

int a[10], t[10];
void sortiraj(int, int);
void spoji(int, int, int);
int main()
{
int i;
for(i=0; i<10;i++)
scanf("%d", &a[i]);
sortiraj(0,9);
for(i=0; i<10;i++)
printf("%d ", a[i]);
return 0;
}
void sortiraj(int lo, int hi)
{
if (hi==lo)return;
int mid=(hi+lo)/2;
sortiraj(lo,mid);
sortiraj(mid+1,hi);
spoji(lo,mid,hi);
}
void spoji(int lo, int mid, int hi)
{
int ia=lo;
int ib=mid+1;
int it=0;

while(ia<=mid&&ib<=hi)
t[it++]=(a[ia]
while(ia<=mid) t[it++]=a[ia++];
while(ib<=hi) t[it++]=a[ib++];

int uk=(hi-lo)+1, i;
for(i=0;i a[lo+i]=t[i];

}

Nema komentara:

Objavi komentar