Using Arrays with Sorting and Searching Algorithms
(based on Module 4 material)
1)
This program has six required outputs and involves searching and sorting an array of integers.
Write a Java application that initializes an array with the following numbers, in this order:
23, 17, 5, 90, 12, 44, 38, 84, 77, 3, 66, 55, 1, 19, 37, 88, 8, 97, 25, 50, 75, 61, and 49
Then display the unsorted values. This is required output #1 of 6 for this program.
Using a sequential search of the unsorted array, determine and report the 1
-relative (i.e. 1, 2, 3, 4, etc.)Positions of the following numbers in the array (or -1 if not found), and the number of searches required to locate the numbers: 25,30, 50, 75, and 92.
This is required output #2 of 6.
Then display the total number of searches for all five numbers.
This is required output #3 of 6.
Sort the numbers using any algorithm of your choice and then display the sorted array.
This is required output #4 of 6.
Using a binary search of the sorted array, determine and report the 1-relative positions of the following numbers in the array (or -1 if not found), and the number of searches required to locate the numbers: 25, 30, 50, 75, and 92.
This is required output #5 of 6.Finally; display the total number of searches for all five numbers.
This is required output #6 of 6.
(There are six required sets of output as numbered in the above paragraphs.
Can you tell me if this code is right to the about problem it compile right but I believe I have an problem tank you
import java.util.Arrays;
public class arrayCount
{
/*
outputs the 1-relative index of the query in the array if found, -1 otherwise
*/
public int sortCount;
public static int search(int[] arr, int term){
for(int i = 0; i < arr.length; ++i) { // iterate through array
if (arr[i] == term) { // if term found
return ++i; } } // return 1-relative index of found term
return -1; } // if loop doesn't find anything, return -1
public static void main(String[] args) {
int arrayNum[] = {23, 17, 5, 90, 12, 44, 38, 84, 77, 3, 66, 55, 1, 19, 37, 88, 8, 97, 25, 50, 75, 61, 49};
int numLocation;
int numSearch = 0;
String str = "Unsorted values: ";
// step 1
for(int i = 0; i < arrayNum.length; ++i)
str = str + " " + arrayNum[i];
System.out.println(str);
// step 2
int searches[] = {25,30,50, 75, 92}; // initialize numbers to search
for (int i = 0; i < searches.length; ++i){ // iterate through searches array
numLocation = search(arrayNum, searches[i]);
System.out.println("Search for " + searches[i] + ": " // print search term and
+ numLocation);
if (numLocation >= 0){ numSearch = numSearch + numLocation;
System.out.println("Number of searches " + numLocation);}
else {numSearch = numSearch +arrayNum.length;
System.out.println("Number of searches " + arrayNum.length);}
}
System.out.println("Total Number of Searches " + numSearch); // result of search
Arrays.sort(arrayNum);
String two = "Sorted values: ";
// step 4
for(int i = 0; i < arrayNum.length; ++i)
two = two + " " + arrayNum[i];
System.out.println(two);
int searchesTwo[] = {25,30,50,75,92};
int numsearchTwo = 0;
for (int i = 0; i < searchesTwo.length; ++i){
numLocation = Arrays.binarySearch(arrayNum, searchesTwo[i]);
numLocation = numLocation + 1;
if (numLocation >= 0){ numsearchTwo = numsearchTwo + numLocation ;
System.out.println("Search for " + searchesTwo[i] + ": "
+ numLocation);
System.out.println("Number of searches " + numLocation) ;}
else {numsearchTwo = numsearchTwo +arrayNum.length;
System.out.println("Search for " + searchesTwo[i] + ": -1" );
System.out.println("Number of searches " + arrayNum.length);}
}
System.out.println("Total Number of Searches " + numsearchTwo);
}
}