import java.util.Scanner; public class array5j4{ static int[] array=new int[6000
ID: 3830968 • Letter: I
Question
import java.util.Scanner;
public class array5j4{
static int[] array=new int[6000];
public static int linearSearch(int number){
for(int i=0;i<array.length;i++){
if(array[i]==number){
return i;
}
}
return -1;
}
public static int binarySearch(int number){
int first=0;
int last=array.length-1;
int mid;
while(first<=last){
mid=(first+last)/2;
if(number<array[mid]){
last=mid-1;
}
else if(number>array[mid]){
first=mid+1;
}
else{
return mid;
}
}
return -1;
}
public static void main(String []args){
Scanner input=new Scanner(System.in);
for(int i=0;i<array.length;i++)
array[i]=i;
int i;
System.out.println("Linear searching number is: ");
i= input.nextInt();
long startTime = System.nanoTime();
int index=linearSearch(i);
long endTime = System.nanoTime();
long totalTime = endTime - startTime;
System.out.println("Found at index "+index+" and took "+totalTime+ " nanoseconds for searching");
System.out.println(" Binary searching number "+i);
startTime = System.nanoTime();
index=binarySearch(i);
endTime = System.nanoTime();
totalTime = endTime - startTime;
System.out.println("Found at index "+index+" and took "+totalTime+ " nanoseconds for searching");
}
}
Add on a boolean search that will spit out whether or not an item is in the array by saying true or false. Also change this program so that it creates a random array of numbers by using Math.Random. Thank you
Explanation / Answer
Please find my implimentation.
import java.util.Arrays;
import java.util.Scanner;
public class array5j4{
private static int[] getRandomNumbers(int n){
int[] array=new int[n];
for(int i=0; i<array.length; i++){
array[i] = (int )(Math.random() * 100 + 1); // 1-100
}
return array;
}
public static boolean linearSearch(int array[], int number){
for(int i=0;i<array.length;i++){
if(array[i]==number){
return true;
}
}
return false;
}
public static boolean binarySearch(int array[],int number){
int first=0;
int last=array.length-1;
int mid;
while(first<=last){
mid=(first+last)/2;
if(number<array[mid]){
last=mid-1;
}
else if(number>array[mid]){
first=mid+1;
}
else{
return true;
}
}
return false;
}
public static void main(String []args){
Scanner input=new Scanner(System.in);
int[] arr = getRandomNumbers(100);
int i;
System.out.println("Linear searching number is: ");
i= input.nextInt();
long startTime = System.nanoTime();
boolean statu = linearSearch(arr, arr.length);
long endTime = System.nanoTime();
long totalTime = endTime - startTime;
System.out.println("Is "+i+" available in array ? "+statu);
System.out.println("It took "+totalTime+ " nanoseconds for searching");
System.out.println(" Binary searching number "+i);
Arrays.sort(arr); // sorting
startTime = System.nanoTime();
statu =binarySearch(arr, arr.length);
endTime = System.nanoTime();
totalTime = endTime - startTime;
System.out.println("Is "+i+" available in array ? "+statu);
System.out.println("It took "+totalTime+ " nanoseconds for searching");
input.close();
}
}
/*
Sample run:
Linear searching number is:
5
Is 5 available in array ? true
It took 3401 nanoseconds for searching
Binary searching number 5
Is 5 available in array ? true
It took 6799 nanoseconds for searching
*/
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.