Ruby实现二分法查找

  

Ruby代码 复制代码  收藏代码
  1. def binary_search   
  2.   a = [10,57,68,70,78,90,122]   
  3.   search = 78   
  4.   index = 0 , start_index = 0 , end_index = a.length   
  5.   while(true)   
  6.     index = start_index + ((end_index - start_index) / 2)   
  7.     start_index = index if a[index] < search   
  8.     end_index = index if a[index] > search   
  9.     break if a[index] == search   
  10.    end  
  11.    puts  "find by"+ index   
  12. end  
def binary_search
  a = [10,57,68,70,78,90,122]
  search = 78
  index = 0 , start_index = 0 , end_index = a.length
  while(true)
    index = start_index + ((end_index - start_index) / 2)
    start_index = index if a[index] < search
    end_index = index if a[index] > search
    break if a[index] == search
   end
   puts  "find by"+ index
end

 

Java

 

 

Java代码 复制代码  收藏代码
  1. public static void main(String[] args) {   
  2.             // sorted array   
  3.             int[] a = {10,57,68,70,78,90,122};   
  4.             //   
  5.             int search = 78;   
  6.             int index = 0;   
  7.             int start = 0;   
  8.             int end = a.length;   
  9.             while(true){   
  10.                 //get index   
  11.                 index = start+((end-start)/2);   
  12.                 if(a[index]<search){   
  13.                     start = index;   
  14.                 }else if(a[index]>search){   
  15.                     end = index;   
  16.                 }else{   
  17.                     break;   
  18.                 }   
  19.             }   
  20.             System.out.println("find by "+ index);   
  21.      }  

你可能感兴趣的:(二分法)