Professional Documents
Culture Documents
Data Analysis and Algorithm Lab File
Data Analysis and Algorithm Lab File
Experiment No: 1
Aim: Matrix Addition and Multiplication
A)Matrix Addition
public class Main {
public static void main (String args[]){
int a [] [] = {{1,3,4}, {2,4,3}, {3,4,5}};
int b [] [] = {{1,3,4}, {2,4,3}, {1,2,4}};
OUTPUT
B) Matrix Multiplication
public class Main {
public static void main (String args []) {
OUTPUT:
Experiment No: 2
OUTPUT:
Experiment: 3
Aim: Binary Search using Divide and Conquer Technique.
Program:
Public class Main {
public static void main (String args []) {
int [] a = {2,3,7,9,12,14,16,17,19,20,24,28};
Scanner sc = new Scanner (System.in);
int item=sc.nextInt();
int li=0;
int hi= a.length -1;
while (li<=hi) {
int mid = (li+hi)/2;
if (a[mid] == item) {
System.out.println (“Element is present at” + mid+ “index
position”); break;
}
else if (a[mid]<item) {
li=mid+1;}
else {
hi=mid-1;
}
Mid= (li+hi)/2; }
if (li>hi) {
System.out.println(“Element is not present int the list”);
}}}
OUTPUT:
Experiment No: 4
Aim: Merge Sorting
Program:
Public class Merge_sort {
public static void main (String [] args) {
int [] a= {48,36,13,52,19,94, 21};
Merge_sort m= new Merge_sort();
int n =a.length;
System.out.println("\nbefore sorting array elements are: ");
m.printArray(a,n);
m.mergeSort (a,0, n-1);
System.out.println("\nafter sorting array elements are: ");
m.printArray(a,n);
System.out.println(" "); }
void mergeSort(int []a , int b, int e){
if(b<e) {
int m=(b+e)/2;
mergeSort(a,b,m);
mergeSort(a,m+1, e);
sort(a,b,m,e); } }
public void sort (int [] a, int b, int m, int e) {
int n1=m-b+1;
int n2= e-m;
int [] leftArray= new int[n1];
int [] rightArray= new int[n2];
for (int i=0; i<n1; i++) {
leftArray[i]=a[b+i]; }
for (int j=0; j<n2; j++) {
rightArray[j]=a[m+j+1];
}
int i=0, j=0, k=b;
while (i<n1 && j<n2) {
if(leftArray[i]<=rightArray [j]) {
a[k]=leftArray[i];
i++;
}
else {
a[k] = rightArray[j];
j++;
}
k++;
}
while(i<n1) {
a[k]=leftArray[i];
i++;
k++;
}
while (j<n2) {
a[k]=rightArray[j];
j++;
k++;
}}
void printArray (int [] a, int n) {
for (int i=0; i<n; i++) {
System.out.print(a[i]+" ");
}}}
OUTPUT
Experiment No: 5
}
}
OUTPUT:
Experiment No: 6
Program:
import java.util.*;
public class Insertion_sort_Integer {
public static void main (String [] args) {
int [] a = {1,25,7,4,3,8,6};
int temp,j;
for (int i=1; i<a.length; i++) {
temp=a[i];
j=i;
while (j>0 && a[j-1]>temp) {
a[j]=a[j-1];
j=j-1;
}
a[j]=temp;
}
System.out.println(Arrays.toString(a));
}
}
OUTPUT:
Experiment No: 7
Aim: BFS
Program:
import java.io.*;
import java.util.*;
// Constructor
Graph(int v)
{
V = v;
adj = new LinkedList[v];
for (int i=0; i<v; ++i)
adj[i] = new LinkedList();
}
while (queue.size() != 0)
{
// Dequeue a vertex from queue and print it
s = queue.poll();
System.out.print(s+" ");
// Driver method to
public static void main(String args[])
{
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
g.BFS(2);
}
}
Output:
Experiment No: 8
Aim: DFS
Program:
import java.io.*;
import java.util.*;
class Graph {
private int V; // No. of vertices
private LinkedList<Integer> adj[];
@SuppressWarnings("unchecked") Graph(int v)
{
V = v;
adj = new LinkedList[v];
for (int i = 0; i < v; ++i)
adj[i] = new LinkedList();
}
void addEdge(int v, int w)
{
adj[v].add(w); // Add w to v's list.
}
void DFSUtil(int v, boolean visited[])
{
visited[v] = true;
System.out.print(v + " ");
Iterator<Integer> i = adj[v].listIterator();
while (i.hasNext()) {
int n = i.next();
if (!visited[n])
DFSUtil(n, visited);
}
}
void DFS(int v)
{
boolean visited[] = new boolean[V];
DFSUtil(v, visited);
}
public static void main(String args[])
{
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
System.out.println(
"Following is Depth First Traversal "
+ "(starting from vertex 2)");
g.DFS(2);
}
}
Output:
Experiment No: 9
Program:
import java.io.*;
import java.util.*;
class Graph {
import java.util.*;
import java.lang.*;
import java.io.*;
class MST {
// Number of vertices in the graph
private static final int V = 5;
int minKey(int key[], Boolean mstSet[])
{
// Initialize min value
int min = Integer.MAX_VALUE, min_index = -1;
for (int v = 0; v < V; v++)
if (mstSet[v] == false && key[v] < min) {
min = key[v];
min_index = v;
}
return min_index;
}
void printMST(int parent[], int graph[][])
{
System.out.println("Edge \tWeight");
for (int i = 1; i < V; i++)
System.out.println(parent[i] + " - " + i + "\t" + graph[i]
[parent[i]]);
}
void primMST(int graph[][])
{
// Array to store constructed MST
int parent[] = new int[V];
Output:
Experiment No- 10
Aim: Krushkal
Program:
import java.io.*;
import java.util.*;
class Graph {
import java.util.*;
import java.lang.*;
import java.io.*;
class MST {
private static final int V = 5;
int minKey(int key[], Boolean mstSet[])
{
int min = Integer.MAX_VALUE, min_index = -1;
for (int v = 0; v < V; v++)
if (mstSet[v] == false && key[v] < min) {
min = key[v];
min_index = v;
}
return min_index;
}
void printMST(int parent[], int graph[][])
{
System.out.println("Edge \tWeight");
for (int i = 1; i < V; i++)
System.out.println(parent[i] + " - " + i + "\t" + graph[i]
[parent[i]]);
}
void primMST(int graph[][])
{
// Array to store constructed MST
int parent[] = new int[V];
int key[] = new int[V];
Boolean mstSet[] = new Boolean[V];
for (int i = 0; i < V; i++) {
key[i] = Integer.MAX_VALUE;
mstSet[i] = false;
}
key[0] = 0;
parent[0] = -1;
for (int count = 0; count < V - 1; count++) {
int u = minKey(key, mstSet);
Output:
Experiment No: 11
Aim: Dijkstra
Program:
import java.util.*;
import java.lang.*;
import java.io.*;
class ShortestPath {
// A utility function to find the vertex with minimum distance
value,
// from the set of vertices not yet included in shortest path tree
static final int V = 9;
int minDistance(int dist[], Boolean sptSet[])
{
// Initialize min value
int min = Integer.MAX_VALUE, min_index = -1;
return min_index;
}
// Driver method
public static void main(String[] args)
{
/* Let us create the example graph discussed above */
int graph[][] = new int[][] { { 0, 4, 0, 0, 0, 0, 0, 8, 0 },
{ 4, 0, 8, 0, 0, 0, 0, 11, 0 },
{ 0, 8, 0, 7, 0, 4, 0, 0, 2 },
{ 0, 0, 7, 0, 9, 14, 0, 0, 0 },
{ 0, 0, 0, 9, 0, 10, 0, 0, 0 },
{ 0, 0, 4, 14, 10, 0, 2, 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 } };
ShortestPath t = new ShortestPath();
t.dijkstra(graph, 0);
}
}
Output: