0% found this document useful (0 votes)
22 views

Algorithm Practical Notebook (Kausik)

Uploaded by

babu roy
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)
22 views

Algorithm Practical Notebook (Kausik)

Uploaded by

babu roy
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/ 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