Question
Implement a binary search of an array iteratively using the method public static
Implement a binary search of an array iteratively using the method
public static
Consider an array data of n numerical values in sorted order and a list of numerical target values (target values are not necessarily sorted). Your goal is to compute the smallest range of array indices that contains all of the target values. If a target value is smaller than data[0], the range should start with -1. If a target value is larger than data[n - 1], the range should end with n.
For example, given the array [ 5 8 10 13 15 20 22 26] and the target values (8, 2, 9, 17), the range is -1 to 5.
Devise an efficient algorithm that solves this problem and implement it in
public static
Interval findInterval(T[] sortedData, List
where Interval is a class that provides two public methods getLower() and getUpper() to return the lower and upper values of an Interval object. Implement the Interval class.
If you have n data values in the array and m target values in the list, what is the Big Oh performance of your algorithm?
Write the java code for the method
pubic static
which returns true if the array a is in sorted in ascending order. The code must run in O(n) time.
Consider a revised selection sort algorithm so that on each pass it finds both the largest and smallest values in the unsorted portion of the array. The sort then moves each of these values into its correct location by swapping array entries.
Implement the modified selection sort using the method
public static
How many comparisons are necessary to sort n values?
-------------------------------------------------------------------------------------------------------------------------------------------------------- ArraySearcher.java
Page of 2
ZOOM
/**
A class of static methods for searching an array of Comparable objects.
@author Frank M. Carrano
@author Timothy M. Henry
@version 4.0
*/
public class ArraySearcher
{
// Segment 18.3
/** Searches an unsorted array for anEntry. */
public static
anEntry)
{
boolean found = false;
int index = 0;
while (!found && (index < anArray.length))
{
if (anEntry.equals(anArray[index]))
found = true;
index++;
} // end while
return found;
} // end inArrayIterativeUnsorted
//
==========================================================================
==============
// Segment 18.6
/** Searches an unsorted array for anEntry. */
public static
anEntry)
{
return search(anArray, 0, anArray.length - 1, anEntry);
} // end inArrayRecursiveUnsorted
// Searches anArray[first] through anArray[last] for desiredItem.
// first >= 0 and < anArray.length.
// last >= 0 and < anArray.length.
private static
desiredItem)
{
boolean found = false;
if (first > last)
found = false; // No elements to search
else if (desiredItem.equals(anArray[first]))
found = true;
else
found = search(anArray, first + 1, last, desiredItem);
return found;
} // end search
//
==========================================================================
==============
/** Searches a sorted array for anEntry. */
public static
inArrayRecursiveSorted(T[] anArray, T anEntry)
{
return binarySearch(anArray, 0, anArray.length - 1, anEntry);
} // end inArrayRecursiveSorted
// Segment 18.13
// Searches anArray[first] through anArray[last] for desiredItem.
// first >= 0 and < anArray.length.
// last >= 0 and < anArray.length.
private static
boolean binarySearch(T[] anArray, int first, int last, T
desiredItem)
{
boolean found;
int mid = first + (last - first) / 2;
if (first > last)
found = false;
else if (desiredItem.equals(anArray[mid]))
found = true;
else if (desiredItem.compareTo(anArray[mid]) < 0)
found = binarySearch(anArray, first, mid - 1, desiredItem);
else
found = binarySearch(anArray, mid + 1, last, desiredItem);
return found;
} // end binarySearch
//
==========================================================================
==============
public static
{
System.out.print("The array contains the following entries: ");
for (int index = 0; index < anArray.length; index++)
{
System.out.print(anArray[index] + " ");
} // end for
System.out.println();
} // end display
} // end ArraySearcher --------------------------------------------------------------------------------------------------------------------------------------------------------
SortArray.java
import java.util.* ;
public class SortArray
{
public static
a, int n) {
for (int index = 0; index < n - 1; index++)
{
int indexOfSmallest = indexOfSmallest(a, index, n - 1);
T temp = a[index];
a[index] = a[indexOfSmallest];
a[indexOfSmallest] = temp;
//Invariant: a[0] <= a[1] <= . . . <= a[index] <= all
other a[i]
} // end for
} // end selectionSort
private static
int indexOfSmallest(T[] a, int
first, int last) {
T min = a[first];
int indexOfMin = first;
for (int index = first + 1; index <= last; index++)
{
if (a[index].compareTo(min) < 0)
{
min = a[index];
indexOfMin = index;
}
}
return indexOfMin;
}
public static
void insertionSort(T[] a, int n) {
for(int unsorted = 1; unsorted < n; ++unsorted) {
T item = a[unsorted];
int loc = unsorted;
while(loc > 0 && a[loc-1].compareTo(item) > 0) {
a[loc] = a[loc-1];
--loc;
}
a[loc] = item;
}
}
public static
void bubbleSort(T[] a, int n) {
for(int pass = 1; pass < n ; ++pass) {
for(int index = 0; index < n-pass; ++index) {
int nextIndex = index + 1;
if(a[index].compareTo(a[nextIndex]) > 0) {
T temp = a[index];
a[index] = a[nextIndex];
a[nextIndex] = temp;
}
}
}
}
public static
void bubbleSort2(T[] a, int n) {
boolean sorted = false;
for(int pass = 1; pass < n && !sorted ; ++pass) {
sorted = true;
for(int index = 0; index < n-pass; ++index) {
int nextIndex = index + 1;
if(a[index].compareTo(a[nextIndex]) > 0) {
T temp = a[index];
a[index] = a[nextIndex];
a[nextIndex] = temp;
sorted = false;
}
}
}
}
public static void main(String [] args) {
Integer [] a = { 15, 8 , 10 , 2, 5 };
//selectionSort(a, a.length);
//insertionSort(a, a.length);
//bubbleSort(a, a.length);
bubbleSort2(a, a.length);
System.out.println("a = " + Arrays.toString(a));
}
} // end SortArray
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started