域名

Python之 常用查询算法:最小项搜索、顺序搜索、二分搜索

时间:2010-12-5 17:23:32  作者:系统运维   来源:系统运维  查看:  评论:0
内容摘要:最小项搜索def min_search(items):"""最小项搜索:param items::return:"""min_index = 0for i in range(len(items)):i

  最小项搜索

  def min_search(items):

Python之 常用查询算法:最小项搜索、顺序搜索、二分搜索

  """

Python之 常用查询算法:最小项搜索、顺序搜索、二分搜索

  最小项搜索

Python之 常用查询算法:最小项搜索、顺序搜索、二分搜索

  :param items:

  :return:

  """

  min_index = 0

  for i in range(len(items)):

  if items[min_index] > items[i]:

  min_index = i

  return min index: { }.format(min_index)

  顺序搜索

  def order_search(target,用查 items):

  """

  顺序搜索,常用遍历方法,询算小项 O(n)

  :param target:

  :param items:

  :return:

  """

  position = 0

  while position < len(items):

  if target == items[position]:

  return where index: { }.format(position)

  position += 1

  return 404 Not FOUND!:(

  二分(叉)搜索

  def binary_search(target, items):

  """

  二分查找(二叉搜索),云南idc服务商O(log2n)

  前置条件:列表已排好序

  :param target:

  :param items:

  :return: 无锡看妇科的香港云服务器法最分搜医院 http://www.ytsgfk120.com/

  """

  left = 0

  right = len(items) - 1

  while left <= right:

  middle = (left + right) // 2

  if target == items[middle]:

  return where index: { }.format(middle)

  elif target > items[middle]:

  left = middle + 1

  else:

  right = middle - 1

  return -1

  测试 main() 函数示例

  if __name__ == __main__:

  items1 = [1, 3, 6, 23, 0]

  min_search_res = min_search(items1)

  print(最小值索引:, min_search_res)

  items2 = [1, 3, 6, 23, 66]

  order_search = order_search(23, items2)

  print(顺序查找:, order_search)

  items3 = [1, 3, 6, 23, 66]

  search_res = binary_search(66, items3)

  print(二分查找:, search_res)

云服务器提供商
copyright © 2025 powered by 益强资讯全景  滇ICP备2023006006号-31sitemap