Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2014
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.34 KB | None | 0 0
  1. public class Main
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.     String[] A = {"","a","aa","aaa"};
  6.         System.out.println(bsrTest(A,"a"));
  7.         System.out.println(bsrTest(A,"b"));
  8.     }
  9.     // Notkun: int k = bsrTest(a,s);
  10.     // Fyrir:  a er strengjafylki í vaxandi röð,
  11.     //         s er strengur.
  12.     // Eftir:  k er -1 ef s er ekki til í a,
  13.     //         annars er a[k] strengurinn s.
  14.     //         Fylkið a er óbreytt.
  15.     public static int bsrTest( String[] a, String s )
  16.     {
  17.         int k = binarySearchRecursive(a, s, 0, a.length);
  18.         return k;
  19.     }
  20.  
  21.     // Notkun: int k = binarySearchRecursive(a,s,i,j);
  22.     // Fyrir:  a er strengjafylki, s er strengur.
  23.     // Eftir:  Ef strengurinn s er til í strengjafylkinu a þá er k
  24.     //         vísir á s innan a, annars er k == -1.
  25.     public static int binarySearchRecursive( String[] a, String s, int i, int j )
  26.     {
  27.         int m = i + (j-i)/2;
  28.  
  29.         if(a.length==0)
  30.         {
  31.             return 0;
  32.         }
  33.  
  34.         if(s.compareTo(a[a.length-1]) > 0 || s.compareTo(a[0]) < 0)
  35.         {
  36.             return -1;
  37.         }
  38.         if( a[m].compareTo(s) < 0 )
  39.         {
  40.             i = m+1;
  41.         }
  42.         else
  43.         {
  44.             j = m;
  45.         }
  46.         if( i < j) i = binarySearchRecursive( a, s, i, j);
  47.         return i;
  48.     }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement