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);

}

}