Thursday, 21 February 2013

DSA Lab Work


// Class AlgorithmAnalysis
public class AlgorithmAnalysis {

public boolean LinearSearch(int [] array1,int key){
for(int k = 0 ;k <array1.length; k++){
if (key==array1[k]){
System.out.println("Linear Search :key is at  index :"+ k );
return true;
}
}
System.out.println(" Linear Seatch:key is not present");
return false;
}

public boolean BinarySearch(int [] array1, int key){

int low = 0;
        int high = array1.length - 1;
       
        while(high >= low) {
            int middle = (low + high) / 2;
           
            if(array1[middle] == key) {
System.out.println("Binary Search :key is at  index :"+ (middle-1) );
                return true;
            }
            if(array1[middle] < key) {
                low = middle + 1;
            }
            if(array1[middle] > key) {
                high = middle - 1;
            }
       }
System.out.println(" Binary Seatch:key is not present");
       return false;
}

public void display(int[] arr) {
// TODO Auto-generated method stub

}
}

Main Code


import java.util.Arrays;
public class AlgorithmAnalysisDemo{
public static void main(String[] args) {
AlgorithmAnalysis Algo = new AlgorithmAnalysis();
int n= 100;
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i] = (int)(Math.random()*1000)+1;
}
Algo.display(arr);

Arrays.sort(arr);
int StartTime = (int) System.nanoTime();
System.out.println(Algo.LinearSearch(arr, arr[n-1]));
int EndTime = (int) System.nanoTime();
System.out.println("Linear Search Run Time is "+ (EndTime-StartTime) + " nano seconds.");

int StartTime1 = (int) System.nanoTime();
System.out.println(Algo.BinarySearch(arr, arr[n-1]));
int EndTime1 = (int) System.nanoTime();
System.out.println("Binary Search Run Time is "+ (EndTime1-StartTime1) + " nano seconds.");

}
}

No comments:

Post a Comment