online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code   
Language
// Program: Activity 8 - Module 9 - Searching // Author: Steve Ellermann // Class: CSC205 // Description: Driver for binary and interpolation search methods import java.util.Random; public class Activity8 { public static void main(String[] args) { Integer result; Random rand = new Random(); Integer a[] = new Integer[5000]; Integer b[] = new Integer[5000]; // Uniform distribution for (int ii = 0; ii < a.length; ii++) { a[ii] = ii * 2; } // Non-uniform distribution b[0] = 1; for (int ii = 1; ii < b.length; ii++) { b[ii] = (b[ii - 1] + rand.nextInt(20)) + ii * ii * 2; } int[] testValues = { -1, 1, 4, 41, 440, 8800, 9990, 1000000 }; System.out.println("UNIFORM DISTRIBUTION"); System.out.println("Binary Search:"); for (int x : testValues) { System.out.print(" Searching for (" + x + "): "); result = Searching.binarySearch(a, x); System.out.print("\tbinary: " + result + " in " + Searching.getCounter() + " "); result = Searching.interpolationSearch(a, x); System.out.println("\t\t interpolation: " + result + " in " + Searching.getCounter()); } System.out.println(); System.out.println("NON-UNIFORM DISTRIBUTION"); for (int x : testValues) { System.out.print(" Searching for (" + x + "): "); result = Searching.binarySearch(b, x); System.out.print("\tbinary: " + result + " in " + Searching.getCounter() + " "); result = Searching.interpolationSearch(b, x); System.out.println("\t\t interpolation: " + result + " in " + Searching.getCounter()); } } }
// Program: Activity 8 - Module 9 - Searching // Author: Steve Ellermann // Class: CSC205 // Description: Linear (recursive), Binary (recursive), and // Interpolation (recursive) search methods. public class Searching { private static int counter = 0; // getCounter public static int getCounter() { return counter; } // setCounter public static void setCounter(int counter) { Searching.counter = counter; } // resetCounter private static void resetCounter() { setCounter(0); } // linearSearch public static <T extends Comparable<T>> T linearSearch(T[] data, T target) { return (linearSearch(data, 0, data.length - 1, target)); } // linearSearch helper method public static <T extends Comparable<T>> T linearSearch(T[] data, int min, int max, T target) { T ret = null; int current = min; resetCounter(); while (current <= max) { counter++; if (data[current].compareTo(target) == 0) { ret = data[current]; break; } current++; } return ret; } // binarySearch public static <T extends Comparable<T>> T binarySearch(T[] data, T target) { resetCounter(); return (binarySearch(data, 0, data.length - 1, target)); } // binarySearch helper method public static <T extends Comparable<T>> T binarySearch(T[] data, int min, int max, T target) { T ret = null; if (min > max) { return null; } int mid = min + ((max - min) / 2); counter++; int comparisonResult = data[mid].compareTo(target); if (comparisonResult == 0) { ret = data[mid]; } else if (comparisonResult > 0) { ret = binarySearch(data, min, mid - 1, target); } else { ret = binarySearch(data, mid + 1, max, target); } return ret; } // interpolationSearch - Works with integers. Works when the array is sorted. public static <T extends Comparable<T>> Integer interpolationSearch(Integer[] data, int target) { resetCounter(); return (interpolationSearch(data, 0, data.length - 1, target)); } // interpolationSearch helper method - Works with integers. Works when the array is sorted. public static <T extends Comparable<T>> Integer interpolationSearch(Integer[] data, int min, int max, int target) { int ret = -1; if (min > max || (data[min] > target) || (target > data[max])) { return -1; } int mid = (min + ((max - min) * (target - data[min])) / (data[max] - data[min])); counter++; int comparisonResult = data[mid].compareTo(target); if (comparisonResult == 0) { ret = data[mid]; } else if (comparisonResult > 0) { ret = interpolationSearch(data, min, (mid - 1), target); } else { if (data.length > counter) { // prevents stack overflow ret = interpolationSearch(data, (mid + 1), max, target); } } return ret; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue