Guest User

Untitled

a guest
Feb 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.77 KB | None | 0 0
  1. public class TrinarySearch {
  2.     /**
  3.      * Task: Searches for a value in an array.
  4.      *
  5.      * @param a           an array of Comparable objects
  6.      * @param desiredItem an item to search for
  7.      * @param n           an integer > 0
  8.      */
  9.     public static <T extends Comparable<? super T>>
  10.     boolean trinarySearch(T[] a, T desiredItem, int n) {
  11.         // it is assumed that the data is already sorted
  12.         return trinarySearch(a, 0, n - 1, desiredItem);
  13.     } // end trinarySearch
  14.  
  15.     /**
  16.      * Task: recursive trinarySearch search through an array of objects.
  17.      *
  18.      * @param a           an array of Comparable objects
  19.      * @param desiredItem an item to search for
  20.      * @param first       an integer >= 0
  21.      * @param last        an integer > first and < a.length
  22.      */
  23.  
  24.     public static <T extends Comparable<? super T>>
  25.     boolean trinarySearch(T[] a, int first, int last, T desiredItem) {
  26.         boolean found = false;
  27.  
  28.  
  29.         if (first <= last)
  30.  
  31.         {
  32.             int mid1 = (2 * first + last) / 3;
  33.             int mid2 = (first + 2 * last) / 3;
  34.             int compare1 = desiredItem.compareTo(a[mid1]);
  35.             int compare2 = desiredItem.compareTo(a[mid2]);
  36.  
  37.             if (compare1 == 0 || compare2 == 0) {
  38.                 found = true;
  39.             } else if (compare1 < 0) {
  40.                 found = trinarySearch(a, first, mid1 - 1, desiredItem);
  41.             } else if (compare2 > 0) {
  42.                 found = trinarySearch(a, mid2 + 1, last, desiredItem);
  43.             } else {
  44.                 found = trinarySearch(a, mid1 + 1, mid2 - 1, desiredItem);
  45.             }
  46.         }
  47.  
  48.  
  49.         //   System.out.println("recursive trinarySearch method  - IMPLEMENT ME");
  50.  
  51.  
  52.         return found;
  53.     } // end trinarySearch
Add Comment
Please, Sign In to add comment