Tuesday, December 9, 2014

Binary Search

 NSArray  *arr = @[@1, @2, @5, @10];

  NSLog(@"arr : %@",arr);
 
  int result = [self searchIndexOfNumber: 5];
  if(result == -1) {
    NSLog(@"Number not found");
  } else {
    NSLog(@"Number found at index : %d", result);
  }


----------------------------------------

-(int)searchIndexOfNumber: (int)number{
  int result = -1;
 
  int lower = 0;
  int upper = (int)[arr count]-1;
 
  while (lower <= upper) {
    int mid = (lower + upper) / 2;
   
    if([arr[mid] integerValue] < number) {
     
      lower = mid + 1;
     
    } else if([arr[mid] integerValue] == number){
     
      result = mid;
      break;
     
    } else {
   
      upper = mid - 1;
    }
   
  }

  return result;
}

No comments: