fork(1) download
  1. #include <stdio.h>
  2.  
  3. int RecBinarySearch(int arr[], int len, int target) {
  4. if(len <= 0) return -1;
  5. int mid = len / 2;
  6. if(arr[mid] == target) return mid;
  7. if(arr[mid] < target) {
  8. int rightIndex = RecBinarySearch(arr+mid+1, len-mid-1, target);
  9. return rightIndex == -1 ? -1 : mid+rightIndex+1;
  10. } else {
  11. int leftIndex = RecBinarySearch(arr, mid, target);
  12. return leftIndex == -1 ? -1 : leftIndex;
  13. }
  14. }
  15.  
  16. int main(void){
  17. int arr[6]={1,2,3,4,5,6};
  18. int len=sizeof(arr)/sizeof(arr[0]);
  19. int target = 5;
  20. printf("%d", RecBinarySearch(arr,len,target));
  21. }
Success #stdin #stdout 0s 4292KB
stdin
Standard input is empty
stdout
4