fork download
  1. def binary_search(list, element):
  2. middle = 0
  3. start = 0
  4. end = len(list)
  5. steps = 0
  6.  
  7. while(start<=end):
  8. print("Step",steps,":",str(list[start:end+1]))
  9.  
  10. steps = steps + 1
  11. middle = (start + end) // 2
  12.  
  13. if element == list[middle]:
  14. return middle
  15. if element < list[middle]:
  16. end = middle - 1
  17. else:
  18. start = middle + 1
  19.  
  20. return -1
  21.  
  22. my_list = [1,2,3,4,5,6,7,8,9]
  23. target = 2
  24.  
  25. print("Return",binary_search(my_list, target))
  26.  
  27.  
Success #stdin #stdout 0.02s 9168KB
stdin
Standard input is empty
stdout
Step 0 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
Step 1 : [1, 2, 3, 4]
Return 1