Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Page |1

PRACTICAL NOTEBOOK

NAME: KAUSIK MAHANTY


ROLL: 1124117 NO:200011
REG NO: 1170227 OF 2020-2021
SUBJECT: C-8

GUIDED BY: MR. SANDIP SARKAR


Page |2

1) Write a C Program to Search an element using Binary Search:


#include<stdio.h>
int main()
{
int low=0,n,key,mid,a[10],i;
// mid=(low+high)/2;
printf("Enter how many elements you want to insert:-");
scanf("%d",&n);
int high=n-1;
mid=(low+high)/2;
printf("\nEnter the elements:-");
for(i=0;i<n;i++)
{
printf("\nThe %dth element is:-",i+1);
scanf("%d",&a[i]);
}
printf("\nEnter the searching element:-");
scanf("%d",&key);
while(low<=high)
{
if(a[mid]<key)
{
low=mid+1;
}
else if(a[mid]==key)
{
printf("\nThe element %d exist at index = %d",key.mid);
Page |3

break;
}
else
{
high=mid-1;
}
mid=(low+high)/2;
}
}
Output:
Page |4

2) Write a C Program to Search an element using Linear Search:


#include<stdio.h>
int main()
{
int a[20],i,x,n;
printf("How many elements?");
scanf("%d",&n);
printf("Enter array elements:");
for(i=0;i<n;++i)
scanf("%d",&a[i]);
printf("Enter element to search:");
scanf("%d",&x);

for(i=0;i<n;++i)
if(a[i]==x)
break;

if(i<n)
printf("Element found at index %d",i);
else
printf("Element not found");

return 0;
}
Page |5

Output:

3) Write a C Program to Implement Bubble Sort:


#include<stdio.h>
#include<stdlib.h>
int insert(int n);
int bubble_sort();
int swapping(int *x,int *y);
int print();
int a[10],i,j,n,x,y,temp;
int main()
{
printf("How many numbers:-");
scanf("%d",&n);
insert(n);
Page |6

bubble_sort();
//swapping();`
print();
}
int insert(n)
{
for(i=0;i<n;i++)
{
printf("The element of %d th is:-",i);
scanf("%d",&a[i]);
}
}
int bubble_sort()
{
for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
swapping(&a[j],&a[j+1]);
}
}
}
}
int swapping(int *x,int *y)
{
Page |7

temp=*x;
*x=*y;
*y=temp;
}
int print()
{
printf("After soarting:-\n");
for(i=0;i<n;i++)
{
printf("\t%d",a[i]);
}
}

OUTPUT:

4) Write a C Program to Implement Insertion Sort:


#include <stdio.h>
Page |8

#include <stdlib.h>

int main()
{
int i,j,p,n,t,arr[100];
printf("enter the no of elements \n");
scanf("%d",&n);
printf(" enter the values \n");
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
for(int i=1;i<n;i++)
{
t=arr[i];
p=i;
for(j=i-1;j>=0;j--)
{
if(t<arr[j])
{
arr[j+1]=arr[j];
p--;
}
}
arr[p]=t;
}
printf("sorted values are \n");
for(i=0;i<n;i++)
printf("%d ",arr[i]);
Page |9

}
OUTPUT:

5) Write a C Program to Implement Selection Sort:


#include <stdio.h>
#include <stdlib.h>

int main()
{
int arr[100],j,temp,min,n,x,i;
printf("Enter the no of element \n");
scanf("%d",&n);
printf("Enter the values \n");
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
for(int i=0;i<n;i++)
{
min=arr[i];
x=i;
for(j=i+1;j<n;j++)
{
P a g e | 10

if(min>arr[j])
{
min=arr[j];
x=j;
}
}
temp=arr[i];
arr[i]=min;
arr[x]=temp;
}
printf("After Sorting,the values are - \n");
for(int i=0;i<n;i++)
printf("%d\t",arr[i]);
}

OUTPUT:
P a g e | 11

6) Write a C Program to Implement Quick Sort:


