Advertisement
DPELED

2012a_82que2

Feb 23rd, 2017
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. public static int count(int[] a, int x)
  2.     {
  3.         int high = a.length - 1;
  4.         int low = 0;
  5.         int mid, start = -1, end = -1;
  6.         if(a[low] == x)
  7.             start = low;
  8.         if(a[high] == x)
  9.             end = high;
  10.         while(high >= low && start == -1){
  11.             mid = (low + high) / 2;
  12.             if(a[mid] == x)
  13.                 if(a[mid - 1] != x)
  14.                     start = mid;
  15.                 else
  16.                     high = mid - 1;
  17.             else if(a[mid] < x)
  18.                 low = mid + 1;
  19.             else
  20.                 high = mid - 1;
  21.         }
  22.         high = a.length - 1;
  23.         low = 0;
  24.         while(high >= low && end == -1){
  25.             mid = (low + high) / 2;
  26.             if(a[mid] == x)
  27.                 if(a[mid + 1] != x)
  28.                     end = mid;
  29.                 else
  30.                     low = mid + 1;
  31.             else if(a[mid] < x)
  32.                 low = mid + 1;
  33.             else
  34.                 high = mid - 1;
  35.         }
  36.         if(start == -1)
  37.             return 0;
  38.         return end - start + 1;
  39.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement