Algorithm Programss (7)
Algorithm Programss (7)
import java.util.*;
int[]arr={5,2,8,3,1,6,4};
int n=arr.length;
long start=System.currentTimeMillis();
quicksort(arr,0,n-1);
long end=System.currentTimeMillis();
System.out.println("Sorted Array:"+Arrays.toString(arr));
System.out.println("Time taken:"+(end-start)+"milliseconds");
if(low<high)
int pi=partition(arr,low,high);
quicksort(arr,low,pi-1);
quicksort(arr,pi+1,high);
int pivot=arr[high];
int i=(low-1);
for(int j=low;j<high;j++)
{
if(arr[j]<= pivot)
i++;
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
int temp=arr[i+1];
arr[i+1]=arr[high];
arr[high]=temp;
return i+1;
OUTPUT :
Sorted Array:[1, 2, 3, 4, 5, 6, 8]
Time taken:0milliseconds
CODING :
import java.util.*;
int n = arr.length;
mergesort(arr, 0, n - 1);
System.out.println("***********************");
System.out.println("***********************");
public static void merge(int[] arr, int low, int mid, int high)
int i = 0, j = 0, k = low;
arr[k] = left[i];
i++;
else
j++;
k++;
while (i<left.length)
arr[k] = left[i];
i++;
k++;
while (j <right.length)
arr[k] = right[j];
j++;
k++;
}}}
OUTPUT :
***********************
***********************
CODING :
import java.util.*;
int n=v.length;
for(int i=1;i&lt;=n;i++)
for(int j=1;j&lt;=c;j++)
if(w[i-1]&lt;=j)
dp[i][j]=Math.max(dp[i-1][j],v[i-1]+dp[i-1][j-w[i-1]]);
else
dp[i][j]=dp[i-1][j];
return dp[n][c];
int[]v={60,100,120};
int[]w={10,20,30};
int c=50;
int maxValue=knapsack(v,w,c);
OUTPUT:
CODING :
import java.util.*;
class Graph {
int V;
List<List<Edge>> adj;
int[] dist;
boolean[] visited;
Graph(int V) {
this.V = V;
adj.add(new ArrayList<>());
Arrays.fill(dist, Integer.MAX_VALUE);
dist[src] = 0;
if (dist[a] == dist[b]) {
return a - b;
} else {
});
pq.offer(src);
while (!pq.isEmpty()) {
int u = pq.poll();
if (visited[u])
continue;
visited[u] = true;
int v = e.v;
dist[v])) {
pq.offer(v);
dist[4]);
class Edge {
int v, weight;
this.v = v;
this.weight = weight;
}
}
g.addEdge(0, 1, 2);
g.addEdge(0, 2, 4);
g.addEdge(1, 2, 1);
g.addEdge(1, 3, 7);
g.addEdge(2, 4, 3);
g.addEdge(3, 4, 2);
g.dijkstra(0);
OUTPUT :
Node 0: 0
Node 1: 2
Node 2: 3
Node 3: 9
Node 4: 6
CODING :
class Node
{
int value;
Node left,right;
this.value=value;
left=right=null;
if(node==null)
return;
inOrder(node.left);
System.out.print(node.value+"");
inOrder(node.right);
if(node==null)
return;
preOrder(node.left);
preOrder(node.right);
System.out.print(node.value+"");
{
if(node==null)
return;
postOrder(node.left);
postOrder(node.right);
System.out.print(node.value+"");
root.left=new Node(2);
root.right=new Node(3);
root.left.left=new Node(4);
root.left.right=new Node(5);
System.out.println("In-order traversal:");
tree.inOrder(root);
tree.preOrder(root);
tree.postOrder(root);
OUTPUT :
In-order traversal:
42513
pre-order traversal:
45231
post-order traversal:
45231
CODING :
import java.io.*;
import java.util.*;
class Edge
int destination;
int weight;
this.destination = destination;
this.weight = weight;
Arrays.fill(minWeight, Integer.MAX_VALUE);
minWeight[0] = 0;
parent[0] = -1;
while (!pq.isEmpty())
continue;
inMST[node] = true;
minWeight[edge.destination])
minWeight[edge.destination] = edge.weight;
parent[edge.destination] = node;
System.out.println("Edge \tWeight");
int vertices = 5;
graph.add(new ArrayList<>());
primMST(graph);
OUTPUT :
Edge Weight
0 -- 1 2
1 -- 2 3
0 -- 3 6
1 -- 4 5
CODING :
private static boolean isSafe(int[][] board, int row, int col, int n)
if (board[row][i] == 1)
return false;
if (board[i][j] == 1)
return false;
if (board[i][j] == 1)
return false;
return true;
if (col >= n)
return true;
board[i][col] = 1;
return true;
board[i][col] = 0;
return false;
System.out.println();
}
}
int n = 8;
if (solveNQueens(board, 0, n))
printSolution(board, n);
else
OUTPUT :
10000000
00000010
00001000
00000001
01000000
00010000
00000100
00100000