Search:
1. Linear:
import java.util.Array
class LinearSearch{
public static int linearSearch(int array[], int target){
int n = array.length;
for(int i = 0; i < n; i++){
if(array[i] == target){
return 9;
}
return -1;
}
public static void main(String args[]){
int array[] = {2,4,6,9};
int target = 9;
int result = linearSearch(array, target);
if(result == -1) System.out.print("Element not found!");
else System.out.print("Index is:" + result);
}
}
2. Binary:
- Have to be a sorted array
- Use Divide and Conquer Algotirhm
(1) Iterative Method
//Iterative Method
class ArrayDemo{
int binarySearch(int array[], int target, int low, int high){
while(low<=high){
int mid = low + (high-low)/2;
if(array[mid]==target) return mid;
if(array[mid]<target) low = mid+1;
else high = mid-1;
}
return -1;
}
public static void main(String args[]){
ArrayDemo ob = new ArrayDemo();
int array[] = {1,2,3,4,5,6,7,8,9};
int target = 8;
int n = array.length;
int result = ob.binarySearch(array,target,0,n-1);
if(result == -1) System.out.println("Not found!");
else System.out.println("Index is:" +result);
}
}
(2) Recursive Method
//Recursive Method
class ArrayDemo{
int binarySearch(int array[], int target, int low, int high){
if(high>=low){
int mid = low + (high-low)/2;
if(array[mid]==target) return mid;
if(array[mid]>target) return binarySearch(array,target,low,mid-1);
return binarySearch(array,target,mid+1,high);
}
return -1;
}
public static void main(String args[]){
BinarySearch ob = new BinarySearch();
int array[] = {3,4,5,6,7,8,9};
int n = array.length;
int target = 8;
int result = ob.binarySearch(array,target,0,n-1);
if(result == -1) System.out.println("Not found!");
else System.out.println("Index is:" +result);
}
}