Manan Daa
Manan Daa
SOURCE CODE:
# include<stdio.h>
int i, j, u;
u=capacity;
for (i=0;i<n;i++)
x[i]=0.0;
for (i=0;i<n;i++)
if(weight[i]>u)
break;
else
x[i]=1.0;
tp= tp+profit[i];
u=u-weight[i];
if(i<n)
x[i]=u/weight[i];
for(i=0;i<n;i++)
printf("%f\t",x[i]);
void main(){
int n, i ,j;
ratio[i]=profit[i]/weight[i];
for(j=i+1;j< n; j++) {
if(ratio[i]<ratio[j]) {
temp= ratio[j];
ratio[i]= temp;
temp= weight[j];
weight[j]= weight[i];
weight[i]= temp;
temp= profit[j];
profit[j]= profit[i];
profit[i]= temp;
} } }
OUTPUT:
Time Complexity:
Space Complexity:
● O(N)
EXPERIMENT-13
Name: MANAN AGRAWAL
Roll No. : 2100910100102
AIM: Write a C program for Travelling salesman problem .
SOURCE CODE:
#include <stdio.h>
temp = matrix[c][count];
nearest_city = count;
} }
if(minimum != 999) {
return nearest_city;
int nearest_city;
visited_cities[city] = 1;
nearest_city = tsp(city);
nearest_city = 0;
return;
minimum_cost(nearest_city);
int main(){
int i, j;
scanf("%d", &limit);
scanf("%d", &matrix[i][j]);
visited_cities[i] = 0;
printf("\n");
} }
printf("\n\nPath:\t");
minimum_cost(0);
printf("%d\n", cost);
return 0; }
OUTPUT:
Time Complexity:
O(N2*log2N)
Space Complexity:
● O(N)
EXPERIMENT-14
SOURCE CODE:
#include <stdio.h>
#include <stdlib.h>
parent[i] = i;
rank[i] = 0;
} }
if (parent[component] == component)
return component;
return parent[component]
= findParent(parent, parent[component]);
u = findParent(parent, u);
v = findParent(parent, v);
parent[u] = v;
parent[v] = u;
else {
parent[v] = u;
rank[u]++;
int parent[n];
int rank[n];
int minCost = 0;
int wt = edge[i][2];
if (v1 != v2) {
minCost += wt;
int main() {
int edge[5][3] = { { 0, 1, 10 }, { 0, 2, 6 }, { 0, 3, 5 }, { 1, 3, 15 }, { 2, 3, 4 } };
kruskalAlgo(5, edge);
return 0;
OUTPUT:
Time Complexity:
Space Complexity:
● O(V+E)
EXPERIMENT-15
SOURCE CODE:
#define N 4
#include <stdbool.h>
#include <stdio.h>
if(board[i][j])
printf("Q ");
else
printf(". ");
printf("\n");
int i, j;
if (board[row][i])
return false;
return false;
if (board[i][j])
return false;
return true;
if (col >= N)
return true;
if (isSafe(board, i, col)) {
board[i][col] = 1;
return true;
board[i][col] = 0;
return false;
bool solveNQ(){
if (solveNQUtil(board, 0) == false) {
printSolution(board);
return true;
int main() {
solveNQ();
return 0;
OUTPUT:
Time Complexity:
● O(N!)
Space Complexity:
● O(N^2)
EXPERIMENT-16
SOURCE CODE:
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#define V 5
return min_index;
printf("Edge \tWeight\n");
graph[i][parent[i]]);
int parent[V];
int key[V];
bool mstSet[V];
key[0] = 0;
parent[0] = -1;
mstSet[u] = true;
printMST(parent, graph);
int main()
{ 0, 5, 7, 9, 0 } };
primMST(graph);
return 0;
OUTPUT:
● O(V^2)
Space Complexity:
● O(V)
EXPERIMENT-17
SOURCE CODE:
#include <stdio.h>
#include <string.h>
if(n1>n2) {
return n1;
} else {
return n2;
int K[n+1][W+1];
if(i == 0 || w == 0) {
K[i][w] = 0;
} else {
K[i][w] = K[i-1][w];
return K[n][W];
int main(){
int W = 30;
printf("Maximum Profit achieved with this knapsack: %d", knapsack(W, wt, val, len));
OUTPUT:
Time Complexity:
● O(2^N)
Space Complexity:
● O(N)
EXPERIMENT-18
SOURCE CODE:
#include <limits.h>
#include <stdbool.h>
#include <stdio.h>
#define V 9
return min_index;
int dist[V];
bool sptSet[V];
dist[src] = 0;
sptSet[u] = true;
printSolution(dist);
int main(){
{ 0, 8, 0, 7, 0, 4, 0, 0, 2 }, { 0, 0, 7, 0, 9, 14, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 2, 0, 1, 6 },{ 8, 11, 0, 0, 0, 0, 1, 0, 7 },
{ 0, 0, 2, 0, 0, 0, 6, 7, 0 } };
dijkstra(graph, 0);
return 0;
OUTPUT:
● O(V^2)
Space Complexity:
● O(V)
EXPERIMENT-19
AIM: Implement the Naive Pattern Searching algorithm in C.
Name: MANAN AGRAWAL
Roll No. : 2100910100102
SOURCE CODE:
#include <stdio.h>
#include <string.h>
int M = strlen(pat);
int N = strlen(txt);
int j;
if (txt[i + j] != pat[j])
break;
if (j== M)
int main(){
search(pat, txt);
return 0;
OUTPUT:
Space Complexity:
● O(1)
EXPERIMENT-20
SOURCE CODE:
# include <limits.h>
# include <string.h>
# include <stdio.h>
int i;
badchar[i] = -1;
badchar[(int) str[i]] = i;
int m = strlen(pat);
int n = strlen(txt);
int badchar[NO_OF_CHARS];
badCharHeuristic(pat, m, badchar);
int s = 0;
int j = m-1;
j--;
else
s += max(1, j - badchar[txt[s+j]]);
int main(){
search(txt, pat);
return 0;
OUTPUT:
Time Complexity:
● O(n x m)
Space Complexity:
● O(1)
EXPERIMENT-21
AIM: Implement the Rabin Karp algorithm in C.
Name: MANAN AGRAWAL
Roll No. : 2100910100102
SOURCE CODE:
#include <stdio.h>
#include <string.h>
#define d 10
int m = strlen(pattern);
int n = strlen(text);
int i, j;
int p = 0;
int t = 0;
int h = 1;
h = (h * d) % q;
p = (d * p + pattern[i]) % q;
t = (d * t + text[i]) % q;
if (p == t) {
if (text[i + j] != pattern[j])
break;
if (j == m)
if (i < n - m) {
if (t < 0)
t = (t + q);
int main() {
int q = 13;
OUTPUT:
EXPERIMENT-22
AIM: Implement the KMP Matcher algorithm in C.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int len = 0;
int i = 1;
lps[0] = 0;
while (i < m) {
if (pattern[i] == pattern[len]) {
len++;
lps[i] = len;
i++;
} else {
if (len != 0) {
} else {
lps[i] = 0;
i++;
int n = strlen(text);
computeLPSArray(pattern, m, lps);
int i = 0;
int j = 0;
while (i < n) {
if (pattern[j] == text[i]) {
j++;
i++;
if (j == m) {
j = lps[j - 1];
if (j != 0) {
j = lps[j - 1];
} else {
i++;
int main() {
KMPSearch(text, pattern);
return 0;
OUTPUT:
Time Complexity:
● O(N+M)
Space Complexity:
● O(M)
EXPERIMENT-23
AIM: Implement the string matching for finite automata algorithm in C.
#include <stdio.h>
#include <string.h>
return state + 1;
int ns, i;
if (pattern[ns - 1] == x) {
break;
if (i == ns - 1)
return ns;
return 0;
int state, x;
int M = strlen(pattern);
int N = strlen(text);
computeTF(pattern, M, TF);
int i, state = 0;
state = TF[state][text[i]];
if (state == M) {
int main() {
return 0;
OUTPUT:
Time Complexity:
● O(M^2)
Space Complexity:
● O(M)