Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static int count(int[] a, int x)
- {
- int high = a.length - 1;
- int low = 0;
- int mid, start = -1, end = -1;
- if(a[low] == x)
- start = low;
- if(a[high] == x)
- end = high;
- while(high >= low && start == -1){
- mid = (low + high) / 2;
- if(a[mid] == x)
- if(a[mid - 1] != x)
- start = mid;
- else
- high = mid - 1;
- else if(a[mid] < x)
- low = mid + 1;
- else
- high = mid - 1;
- }
- high = a.length - 1;
- low = 0;
- while(high >= low && end == -1){
- mid = (low + high) / 2;
- if(a[mid] == x)
- if(a[mid + 1] != x)
- end = mid;
- else
- low = mid + 1;
- else if(a[mid] < x)
- low = mid + 1;
- else
- high = mid - 1;
- }
- if(start == -1)
- return 0;
- return end - start + 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement