fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4.  
  5. static int find(int[] a, int key) {
  6. int left = 0, right = a.length - 1;
  7.  
  8. while (left <= right) {
  9. int mid = (left + right) / 2;
  10.  
  11. if (a[mid] == key) return mid;
  12.  
  13. if (a[left] <= a[mid]) {
  14. if (key >= a[left] && key < a[mid]) {
  15. right = mid - 1;
  16. } else {
  17. left = mid + 1;
  18. }
  19. } else {
  20. if (key > a[mid] && key <= a[right]) {
  21. left = mid + 1;
  22. } else {
  23. right = mid - 1;
  24. }
  25. }
  26. }
  27.  
  28. return -1;
  29. }
  30.  
  31. public static void main(String[] args) {
  32. int[] arr = {11, 13, 18, 2, 3, 5, 7};
  33. int target = 3;
  34.  
  35. int pos = find(arr, target);
  36. System.out.println(pos);
  37. }
  38. }
  39.  
Success #stdin #stdout 0.1s 52572KB
stdin
Standard input is empty
stdout
4