Showing posts with label search-element-in-array. Show all posts
Showing posts with label search-element-in-array. Show all posts

Sunday, February 12, 2017

Java Program to search an element in an Object/StringBuffer Array within a range.

import static java.lang.System.out;
import java.util.Arrays;
import java.util.Comparator;
class Test
{
static public void main(String...alt)
{
StringBuffer[] sb={new StringBuffer("Anil"),new StringBuffer("Ravi"),new StringBuffer("Ali"),new StringBuffer("Ram"),new StringBuffer("Mohan"),new StringBuffer("Anthony")};
out.println("Before Sorting : ");
for(StringBuffer x:sb)
out.print(x+"  ");
MyComparator mc=new MyComparator();
Arrays.sort(sb,mc);
out.println("\nAfter Sorting : ");
for(StringBuffer x:sb)
out.print(x+"  ");
int result1=Arrays.binarySearch(sb,0,3,"Anil",mc);
out.println("\n\nAnil is available in index : "+result1);
int result2=Arrays.binarySearch(sb,0,3,"Ram",mc);
// Ram is available in array but not available in this range(0-3) in unsorted array.
out.println("Ram is not available So its insertion point is : "+result2);
}
}
class MyComparator implements Comparator
{
public int compare(Object o1,Object o2)
{
String s1=o1.toString(); // Converting StringBuffer->Object to String
String s2=o2.toString(); // Converting StringBuffer->Object to String
return s1.compareTo(s2); //Ascending order
}
}

Java Program to search an element in an Object/StringBuffer Array.

import static java.lang.System.out;
import java.util.Arrays;
import java.util.Comparator;
class SearchArray5
{
static public void main(String...alt)
{
StringBuffer[] sb={new StringBuffer("Anil"),new StringBuffer("Ravi"),new StringBuffer("Ali"),new StringBuffer("Ram"),new StringBuffer("Mohan"),new StringBuffer("Anthony")};
out.println("Before Sorting : ");
for(StringBuffer x:sb)
out.print(x+"  ");
MyComparator mc=new MyComparator();
Arrays.sort(sb,mc);
out.println("\nAfter Sorting : ");
for(StringBuffer x:sb)
out.print(x+"  ");
int result1=Arrays.binarySearch(sb,"Mohan",mc);
out.println("\n\nMohan is available in index : "+result1);
int result2=Arrays.binarySearch(sb,"Mohas",mc);
out.println("Mohas is not available So its insertion point is : "+result2);
}
}
class MyComparator implements Comparator
{
public int compare(Object o1,Object o2)
{
String s1=o1.toString(); // Converting StringBuffer->Object to String
String s2=o2.toString(); // Converting StringBuffer->Object to String
return s1.compareTo(s2); //Ascending order
}
}

Java Program to search an element in a primitive Array within a range.

import static java.lang.System.out;
import java.util.Arrays;
class SearchArray4
{
static public void main(String...alt)
{
int[] f={5,12,36,14,20,1,3,30};
out.println("Before Sorting : ");
for(int x:f)
out.print(x+"  ");
Arrays.sort(f); // Default natural sorting(Ascending Order)
out.println("\nAfter Sorting : ");
for(int x:f)
out.print(x+"  ");
int result1=Arrays.binarySearch(f,1,6,3);
out.println("\n\n3 is available in index : "+result1);
int result2=Arrays.binarySearch(f,1,6,30);//30 is available in array but not available
//in this range(1-6) in unsorted array. So it returns unpredictible value.
out.println("30 is not available so its insertion point is : "+result2);
}
}

Java Program to search an element in a primitive Array.

Note:- To search an element in an array elements must be sorted before search otherwise we will get
unpredictable result. because java.util.Arrays uses binary search mechanism.
If element is found then it will return its index value and if element is not found then it
will return insertion point(Insertion point is a place where we can place target element
in sorted list.
Note:- Index starts from 0 to (n-1) . But Insertion point starts from -1 to -(n+1).
if there are 3 elements in an array then index will be 0-2.
and insertion point may be -1 to -4.
*/
import static java.lang.System.out;
import java.util.Arrays;
class SearchArray3
{
static public void main(String...alt)
{
float[] f={5f,12f,36f,14f,20f,1f,3f,30f};
out.println("Before Sorting : ");
for(float x:f)
out.print(x+"  ");
Arrays.sort(f); // Default natural sorting(Ascending Order)
out.println("\nAfter Sorting : ");
for(float x:f)
out.print(x+"  ");
int result1=Arrays.binarySearch(f,14f);
out.println("\n\n14.0 is available in index : "+result1);
int result2=Arrays.binarySearch(f,15f);
out.println("15.0 is not available So its insertion point is : "+result2);
}
}

Java Program to search an element in an String/Object Array.

Note:- To search an element in an array elements must be sorted before search otherwise we will get
unpredictable result. because java.util.Arrays uses binary search mechanism.
If element is found then it will return its index value and if element is not found then it
will return insertion point(Insertion point is a place where we can place target element
in sorted list.
Note:- Index starts from 0 to (n-1) . But Insertion point starts from -1 to -(n+1).
if there are 3 elements in an array then index will be 0-2.
and insertion point may be -1 to -4.
*/

import static java.lang.System.out;
import java.util.Arrays;
class SearchArray2
{
static public void main(String...alt)
{
String[] s={"anil","ravi","ali","ram","mohan","anthony"};
out.println("Before Sorting : ");
for(String x:s)
out.print(x+"  ");
Arrays.sort(s); // Default natural sorting(Alphabetical Order)
out.println("\nAfter Sorting : ");
for(String x:s)
out.print(x+"  ");
int result1=Arrays.binarySearch(s,"ram");
out.println("\n\nram is available in index : "+result1);
int result2=Arrays.binarySearch(s,"rama");
out.println("rama is not available So its insertion point is : "+result2);
}
}

Java Program to search an element in a Double/Object Array.

Note:- To search an element in an array elements must be sorted before search otherwise we will get
unpredictable result. because java.util.Arrays uses binary search mechanism.
If element is found then it will return its index value and if element is not found then it
will return insertion point(Insertion point is a place where we can place target element
in sorted list.
Note:- Index starts from 0 to (n-1) . But Insertion point starts from -1 to -(n+1).
if there are 3 elements in an array then index will be 0-2.
and insertion point may be -1 to -4.
*/

import static java.lang.System.out;
import java.util.Arrays;
class SearchArray
{
static public void main(String...alt)
{
Double[] a={10.6,15.3,10.5,2.3,6.4,1.7,9.78,2.34};
out.println("Before Sorting : ");
for(double x:a)
out.print(x+"   ");
Arrays.sort(a); // Default natural sorting(Ascending Order)
out.println("\nAfter Sorting : ");
for(double x:a)
out.print(x+"   ");
int result=Arrays.binarySearch(a,6.4);
out.println("\n\n6.4 is available in index : "+result);
int result2=Arrays.binarySearch(a,6.5);
out.println("6.5 is not available So its insertion point is : "+result2);
}
}