以下是使用二分法查找升序排序的100个随机整数(1~1000)数列中某个数,并输出其位置的Python代码:

import random

# 生成升序排序的100个随机整数数列
numbers = sorted(random.sample(range(1, 1001), 100))

# 二分法查找函数
def binary_search(numbers, target):
    low = 0
    high = len(numbers) - 1

    while low <= high:
        mid = (low + high) // 2
        if numbers[mid] == target:
            return mid
        elif numbers[mid] < target:
            low = mid + 1
        else:
            high = mid - 1

    return -1

# 需要查找的数
target = random.randint(1, 1000)

# 使用二分法查找并输出结果
result = binary_search(numbers, target)
if result != -1:
    print(f"数列中的数 {target} 位于第 {result+1} 个位置。")
else:
    print(f"数列中的数 {target} 不存在。")

注意,这里使用了Python的random模块来生成随机数列和需要查找的数。使用二分法查找时,首先将数列的最低索引low和最高索引high初始化为数列的首尾索引,然后计算中间索引mid。如果中间索引对应的数等于目标数,则返回该索引;如果中间索引对应的数小于目标数,则将最低索引low更新为mid+1,继续在右半部分查找;如果中间索引对应的数大于目标数,则将最高索引high更新为mid-1,继续在左半部分查找。重复以上步骤直到找到目标数或者最低索引大于最高索引为止。如果最终没有找到目标数,则返回-1。

用二分法查找升序排序的100个随机整数1~1000数列中某个数并输出其位置。

原文地址: https://www.cveoy.top/t/topic/iXuE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录