#include <stdio.h>
int partition (int a[], int start, int end)
{
int pivot = a[end];
int i = (start - 1);

for (int j = start; j <= end - 1; j++)


{
if (a[j] < pivot)
{
i++;
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
int t = a[i+1];
a[i+1] = a[end];
a[end] = t;
return (i + 1);
}

void quick(int a[], int start, int end)


{
if (start < end)
{
P a g e | 12

int p = partition(a, start, end);


quick(a, start, p - 1);
quick(a, p + 1, end);
}
}

void printArr(int a[], int n)


{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
}
int main()
{
int a[100],n;
printf("Enter the size of array \n");
scanf("%d",&n);
printf("Enter the array elements \n");
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
quick(a, 0, n - 1);
printf("\nAfter sorting, The array elements are - \n");
printArr(a, n);

return 0;
}
P a g e | 13

Output:

7) Write a C Program to Implement Merge Sort:


#include <stdio.h>
void merge (int a [], int beg, int mid, int end)
{
int i, j, k;
int n1 = mid - beg + 1;
int n2 = end - mid;

int LeftArray[n1], RightArray[n2];


for (int i = 0; i < n1; i++)
LeftArray[i] = a[beg + i];
for (int j = 0; j < n2; j++)
RightArray[j] = a[mid + 1 + j];

i = 0;
j = 0;
P a g e | 14

k = beg;

while (i < n1 && j < n2)


{
if(LeftArray[i] <= RightArray[j])
{
a[k] = LeftArray[i];
i++;
}
else
{
a[k] = RightArray[j];
j++;
}
k++;
}
while (i<n1)
{
a[k] = LeftArray[i];
i++;
k++;
}

while (j<n2)
{
a[k] = RightArray[j];
j++;
P a g e | 15

k++;
}
}

void mergeSort(int a[], int beg, int end)


{
if (beg < end)
{
int mid = (beg + end) / 2;
mergeSort(a, beg, mid);
mergeSort(a, mid + 1, end);
merge(a, beg, mid, end);
}
}
void printArray(int a[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}

int main()
{
int a[100],n;
printf("Enter the size of array \n");
scanf("%d",&n);
P a g e | 16

printf("Enter the elements \n");


for(int i=0;i<n;i++)
scanf("%d",&a[i]);
mergeSort(a, 0, n - 1);
printf("After sorting array elements are - \n");
printArray(a, n);
return 0;
}

Output:
P a g e | 17

8) Write a C Program to Implement Heap Sort:


#include<stdio.h>
#include <conio.h>
void heapify_function(int arr[])
{
int i,n;
n=arr[0];
for(i=n/2;i>=1;i--)
adjust(arr,i);
}
void adjust(int arr[],int i)
{
int j,temp,n,k=1;
n=arr[0];
while(2*i<=n && k==1)
{
j=2*i;
if(j+1<=n && arr[j+1] > arr[j])
j=j+1;

if( arr[j] < arr[i])


k=0;
else
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
P a g e | 18

i=j;
}
}
}

void main()
{
int arr[100],n,temp,last,i;
printf("How many Numbers you want to enter in your array: \n");
scanf("%d",&n);
printf("Enter Elements in array:\n");
for(i=1;i<=n;i++)
scanf("%d",&arr[i]);
arr[0]=n;
heapify_function(arr);
while(arr[0] > 1)
{
last=arr[0];
temp=arr[1];
arr[1]=arr[last];
arr[last]=temp;
arr[0]--;
adjust(arr,1);
}

printf("Array After Heap Sort\n");


for(i=1;i<=n;i++)
P a g e | 19

printf("%d ",arr[i]);
getch();
}

Output:

9) Write a C Program to Implement Breadth First Search (BFS):


#include<stdio.h>
#include<conio.h>
int a_0[30][20],q_1[30],visited_nodes[30],n_8,i_0,j_1,f_5=0,r_2=-1;
void bfs_logic(int v_8) {
for (i_0=1;i_0<=n_8;i_0++)
if(a_0[v_8][i_0] && !visited_nodes[i_0])
q_1[++r_2]=i_0;
P a g e | 20

if(f_5<=r_2) {
visited_nodes[q_1[f_5]]=1;
bfs_logic(q_1[f_5++]);
}
}
void main() {
int v_8;
printf("\n Enter Vertices_to_represent:");
scanf("%d",&n_8);
for (i_0=1;i_0<=n_8;i_0++) {
q_1[i_0]=0;
visited_nodes[i_0]=0;
}
printf("\n Enter graph_data especially_in_matrix_format:\n");
for (i_0=1;i_0<=n_8;i_0++)
for (j_1=1;j_1<=n_8;j_1++)
scanf("%d",&a_0[i_0][j_1]);
printf("\n Enter Starting_vertex_for_traversal:");
scanf("%d",&v_8);
bfs_logic(v_8);
printf("\n Reachable_nodes_are:\n");
for (i_0=1;i_0<=n_8;i_0++)
if(visited_nodes[i_0])
printf("%d\t",i_0); else
printf("\n Bfs not_possible_if_not_proper.");
getch();
}
P a g e | 21

Output:

10) Write a C Program to Implement Depth First Search(DFS):


#include <stdio.h>
#include <stdlib.h>
int i,sourceV,Vertex,Edge,time,visited[10],Graph[10][10];
void DepthFirstSearch(inti)
{
int j;
visited[i]=1;
printf(" %d->",i++);
for(j=0;j<Vertex;j++)
{
if(Graph[i][j]==1&&visited[j]==0)
DepthFirstSearch(j);
P a g e | 22

}
}
int main()
{
int i,j,vertex1,vertex2;
printf("\t\t\tGraphs\n");
printf("Enter no. of edges:");
scanf("%d",&Edge);
printf("Enter no. of vertices:");
scanf("%d",&Vertex);
for(i=0;i<Vertex;i++)
{
for(j=0;j<Vertex;j++)
Graph[i][j]=0;
}
for(i=0;i<Edge;i++)
{
printf("Enter the edges in V1 V2 : ");
scanf("%d%d",&vertex1,&vertex2);
Graph[vertex1-1][vertex2-1]=1;
}
for(i=0;i<Vertex;i++)
{
for(j=0;j<Vertex;j++)
printf(" %d ",Graph[i][j]);
printf("\n");
}
P a g e | 23

printf("Enter source Vertex: ");


scanf("%d",&sourceV);
DepthFirstSearch(sourceV-1);
return 0;
}
Output:

You might also like