0% found this document useful (0 votes)
25 views12 pages

Ds 10 Exp

The document contains multiple C programs demonstrating different sorting algorithms including binary search, insertion sort, bubble sort, quick sort, and merge sort. Each program includes user input for array size and elements, processes the sorting, and outputs the sorted list along with intermediate steps. The outputs illustrate the results of sorting various sets of numbers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views12 pages

Ds 10 Exp

The document contains multiple C programs demonstrating different sorting algorithms including binary search, insertion sort, bubble sort, quick sort, and merge sort. Each program includes user input for array size and elements, processes the sorting, and outputs the sorted list along with intermediate steps. The outputs illustrate the results of sorting various sets of numbers.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

PROGRAM 10B :

#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 :

Enter array size : 10


Elements in Sorted Order
0 2 4 6 8 10 12 14 16 18
Enter element to locate : 16
Found at index 8 in 2 attempts
PROGRAM 10C :

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 :

Output Enter total elements: 6


Enter array elements: 34 8 64 51 32 21
After Pass 1: 8 34 64 51 32 21
After Pass 2: 8 34 64 51 32 21
After Pass 3: 8 34 51 64 32 21
After Pass 4: 8 32 34 51 64 21
After Pass 5: 8 21 32 34 51 64
Sorted List: 8 21 32 34 51 64
PROGRAM 10D :

#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 :

Enter total numbers of elements: 8


Enter 8 elements: 8 6 10 3 1 2 5 4
After Pass 1 : 6 8 3 1 2 5 4 10
After Pass 2 : 6 3 1 2 5 4 8 10
After Pass 3 : 3 1 2 5 4 6 8 10
After Pass 4 : 1 2 3 4 5 6 8 10
After Pass 5 : 1 2 3 4 5 6 8 10
After Pass 6 : 1 2 3 4 5 6 8 10
After Pass 7 : 1 2 3 4 5 6 8 10
Sorted List : 1 2 3 4 5 6 8 10
PROGRAM 10E :

#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 :

Enter total no. of the elements : 8


Enter total 8 elements : 1 2 7 -1 0 4 -2 3
Quick sorted elements -2 -1 0 1 2 3 4 7
PROGRAM 10F :

#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 :

Enter total no. of elements : 8


Enter array elements : 24 13 26 1 2 27 38 15
Half sorted list : 1 13 24 26
Half sorted list : 2 15 27 38
Merge sorted list : 1 2 13 15 24 26 27 38

You might also like