// 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