BCA V sem-DAA - Lab Programs-1
BCA V sem-DAA - Lab Programs-1
In-charge
EVELIN JACOB
#include<stdio.h>
void main() {
int i, j, a, n, number[20];
clrscr();
printf("enter the value of N:\n");
scanf("%d", & n);
printf("enter the number:\n");
for (i = 0; i < n; i++)
scanf("%d", & number[i]);
for (i = 0; i < n; i++) {
for (j = i + 1; j < n; j++) {
if (number[i] > number[j]) {
a = number[i];
number[i] = number[j];
number[j] = a;
}
}
}
printf("the numbers arranged in ascending order given below:\n");
for (i = 0; i < n; i++)
printf("%d\t", number[i]);
getch();
}
Output:
#include<conio.h>
void takeInput() {
int i, j;
printf("Enter the number of villages: ");
scanf("%d", & n);
printf("\nEnter the Cost Matrix\n");
for (i = 0; i < n; i++) {
printf("\nEnter Elements of Row: %d\n", i + 1);
for (j = 0; j < n; j++)
scanf("%d", & ary[i][j]);
completed[i] = 0;
}
printf("\n\nThe cost list is:");
for (i = 0; i < n; i++) {
printf("\n");
for (j = 0; j < n; j++)
printf("\t%d", ary[i][j]);
}
}
void main() {
takeInput();
printf("\n\nThe Path is:\n");
mincost(0); //passing 0 because starting vertex
printf("\n\nMinimum cost is %d\n ", cost);
getch();
}
Output:
#include<conio.h>
void main() {
int v[20], w[20], i, j, n, W;
void knapsack(int[], int[], int, int);
clrscr();
printf("Number of objects:");
scanf("%d", & n);
printf("Capacity of knapsack:");
scanf("%d", & W);
for (i = 1; i <= n; i++) {
printf("Enter weight and value of objects %d:", i);
scanf("%d", & w[i]);
scanf("%d", & v[i]);
}
knapsack(v, w, n, W);
getch();
}
if (i == 0 || j == 0) {
k[i][j] = 0;
} else if (j < w[i]) {
k[i][j] = k[i - 1][j];
} else {
if (k[i - 1][j] > k[i - 1][j - w[i]] + v[i]) {
k[i][j] = k[i - 1][j];
} else {
k[i][j] = k[i - 1][j - w[i]] + v[i];
}
}
}
}
Output:
#include<conio.h>
void readf();
void knapsack(int, int);
void dsort(int n);
void display(int);
void readf() {
int i, m, n, j;
printf("enter the no. of profits and weights:");
scanf("%d", & n);
printf("enter the maximum capacity of the knapsack:");
scanf("%d", & m);
printf("\n enter %d profits of the weights:", n);
for (i = 0; i < n; i++)
scanf("%d", & p[i]);
printf("\n enter %d weights:", n);
for (i = 0; i < n; i++)
scanf("%d", & w[i]);
for (i = 0; i < n; i++)
d[i] = (double) p[i] / w[i];
dsort(n);
knapsack(m, n);
display(n);
}
void dsort(int n) {
int i, j, t;
for (i = 0; i < n; i++) {
for (j = 0; j < n - 1; j++) {
if (d[j] < d[j + 1]) {
temp = d[j];
d[j] = d[j + 1];
d[j + 1] = temp;
t = p[j];
void display(int n) {
int i, m;
printf("\n The Requried optimal solution is :\n");
printf("profits weights x value\n");
for (i = 0; i < n; i++) {
printf("%d\t %d\t %f\n", p[i], w[i], x[i]);
sum = sum + (p[i] * x[i]);
res = res + (w[i] = x[i]);
}
printf("\n The total resultant profit is:%f\n", sum);
printf("\ The total resultant weight into the knapsack is:%f\n", res);
}
int main() {
clrscr();
readf();
getch();
return 0;
}
Output:
int q[20], top = -1, front = -1, rear = -1, vis[20], a[20][20], stack[20];
int delete();
void add(int item);
void bfs(int s, int n);
void dfs(int s, int n);
void push(int item);
int pop();
void main() {
int n, i, s, ch, j;
char c, dummy;
clrscr();
printf("ENTER THE NUMBER VERTICES:");
do {
for (i = 1; i <= n; i++) vis[i] = 0;
printf("\nMENU");
printf("\n 1.B.F.S");
printf("\n 2.D.F.S");
printf("\n ENTER THE CHOICE:");
scanf("%d", & ch);
printf("ENTER THE SOURCE VERTEX:");
scanf("%d", & s);
switch (ch) {
case 1:
bfs(s, n);
break;
case 2:
dfs(s, n);
break;
}
int delete() {
int k;
if ((front > rear) || (front == -1)) return (0);
else {
k = q[front++];
return (k);
}
}
else
stack[++top] = item;
}
int pop() {
int k;
if (top == -1) return (0);
else {
k = stack[top--];
return (k);
}
}
Output:
#include<stdio.h>
#include<conio.h>
if (i == j) {
max = min = a[i];
} else {
if (i == j - 1) {
if (a[i] < a[j]) {
max = a[j];
min = a[i];
} else {
max = a[i];
min = a[j];
}
} else {
mid = (i + j) / 2;
maxmin(i, mid);
max1 = max;
min1 = min;
maxmin(mid + 1, j);
if (max < max1)
max = max1;
if (min > min1)
min = min1;
}
}
}
int main() {
int i, num;
clrscr();
printf("\n ENTER THE TOTAL NUMBER OF NUMBERS:");
scanf("%d", & num);
printf("ENTER THE NUMBER:");
for (i = 1; i <= num; i++) scanf("%d", & a[i]);
max = a[0];
min = a[0];
maxmin(1, num);
printf("minimum elements in an array:%d\n", min);
printf("Maximum element in an array :%d\n", max);
getch();
return 0;
}
Output:
#include<stdio.h>
#include<conio.h>
do {
j--;
}
return j;
}
Output:
i++;
}
}
for (k = low; k <= high; k++) {
a[k] = b[k];
}
}
Output:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
i = 0, j = 0, k = l;
while (i < n1 && j < n2) {
if (L[i] <= R[j]) {
arr[k++] = L[i++];
} else {
arr[k++] = R[j++];
}
}
free(L);
free(R);
}
mergeSort(arr, l, m);
mergeSort(arr, m + 1, r);
merge(arr, l, m, r);
}
}
int main() {
int n,i;
int *arr;
double time_taken;
clock_t start,end;
printf("Enter the number of elements (n > 5000): ");
scanf("%d", & n);
if (n <= 5000) {
printf("The number of elements must be greater than 5000.\n");
return 1;
}
start = clock();
mergeSort(arr, 0, n - 1);
end = clock();
free(arr);
getch();
return 0;
}
Output:
#include<stdio.h>
#include<conio.h>
#include<time.h>
#include<dos.h>
#include<stdlib.h>
void main() {
int i, n, * a = NULL;
clock_t s, e;
clrscr();
printf("\n Enter the number of elements:");
scanf("%d", & n);
do {
j = j - 1;
} while (pivot < a[j]);
if (i < j) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
temp = a[j];
a[j] = a[low];
a[low] = temp;
return j;
}
Output:
int main() {
int adjMatrix[MAX_VERTICES][MAX_VERTICES] = {
0
};
int numVertices, numEdges;
int i, j, u, v;
printf("ENTER THE NUMBER OF VERTICES IN THE GRAPH:");
scanf("%d", & numVertices);
printf("ENTER THE NUMBER OF EDGES IN THE GRAPH:");
scanf("%d", & numEdges);
printf("ENTER THE EDGES(u,v):\n");
Output:
#include<conio.h>
#define MAX 10
sum = 0;
for (j = 0; j < n; j++) {
sum += G[i][j];
}
printf("out-deg(V%d)=%d\n", i, sum);
}
}
Output:
#include<stdio.h>
#include<conio.h>
int main() {
int n, i, j;
void queen(int row, int n);
printf("-N queens problem using backtracking");
printf("\n enter number of Queen:");
scanf("%d", & n);
queen(1, n);
getch();
return 0;
}
void print(int n) {
int i, j;
printf("\n\n solution %d\n", ++count);
for (i = 1; i <= n; i++)
printf("\t%d", i);
for (i = 1; i <= n; ++i) {
printf("\n\n%d", i);
for (j = 1; j <= n; ++j) {
if (board[i] == j)
printf("\t Q");
else
printf("\t-");
}
}
}
if (board[i] == column)
return 0;
else
if (abs(board[i] = column) == abs(i - row))
return 0;
}
return 1;
}
Output:
#include<stdio.h>
#include<conio.h>
void subset_sum(int s[], int t[], int s_size, int t_size, int sum, int item, int
const target_sum) {
int i;
total++;
if (target_sum == sum) {
print(t, t_size);
subset_sum(s, t, s_size, t_size - 1, sum - s[item], item + 1, target_sum);
return;
} else {
for (i = item; i < s_size; i++) {
t[t_size] = s[i];
subset_sum(s, t, s_size, t_size + 1, sum + s[i], i + 1, target_sum);
}
}
}
int main() {
int set[] = {
2,
3,
4,
5
};
Output:
#include<stdio.h>
char id[5];
int deadline;
int profit;
Job;
if (x < y)
return x;
return y;
int i, j;
Job jobs[5] = {
"j1",
2,
60
},
"j2",
1,
100
},
"j3",
3,
20
},
"j4",
2,
40
},
"j5",
1,
20
},
};
Job temp;
int n = 5;
jobs[j + 1] = jobs[j];
jobs[j] = temp;
jobSequencingWithDeadline(jobs, n);
return 0;
int i, j, k, maxprofit;
int timeslot[MAX];
int filledTimeSlot = 0;
int dmax = 0;
dmax = jobs[i].deadline;
timeslot[i] = -1;
while (k >= 1) {
if (timeslot[k] == -1) {
timeslot[k] = i - 1;
filledTimeSlot++;
break;
k--;
if (filledTimeSlot == dmax) {
break;
printf("%s", jobs[timeslot[i]].id);
if (i < dmax) {
printf(" >");
maxprofit = 0;
maxprofit += jobs[timeslot[i]].profit;
getch();
Output:
#include<stdio.h>
#include<conio.h>
#define MAX 10
void main() {
char ele[MAX][MAX];
int w[MAX][MAX], c[MAX][MAX], r[MAX][MAX], p[MAX], q[MAX];
int temp = 0, root, min, min1, n;
int i, j, k, b;
clrscr();
printf("enter the numberof elemsnts: ");
scanf("%d", & n);
for (i = 1; i <= n; i++) {
printf("Enter the elemnts of %d:", i);
scanf("%d", & p[i]);
}
printf("\n");
for (i = 0; i <= n; i++) {
printf("enter the probability of %d:", i);
scanf("%d", & q[i]);
}
printf("%w\t\tc\t\tr\n");
for (i = 0; i <= n; i++) {
for (j = 0; j <= n; j++) {
if (i == j) {
w[i][j] = q[i];
c[i][j] = 0;
r[i][j] = 0;
printf("W[%d][%d]:%d\tC[%d][%d]\tr[%d][%d]:%d\n", i, j, w[i][j], i, j, c[i][j], r[i][j]);
}
}
}
printf("\n");
Output:
void readv()
{
int i, j;
printf("\n Enter the No of nodes or vertices:");
scanf("%d", & n);
printf("\n Enter the Cost Adjacency matrix of the given graph:");
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
scanf("%d", & cost[i][j]);
if ((cost[i][j] == 0) && (i != j)) {
cost[i][j] = 999;
}
}
}
}
void primsalg() {
int k, l, min, a, t[10][10], u, i, j, mincost = 0;
min = 999;
for (i = 1; i <= n; i++) //To Find the Minimum Edge E(k,l)
{
for (u = 1; u <= n; u++) {
if (i != u) {
if (cost[i][u] < min) {
min = cost[i][u];
k = i;
l = u;
}
}
}
}
t[1][1] = k;
t[1][2] = l;
printf("\n The Minimum Cost Spanning tree is...");
printf("\n(%d,%d)-->%d", k, l, min);
if (p != 0) {
if (cost[a][p] < min) {
min = cost[a][p];
k = a;
}
}
}
return k;
}
void main() {
clrscr();
readv();
primsalg();
getch();
}
Output:
Program-18: Write a program to implement kruskal’s algorithm to
generate minimum cost spanning tree
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
int i, j, k, a, b, u, v, n, ne = 1;
int min, mincost = 0, cost[9][9], parent[9];
int find(int);
int uni(int, int);
void main() {
clrscr();
printf("\n\t Implementation of kruskal's algorithm\n");
printf("\n Enter the number of vertices:");
scanf("%d", & n);
printf("\n Enter the cost adjacency matrix:\n");
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
scanf("%d", & cost[i][j]);
if (cost[i][j] == 0)
cost[i][j] = 999;
}
}
printf("The edges of minimum cost spanning tree are:\n");
while (ne < n) {
for (i = 1, min = 999; i <= n; i++) {
for (j = 1; j <= n; j++) {
if (cost[i][j] < min) {
min = cost[i][j];
a = u = i;
b = v = j;
}
}
}
u = find(u);
v = find(v);
if (uni(u, v))
{
printf("%d edge(%d,%d)=%d\n", ne++, a, b, min);
mincost += min;
}
cost[a][b] = cost[b][a] = 999;
}
printf("\n\t Minimum cost=%d\n", mincost);
getch();
}
int find(int i) {
while (parent[i]) i = parent[i];
return i;
}
Output: