Translate

Labels

Showing posts with label SORT PROGRAMS. Show all posts
Showing posts with label SORT PROGRAMS. Show all posts

Thursday, 28 February 2013

BINARY SEARCH


# include <stdio.h>
  main()
  {
    int n,a[20],i,j,t=0,m,low=0,high,mid;
    a[0]=0;
clrscr();
printf("\t\t\t\tBINARY SEARCH\n");
printf("\nEnter the no. of elements:\n");
    scanf("%d",&n);
    printf("\nEnter the elements:\n");
    for(i=1;i<=n;i++)
    scanf("%d",&a[i]);
    for(j=1;j<n;j++)
    for(i=1;i<n;i++)
    if (a[i]>a[i+1])
    {
      t=a[i];
      a[i]=a[i+1];
      a[i+1]=t;
    }
printf("\nThe ordered list is...\n");
    for(i=1;i<=n;i++)
printf("%d  ",a[i]);
printf("\n\nEnter the searching element:\n");
    scanf("%d",&m);
    high=n;
    while(low<=high)
    {
mid=(low+high)/2;
printf("\nMid element & position is... %d & %d",a[mid],mid);
      switch(m<a[mid])
      {
case 1:
high=mid-1;
break;
case 0:  if(m==a[mid])
{
  j=a[mid];
printf("\n\nThe element is present in the position %d.",mid);
  break;
}
else
low=mid+1;
j=0;
      }
      if(j==m) break;
    }
    if(j==0)
printf("\n\nThe element is not present");
    getch();
  }






INSERTION SORT



# include <stdio.h>
int a[100];
main()
{
int n,i,j,t,Z;
clrscr();
printf("\t\t\t\t INSERTION SORT \n");
printf("\nEnter the no. of elements:\n");
scanf("%d",&n);
printf("\nEnter the elements:\n");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("\nIterations:\n");
for(j=2;j<=n;j++)
{
      for(Z=1;Z<=n;Z++)
printf("%d  ",a[Z]);
printf("\n");
t=a[j];
insert(t,j-1);
}
for(Z=1;Z<=n;Z++)
printf("%d  ",a[Z]);
printf("\n\nThe sorted elements are...\n");
for(Z=1;Z<=n;Z++)
printf("%d  ",a[Z]);
getch();
}
insert(int r,int i)
{
int J,k;
J=i;
k=r;
while(k<a[J])
{
a[J+1]=a[J];
J--;
if(J==0)
break;
}
a[J+1]=r;
}


QUICK SORT



# include <stdio.h>
int a[100],l;
main()
{
int m,n,i;
clrscr();
printf("\t\t\t\tQUICK SORT\n");
printf("\nEnter the no. of elements:\n");
scanf("%d",&n);
l=n;
printf("\nEnter the elements:\n");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
m=1;
    printf("\nIterations:\n");
quick(m,n);
for(i=1;i<=n;i++)
printf("%d  ",a[i]);
printf("\n\nThe sorted elements are...\n");
for(i=1;i<=n;i++)
printf("%d  ",a[i]);
getch();
}
quick(int m,int n)
{
int h,i,j,k,z;
for(z=1;z<l;z++)
{
if(a[z]<=a[z+1])
h=1;
else
{
h=0;
break;
}
}
if(h==0)
{
for(z=1;z<=l;z++)
printf("%d  ",a[z]);
printf("\n");
}
if(m<n)
{
i=m;
j=n+1;
k=a[m];
while(i<j)
{
do
i++;
while(a[i]<k);
do
j--;
while(a[j]>k);
if(i<j)
interchange(i,j);
}
interchange(m,j);
quick(m,j-1);
quick(j+1,n);
}
}
interchange(int x,int y)
{
int t,z;
t=a[x];
a[x]=a[y];
a[y]=t;
}



HEAP SORT



# include <stdio.h>
int a[100],j;
main()
{
int n,t,i,z;
clrscr();
printf("\t\t\t\t  HEAP SORT\n");
printf("\nEnter the no. of elements:\n");
scanf("%d",&n);
printf("\nEnter the elements:\n");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=n/2;i>=1;i--)
adjust(i,n);
printf("\nInitial heap is...\n");
for(i=1;i<=n;i++)
printf("%d  ",a[i]);
printf("\n\nIterations:\n");
for(i=n-1;i>0;i--)
{
t=a[i+1];
a[i+1]=a[1];
a[1]=t;
adjust(1,i);
for(z=1;z<=i;z++)
printf("%d  ",a[z]);
printf("    \\     ");
for(z=i+1;z<=n;z++)
printf("%d  ",a[z]);
printf("\n");
}
getch();
clrscr();
printf("\nThe sorted elements are...\n");
for(i=1;i<=n;i++)
printf("%d  ",a[i]);
getch();
}
adjust (i,n)
{
int r,k;
r=a[i];
k=a[i];
j=2*i;
while(j<=n)
{
if((j<n)&&(a[j]<a[j+1]))
j+=1;
if(k>=a[j])
break;
a[j/2]=a[j];
j=2*j;
}
a[j/2]=r;
}

Monday, 25 February 2013

MERGE SORT



# include <stdio.h>
main()
{
int x[100],y[100],z[100],n,i,l;
clrscr();
printf("\t\t\t\t   MERGE SORT\n");
printf("\n\nEnter the no. of elements:\n");
scanf("%d",&n);
printf("\nEnter the elements.\n");
for(i=1;i<=n;i++)
scanf("%d",&x[i]);
printf("\nIterations:\n");
l=1;
while(l<n)
{
mpass(x,y,n,l);
l=2*l;
mpass(y,x,n,l);
l=2*l;
}
for(i=1;i<=n;i++)
printf("%d  ",x[i]);
printf("\n");
getch();
clrscr();
printf("\nThe sorted elements are...\n");
for(i=1;i<=n;i++)
printf("%d  ",x[i]);
getch();
}
mpass(int x[],int y[],int n,int l)
{
int i,q,z;
i=1;
while(i<=n-(2*l)+1)
{
merge(x,i,i+l-1,i+(2*l)-1,y);
i=i+(2*l);
}
if(i+l-1<n)
merge(x,i,i+l-1,n,y);
else
for(q=i;q<=n;q++)
y[q]=x[q];
for(z=1;z<=n;z++)
printf("%d  ",x[z]);
printf("\n");
}
merge(int x[],int l,int m,int n,int z[])
{
int i,j,k,r;
i=k=l;j=m+1;
while((i<=m)&&(j<=n))
{
if(x[i]<=x[j])
{
z[k]=x[i];
i++;
}
else
{
z[k]=x[j];
j++;
}
k++;
}
if(i>m)
for(r=j;k<=n;k++)
{
z[k]=x[r];
k++;
}
else
for(r=i;r<=m;r++)
{
z[k]=x[r];
k++;
}
return;
}