example01.py 522 B

12345678910111213141516171819202122232425
  1. """
  2. 实现查找功能的模块
  3. """
  4. def seq_search(items, elem):
  5. """顺序查找"""
  6. for index, item in enumerate(items):
  7. if item == elem:
  8. return index
  9. return -1
  10. def bin_search(items, elem):
  11. """折半查找(二分查找)"""
  12. start, end = 0, len(items) - 1
  13. while start <= end:
  14. mid = (start + end) // 2
  15. if elem < items[mid]:
  16. end = mid - 1
  17. elif elem > items[mid]:
  18. start = mid + 1
  19. else:
  20. return mid
  21. return -1