You are on page 1of 4

BUCKET SORT

SPECIFICATION:WRITE A PROGRAME IN `C’ FOR BUCKET SORT

ALGORITHM:

BUCKET_SORT(A)
{
nlength(A);
for i0 to n-1 do
bucket[n*A[i]]A[i]
for i0 to n-1 do
call Insertion_sort(bucket[i])
concatenate bucket[0].....bucket[n-1]
}
Insertion_sort(A[])
{
For i 1 to length[A]-1 do
{
Ji-1
Temp A[i]
While(a[j]>temp and j>=0)do
{
A[j+1]A[j]
Jj-1
}
A[j+1]temp
}
}

C CODE:

#include<stdio.h>
#include<conio.h>
#include<alloc.h>
struct node
{
float info;
struct node *link;
}*ptr,*p,*B[10]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
void main()
{
float a[10],temp;
int i,t,n;
clrscr();
printf("\n ENTER THE NUMBER OF ARRAY(MAX 10)\n");
scanf("%d",&n);
printf("\n ENTER THE FLOATING NUMBER OF ARRAY \n ");
for(i=0;i<n;i++)
scanf("%f",&a[i]);
for(i=0;i<n;i++)
{
t=n*a[i];
ptr=(struct node*)malloc(sizeof(struct node));
ptr->info=a[i];
ptr->link=NULL;
if(B[t]==NULL)
B[t]=ptr;
else
{
p=B[t];
while(p->link!=NULL)
p=p->link;
p->link=ptr;
}
}
printf("SORTED ARRAY IN BUCKET\n");
for(i=0;i<n;i++)
{
printf("\n\nELEMENT IN BUCKET0[%d]\n",i);
p=B[i];
if(p!=NULL)
while(p!=NULL)
{
printf("%1.2f\t",p->info);
p=p->link;
}
printf("\n");
}
printf("\nSORTED ELEMENT\n");
for(i=0;i<n;i++)
{
p=B[i];
if(p!=NULL)
while(p!=NULL)
{
printf("%1.2f\t",p->info);
p=p->link;
}
}
getch();
}

RESULT:
ENTER THE NUMBER OF ARRAY(MAX 10)

ENTER THE FLOATING NUMBER OF ARRAY


0.03
0.22
0.44
0.55
0.77
0.99
SORTED ARRAY IN BUCKET

ELEMENT IN BUCKET0[0]
0.03

ELEMENT IN BUCKET0[1]
0.22

ELEMENT IN BUCKET0[2]
0.44

ELEMENT IN BUCKET0[3]
0.55

ELEMENT IN BUCKET0[4]
0.77

ELEMENT IN BUCKET0[5]
0.99

SORTED ELEMENT
0.03 0.22 0.44 0.55 0.77 0.99
NAME:ANIL
ROLL NO.:0722213009

You might also like