Daa Final Edited
Daa Final Edited
int adj[][] = {
{0, 1, 1, 0, 0, 0, 0, 0},
{1, 0, 0, 1, 1, 0, 0, 0},
{1, 0, 0, 0, 0, 1, 1, 0},
{0, 1, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 1},
{0, 0, 1, 0, 0, 0, 0, 1},
{0, 0, 1, 0, 0, 0, 0, 1},
{0, 0, 0, 1, 1, 1, 1, 0}
};
d.dfs(2);
System.out.println(v);
visited[v] = 1;
dfs(j);
OUTPUT:
2
6
BFS ALGORITHM CODE :
import java.util.LinkedList;
import java.util.Queue;
int adj[][] = {
{0, 1, 1, 0, 0, 0, 0, 0},
{1, 0, 0, 1, 1, 0, 0, 0},
{1, 0, 0, 0, 0, 1, 1, 0},
{0, 1, 0, 0, 0, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 0, 1},
{0, 0, 1, 0, 0, 0, 0, 1},
{0, 0, 1, 0, 0, 0, 0, 1},
{0, 0, 0, 1, 1, 1, 1, 0}
};
b.bfs(3, 8);
int i = v;
visited[i] = 1;
queue.add(i);
while (!queue.isEmpty()) {
System.out.println(node);
queue.add(j);
visited[j] = 1;
OUTPUT:
3 1 7 0 4 5 6 2
QUICK SORT ALGORITHM CODE :
arr[i] = arr[j];
arr[j] = temp;
int i = low - 1;
i++;
swap(arr, i, j);
swap(arr, i + 1, high);
return (i + 1);
Quicksort(arr, pi + 1, high);
System.out.println();
int[] arr = {54, 78, 63, 92, 45, 86, 15, 28, 37, 10};
int n = arr.length;
Quicksort(arr, 0, n - 1);
System.out.println("Sorted array:");
printArray(arr, n);
OUTPUT:
Sorted array:
10 15 28 37 45 54 63 78 86 92
MERGE SORT ALGORITHM CODE :
this.array = array;
this.length = array.length;
mergeSort(low, mid);
mergeSort(mid + 1, high);
tempArray[i] = array[i];
int i = low;
int j = mid + 1;
int k = low;
array[k] = tempArray[i];
i++;
} else {
array[k] = tempArray[j];
j++;
k++;
array[k] = tempArray[i];
k++;
i++;
}
}
System.out.println(array[i]);
mergeSort.show();
OUTPUT:
11
21
31
51
61
71
99
KNAPSACK FRACTIONAL ALGORITHM CODE :
public void knapsack(int m, int n, int profit[], int weight[], double x[]) {
int i = 0;
x[i] = 0.0;
double u = m;
if (weight[i] > u) {
break;
x[i] = 1.0;
u = u - weight[i];
if (i < n)
x[i] = u / weight[i];
double totprofit = 0;
System.out.println(x[i]);
System.out.println(totprofit);
}
public static void main(String[] args) {
int n = 3, m = 20;
Output:
1.0
0.13333333333333333
0.0
28.2
PRIMS ALGORITHM CODE :
package prims;
{z,28,z,z,z,10,z},
{28,z,16,z,z,z,14},
{z,16,z,12,z,z,z},
{z,z,12,z,22,z,18},
{z,z,z,22,z,25,24},
{10,z,z,z,25,z,z},
{z,14,z,18,24,z,z}
};
public int n;
public int k;
public int l;
public Prims()
n = 7;
t = new int[n][2];
near = new int[n];
k = -1;
l = -1;
for(int i=0;i<n;i++)
near[i] = -1;
t[i][0] = -1;
t[i][1] = -1;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
mincost = cost[i][j];
k = i;
l = j;
mincost = cost[k][l];
t[0][0] = k;
t[0][1] = l;
for(int i=0;i<n;i++)
if(cost[i][l]<cost[i][k])
near[i]=l;
else
near[i]=k;
near[k]=near[l]=-1;
for(int i=1;i<n-1;i++)
int j=nearmin();
t[i][0]= j;
t[i][1]= near[j];
near[j] = -1;
for(k=0;k<n;k++)
near[k]=j;
return mincost;
int jmin=Integer.MAX_VALUE;
int jvalue = -1;
for(int i=0;i<n;i++)
jmin=cost[i][near[i]];
jvalue=i;
return jvalue;
for(int i=0;i<p.n-1;i++)
}
OUTPUT:
Minimum Cost: 37
0--5
2--3
3--4
1--2
1--6
1--0
DIJKSTARS ALGORITHM CODE :
public class Dijkstra {
int dist[];
int S[];
int n;
int cost[][];
public Dijkstra() {
n = 6;
};
S = new int[n];
dist[i] = cost[v][i];
S[v] = 1;
dist[v] = 0;
int u = minDist();
S[u] = 1;
int u = -1;
u = i;
return u;
int count = 0;
count++;
System.out.println("\n");
System.out.println();
d.shortestPaths(0);
d.displayDist();
}
OUTPUT:
int n;
int cost[][];
int A[][];
public APSP() {
n = 3;
{0, 4, 1},
{6, 0, 2},
{3, Integer.MAX_VALUE, 0}
};
A = new int[n][n];
A[i][j] = cost[i][j];
if (x < y) {
return x;
} else {
return y;
System.out.print(A[i][j] + "\t");
System.out.println();
apsp.AP();
apsp.displayA();
OUTPUT:
0 4 1
5 0 2
3 7 0
TRAVELLING SALES MAN PROBLEM ALGORITHM CODE :
import java.util.*;
int n;
int Adjmat[][];
int[] verticesSet;
public TSPDynamicDemo() {
n = 4;
{5, 0, 9, 10},
{8, 8, 9, 0}
};
verticesSet[i - 1] = i;
int tspdp() {
while (itri.hasNext()) {
int cost = 0;
int ipath = 1;
List<Integer> o = itri.next();
while (itrj.hasNext()) {
path[ipath++] = itrj.next();
mincost = cost;
minpath = path;
System.out.print(minpath[i] + "-->");
System.out.print(minpath[n]);
System.out.println();
return mincost;
return result;
if (current.size() == nums.length) {
result.add(new ArrayList<>(current));
return;
if (current.contains(nums[i])) {
continue;
}
current.add(nums[i]);
current.remove(current.size() - 1);
OUTPUT:
0-->1-->3-->2-->0
KNAPSACK 0/1 ALGORITHM CODE :
int n = p.length - 1;
f[n][y] = 0;
f[n][y] = p[n];
f[1][C] = f[2][C];
if (C >= w[1])
int n = w.length - 1;
for (int i = 1; i < n; i++)
x[i] = 0;
else {
x[i] = 1;
C -= w[i];
int n = 3;
int c = 6;
k.knapsack(p, w, c, f);
k.traceback(f, w, c, x);
System.out.println();
}
OUTPUT :
Optimal Profit: 61 0 1
N QUEENS PROBLEM ALGORITHM CODE :
int n;
int x[];
int solutions;
public NQueens() {
n = 4;
x = new int[n];
solutions = 0;
if (place(k, i)) {
x[k] = i;
if (k == n - 1) {
display();
solutions++;
} else
queens(k + 1, n);
}
public boolean place(int k, int i) {
return false;
return true;
System.out.println();
q.queens(0, 4);
System.out.println(q.solutions);
}
OUTPUT:
1302
2031
2
GRAPH COLOURING ALGORITHM CODE :
class GraphColoringDemo {
int n;
int m;
int cost[][];
int x[];
public GraphColoringDemo() {
n = 5;
{0, 1, 1, 0, 1},
{1, 0, 1, 0, 1},
{1, 1, 0, 1, 0},
{0, 0, 1, 0, 1},
{1, 1, 0, 1, 0}
};
m = 3;
x = new int[n];
do {
nextValue(k);
if (x[k] == 0)
return;
if (k == n - 1)
display();
else
mColoring(k + 1);
} while (true);
do {
int j = 0;
if (x[k] == 0)
return;
break;
if (j == n)
return;
} while (true);
}
public void display() {
System.out.print(x[i] + "\t");
System.out.println();
c.mColoring(0);
}
OUTPUT:
1 2 3 1 3
1 2 3 2 3
1 3 2 1 2
1 3 2 3 2
2 1 3 1 3
2 1 3 2 3
2 3 1 2 1
2 3 1 3 1
3 1 2 1 2
3 1 2 3 2
3 2 1 2 1
3 2 1 3 1
KRUSKALS ALGORITHM CODE :
import java.util.*;
public int u;
public int v;
public int w;
this.u = u;
this.v = v;
this.w = w;
return u;
return v;
return 1;
return -1;
return 0;
PriorityQueue<Edge> minHeap;
public int n;
int t[][];
public KruskalDemo() {
n = 7;
};
t = new int[n][2];
if (cost[i][j] != Integer.MAX_VALUE) {
minHeap.add(edge);
}
}
if (parent[i] == -1)
return i;
return find(parent[i]);
parent[i] = j;
CreateMinHeap();
parent[m] = -1;
int i = 0;
mincost = 0;
Edge e = minHeap.poll();
int u = e.getU();
int v = e.getV();
int j = find(u);
int k = find(v);
if (j != k) {
i = i + 1;
t[i][0] = u;
t[i][1] = v;
union(j, k);
k.kruskalMST();
OUTPUT :
Minimum Cost: 99
HAMILTONIAN CYCLE ALGORITHM CODE :
int n;
int cost[][];
int x[];
public Main() {
n = 6;
{0, 1, 1, 0, 1, 0},
{1, 0, 1, 0, 0, 1},
{1, 1, 0, 1, 0, 1},
{1, 0, 0, 1, 0, 1},
{0, 1, 0, 0, 1, 0}
};
x = new int[n];
x[0] = 1;
do {
nextValue(k);
if (x[k] == 0)
return;
if (k == n - 1)
display();
else
hamiltonian(k + 1);
} while (true);
do {
int j = 0;
x[k] = (x[k] + 1) % n;
if (x[k] == 0)
return;
if (cost[x[k - 1] - 1][x[k] - 1] != 0) {
if (x[j] == x[k])
break;
return;
} while (true);
}
public void display() {
System.out.print((x[i] - 1) + "\t");
System.out.print((x[0] - 1) + "\t");
System.out.println();
c.hamiltonian(1);
OUTPUT :
011010
101001
110101
100101
010010
0 1 2 3 4 5 0