Advertisement
juanjo12x

Binary_Search

Apr 10th, 2014
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define MAX_ELEM 10
  5.  
  6. int binary_search_iterative(int A[], int ini, int fin, int key){
  7.     while (ini<=fin){
  8.         int medio = (ini+fin)/2;
  9.         if (A[medio] == key)
  10.             return medio;
  11.         else{
  12.             if (key < A[medio])
  13.                 fin = medio-1;
  14.             else
  15.                 ini = medio+1;
  16.         }
  17.     }
  18.     return -1;
  19. }
  20.  
  21. int binary_search_recursive(int A[], int ini, int fin, int key){
  22.     if (ini<=fin){
  23.         int medio = (ini+fin)/2;
  24.         if (A[medio] == key)
  25.             return medio;
  26.         else{
  27.             if (key < A[medio])
  28.                 return binary_search_recursive(A, ini, medio-1, key);
  29.             else
  30.                 return binary_search_recursive(A, medio+1, fin, key);
  31.         }
  32.     }
  33.     return -1;
  34. }
  35.  
  36. int main(int argc, char** argv) {
  37.     int A[MAX_ELEM] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
  38.     int key = 4;
  39.    
  40.     int index;
  41.    
  42.     //index = binary_search_recursive(A, 0, MAX_ELEM-1, key);
  43.     index = binary_search_iterative(A, 0, MAX_ELEM-1, key);
  44.    
  45.     if (index!=-1)
  46.         printf("Encontrado en %d\n", index);
  47.     else
  48.         printf("No encontrado");
  49.    
  50.     return (EXIT_SUCCESS);
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement