3.Write a program to prefrom knapsack problem using gridy solution.
def knapsack(w,wt,val,n):
if n-0 or w-0:
return 0
if(wt[n-1]>w):
return knapsack(w,wt,val,n-1)
else:
return max(val[n-1]+knapsack(w-wt[n-1],wt,val.n-1),knapsack(w,wt,val,n-
1))
profit [60.100.120] weight-[10.20.30]
w=50
n=len(profit)
cost-knapsack(w.weight.profit.n)
print("the maximun profit by using knapsack problem i:".cost)
1.Selection sort(using user input)
def selection_sort(arr):
n-len(arr)
for i in range(n):
min-i
for j in range(i+1,n):
if arr[j]<arr[min]:
min-j
arr[i],arr[min]= arr[min],arr[i]
n=int(input("enter number of elements:"))
arr=[]
print("enter".n."elements")
for i in range(n):
num=int(input(f'enter (i+1}:"))
arr.append(num)
print("original array is=".arr)
selection_sort(arr)
print("sorted array is=".arr)
4.write a program to implement DFS graph.
#comment:DFS function
def dfs(graph,start, visited=None):
if visited is None:
visited=set()mm
print(start,end=")
visited.add(start)
for neighbor in graph[start]:
if neighbor not in visited:
dfs(graph,neighbor, visited)
#comment:graph as an adjacency list
graph={
'A': ['B','C'],
'B':['D','E'],
'C': ['F'],
'D':[],
'E': ['F'],
'F':
}
#comment:starting dfs from node 'A'
print("DFS traversal:")
dfs(graph,'A')
2. Write a program to perfrom travalling salesman problem.
from itertools import permutations
graph=[
[0,10,15,20],
[10,0,35,25],
[15,35,0,30],
[20,25,30,0]
cities=[1,2,3]
min_cost-float('inf)
best route=
for perm in permutations(cities):
route=[0]+list(perm)+[0]
cost-0
for i in range(len(route)-1):
cost+=graph[route[i]][route[i+1]]
if cost min cost:
min cost-cost
best route-route
print("best route:",best_route)
print("minimum cost:".min_cost)
def create graph(n,e)
adj=[[0]*n for in range (n)]
print("enter edges (u,v):")
for in range (e):
u,v=map(int,input().split())
adj [u] [v]=1
return adj
def print matrix(adj):
print("Adjacency matrix")
for row in adj:
print(" ".join(map(str,row)))
def degree (adj):
n=len(adj)
print("Indegree and out degree of each vertex:")
for i in range(n):
out_deg=sum(adj[i])
in_deg=sum(adj[j][i] for j in range(n))
print (f"vertex (1): In_degree-fin_deg),out degreen(out_deg)")
n-int ( input("enter number of vertices:"))
e-int (input("enter number of edges:"))
adj-create_graph (n,e)
print_matrix(adj)
degree (adj)
#include<stdio.h>
#define MAX 10
int main()
{
int n,e,u,v
int adj[MAX][MAX];
printf("enter number of vertices:");
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
adj[i][j]=0;
printf("enter number of edges:");
scanf("%d",&e);
printf("enter edges (u,v):\n");
{
for(int i=0;i<e;i++)
scanf("%d%d",&u,v);
adj[u][v]-1
adj[v][u]-13
}
printf("Adjacency matrix");
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
printf("%d",adj[i][j]);
printf("\n");
}
return 0;
}
Comments
Post a Comment