Ds 10 Exp
Ds 10 Exp
#include <stdio.h>
void main()
{
int a[50],i,n,upper,lower,mid,val,found,att=0;
printf("Enter array size:");
scanf("%d",&n);
for(i=0; i<n; i++)
a[i] = 2*i;
printf("\n Elements in Sorted Order \n");
for(i=0;i<n; i++)
printf("%4d",a[i]);
printf("\n Enter element to locate:");
scanf("%d",&val);
upper=n;
lower=0;
found=-1;
while(lower<=upper)
{
mid=(upper+lower)/2;
att++;
if(a[mid]==val)
{
printf("Found at index %d in %d attempts", mid, att);
found=1;
break;
}
else if(a[mid]>val)
upper=mid-1;
else
lower=mid+1;
}
if(found==-1)
printf("Element not found");
}
OUTPUT :
void main()
{
int i,j,k,n,temp,a[20],p=0;
printf("Enter total elements:");
scanf("%d",&n);
printf("Enter array elements:");
for(i=0; i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
{
temp=a[i];
j=i-1;
while((temp<a[j])&&(j>=0))
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=temp;
p++;
printf("\n After Pass %d:",p);
for(k=0;k<n;k++)
printf(" %d", a[k]);
}
printf("\n Sorted List:");
for(i=0;i<n;i++)
printf("%d",a[i]);
}
OUTPUT :
#include <stdio.h>
main()
{
int n,t,i,j,k,a[20],p=0;
printf("Enter total numbers of elements:");
scanf("%d",&n);
printf("Enter %d elements:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=n-1;i>=0;i--)
{
for(j=0;j<i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
p++;
printf("\n After Pass %d:",p);
for(k=0;k<n;k++)
printf("%d",a[k]);
}
printf("\n Sorted List:");
for(i=0;i<n;i++)
printf("%d",a[i]);
}
OUTPUT :
#include<stdio.h>
#include<conio.h>
void qsort(int arr[20],int fst,int last);
main()
{
int arr[30];
int i,size;
printf("Enter total no.of the elements:");
scanf("%d",&size);
printf("Enter total %d elements:\n",size);
for(i=0;i<size;i++)
scanf("%d",&arr[i]);
qsort(arr,0,size-1);
printf("\n Quick sorted elements \n");
for(i=0;i<size;i++)
printf("%d\t",arr[i]);
getch();
}
void qsort(int arr[20],int fst,int last)
{
int i,j,pivot,tmp;
if(fst<last)
{
pivot=fst;
i=fst;
j=last;
while(i<j)
{
while(arr[i]<=arr[pivot]&&i<last)
i++;
while(arr[j]>arr[pivot])
j--;
if(i<j)
{
tmp=arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
}
tmp=arr[pivot];
arr[pivot]=arr[j];
arr[j]=tmp;
qsort(arr,fst,j-1);
qsort(arr,j+1,last);
}
}
OUTPUT :
#include <stdio.h>
#include <conio.h>
void merge(int[],int,int,int );
void part(int[],int,int );
int size;
main()
{
int i,arr[30];
printf("Enter total no. of elements:");
scanf("%d",&size);
printf("Enter array elements:");
for(i=0;i<size;i++)
scanf("%d",&arr[i]);
part(arr,0,size-1);
printf("\n Merge sorted list:");
for(i=0;i<size;i++)
printf("%d",arr[i]);
getch();
}
void part(int arr[],int min,int max)
{
int mid;
if(min<max)
{
id=(min+max)/2;
part(arr,min,mid);
part(arr,mid+1,max);
merge(arr, min, mid, max);
}
if(max-min==(size/2)-1)
{
printf("\n Half sorted list:");
for(i=min;i<=max;i++)
printf("%d",arr[i]);
}
}
void merge(int arr[],int min,int mid,int max)
{
int tmp[30];
int i,j,k,m;
j=min;
m=mid + 1;
for(i=min;j<=mid&&m<=max;i++)
{
if(arr[j]<=arr[m])
{
tmp[i]=arr[j];
j++;
}
else
{
tmp[i]=arr[m];
m++;
}
}
if(j>mid)
{
for(k=m;k<=max;k++)
{
tmp[i]=arr[k];
i++;
}
}
else
{
for(k=j;k<=mid;k++)
{
tmp[i]=arr[k];
i++;
}
}
for(k=min;k<=max;k++)
arr[k]=tmp[k];
}
OUTPUT :