Created
          August 25, 2024 16:57 
        
      - 
      
 - 
        
Save Momellouky/85aee894ca90754b5caffb9001f27ba7 to your computer and use it in GitHub Desktop.  
    binary search on an ordered array 
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | def binary_search(data, param) -> bool : | |
| found = False # To handle recursive calls | |
| if len(data) == 0 : | |
| return None | |
| if len(data) == 2 : | |
| if data[0] == param or data[1] == param : | |
| return True | |
| start_index = 0 | |
| end_index = len(data) - 1 | |
| middle_index = (start_index + end_index) // 2 # integer division | |
| middle_el = data[middle_index] | |
| if param == middle_el : | |
| return True | |
| if param < middle_el : | |
| # the element resides in the first half of the array | |
| found = binary_search(data[0:middle_index + 1], param) | |
| else : | |
| # The element resides in the second half of the array | |
| found = binary_search(data[middle_index:end_index + 1], param) | |
| return found | |
| if __name__ == '__main__' : | |
| # data = [ 7, 10, 3, 1, 66, 6 ] | |
| data = [ 2, 5, 8, 10, 55, 100, 150, 300, 350, 380 ] | |
| param = 100 # The integer we are looking for in the array | |
| found = binary_search(data, param) | |
| if found : | |
| print(f"Element {param} found") | |
| else : | |
| print(f"Element not {param} found") | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment